On 03/19/18 07:45 PM, Saeed Mahameed wrote:
> +#define TLS_OFFLOAD_CONTEXT_SIZE                                             
>   \
> +     (ALIGN(sizeof(struct tls_offload_context), sizeof(void *)) +           \
> +      TLS_DRIVER_STATE_SIZE)
> +
> +     pfrag = sk_page_frag(sk);
> +
> +     /* KTLS_TLS_HEADER_SIZE is not counted as part of the TLS record, and

I think the define is actually TLS_HEADER_SIZE, no KTLS_ prefix

> +     memcpy(ctx->iv + TLS_CIPHER_AES_GCM_128_SALT_SIZE, iv, iv_size);
> +
> +     ctx->rec_seq_size = rec_seq_size;
> +     /* worst case is:
> +      * MAX_SKB_FRAGS in tls_record_info
> +      * MAX_SKB_FRAGS + 1 in SKB head an frags.

spelling

> +int tls_sw_fallback_init(struct sock *sk,
> +                      struct tls_offload_context *offload_ctx,
> +                      struct tls_crypto_info *crypto_info)
> +{
> +     int rc;
> +     const u8 *key;
> +
> +     offload_ctx->aead_send =
> +         crypto_alloc_aead("gcm(aes)", 0, CRYPTO_ALG_ASYNC);

in tls_sw we went with async + crypto_wait_req, any reason to not do
that here?  Otherwise I think you still get the software gcm on x86
instead of aesni without additional changes.

> diff --git a/net/tls/tls_main.c b/net/tls/tls_main.c
> index d824d548447e..e0dface33017 100644
> --- a/net/tls/tls_main.c
> +++ b/net/tls/tls_main.c
> @@ -54,6 +54,9 @@ enum {
>  enum {
>       TLS_BASE_TX,
>       TLS_SW_TX,
> +#ifdef CONFIG_TLS_DEVICE
> +     TLS_HW_TX,
> +#endif
>       TLS_NUM_CONFIG,
>  };

I have posted SW_RX patches, do you forsee any issues with SW_RX + HW_TX?

Thanks

Reply via email to