Re: [dpdk-dev] [PATCH] net/enic: enable overlay offload for VXLAN and GENEVE

2018-04-09 Thread Ferruh Yigit
On 4/7/2018 3:40 AM, Hyong Youb Kim wrote:
> On Fri, Apr 06, 2018 at 05:15:40PM +0100, Ferruh Yigit wrote:
>> On 4/5/2018 12:54 AM, John Daley wrote:
>>> From: Hyong Youb Kim 
>>>
>>> Recent NIC models support overlay offload. The overlay offload
>>> feature enables the following on the NIC.
>>> - Rx/Tx checksum offloads for both inner and outer packets.
>>> - Rx inner packet type classification.
>>> - TSO.
>>> - Inner RSS.
>>>
>>> TX descriptors do not require any changes, except the header length
>>> for TSO. The NIC parses outer/inner packets and performs offloads on
>>> them as necessary. The header length for tunneled TSO includes both
>>> inner and outer headers.
>>>
>>> The NIC actually parses and performs the above for NVGRE as well. DPDK
>>> currently has no offload flags for NVGRE, and the hardware has no
>>> controls to individually enable tunnel types either. So do nothing for
>>> now.
>>>
>>> Add a config flag to enable overlay offload by default. To disable it,
>>> the user should set it to 'n'.
>>>
>>> CONFIG_RTE_LIBRTE_ENIC_ENABLE_OVERLAY_OFFLOAD=y
>>>
>>> Also update the enic guide doc.
>>>
>>> Signed-off-by: Hyong Youb Kim 
>>> Reviewed-by: John Daley 
>>> ---
>>>  config/common_base  |   1 +
>>>  doc/guides/nics/enic.rst|  52 ++
>>>  drivers/net/enic/base/vnic_dev.c|  33 
>>>  drivers/net/enic/base/vnic_dev.h|   5 +-
>>>  drivers/net/enic/base/vnic_devcmd.h |  12 +
>>>  drivers/net/enic/base/vnic_wq.h |   1 +
>>>  drivers/net/enic/enic.h |   6 +++
>>>  drivers/net/enic/enic_ethdev.c  |  21 ++--
>>>  drivers/net/enic/enic_main.c|  25 +
>>>  drivers/net/enic/enic_res.c |  23 
>>>  drivers/net/enic/enic_rxtx.c| 104 
>>> 
>>>  11 files changed, 241 insertions(+), 42 deletions(-)
>>>
>>> diff --git a/config/common_base b/config/common_base
>>> index c09c7cf88..964e37b6e 100644
>>> --- a/config/common_base
>>> +++ b/config/common_base
>>> @@ -205,6 +205,7 @@ CONFIG_RTE_LIBRTE_ENA_COM_DEBUG=n
>>>  # Compile burst-oriented Cisco ENIC PMD driver
>>>  #
>>>  CONFIG_RTE_LIBRTE_ENIC_PMD=y
>>> +CONFIG_RTE_LIBRTE_ENIC_ENABLE_OVERLAY_OFFLOAD=y
>>
>> Hi John,
>>
>> We are trying to reduce config options we have, is overlay offload enabling 
>> can
>> be done via runtime argument or dedicated offload flag?
> 
> Hi,
> 
> Would you accept a devarg? We would enable overlay offload by default,
> and disable it when the app specifies that devarg. This overlay
> offload is a bunch of things under one roof, and it does not play
> nicely with DPDK offload flags.

No problem on implementing this as devargs.

> 
> Thanks.
> -Hyong
> 



Re: [dpdk-dev] [PATCH] net/enic: enable overlay offload for VXLAN and GENEVE

2018-04-07 Thread Hyong Youb Kim
On Fri, Apr 06, 2018 at 05:15:40PM +0100, Ferruh Yigit wrote:
> On 4/5/2018 12:54 AM, John Daley wrote:
> > From: Hyong Youb Kim 
> > 
> > Recent NIC models support overlay offload. The overlay offload
> > feature enables the following on the NIC.
> > - Rx/Tx checksum offloads for both inner and outer packets.
> > - Rx inner packet type classification.
> > - TSO.
> > - Inner RSS.
> > 
> > TX descriptors do not require any changes, except the header length
> > for TSO. The NIC parses outer/inner packets and performs offloads on
> > them as necessary. The header length for tunneled TSO includes both
> > inner and outer headers.
> > 
> > The NIC actually parses and performs the above for NVGRE as well. DPDK
> > currently has no offload flags for NVGRE, and the hardware has no
> > controls to individually enable tunnel types either. So do nothing for
> > now.
> > 
> > Add a config flag to enable overlay offload by default. To disable it,
> > the user should set it to 'n'.
> > 
> > CONFIG_RTE_LIBRTE_ENIC_ENABLE_OVERLAY_OFFLOAD=y
> > 
> > Also update the enic guide doc.
> > 
> > Signed-off-by: Hyong Youb Kim 
> > Reviewed-by: John Daley 
> > ---
> >  config/common_base  |   1 +
> >  doc/guides/nics/enic.rst|  52 ++
> >  drivers/net/enic/base/vnic_dev.c|  33 
> >  drivers/net/enic/base/vnic_dev.h|   5 +-
> >  drivers/net/enic/base/vnic_devcmd.h |  12 +
> >  drivers/net/enic/base/vnic_wq.h |   1 +
> >  drivers/net/enic/enic.h |   6 +++
> >  drivers/net/enic/enic_ethdev.c  |  21 ++--
> >  drivers/net/enic/enic_main.c|  25 +
> >  drivers/net/enic/enic_res.c |  23 
> >  drivers/net/enic/enic_rxtx.c| 104 
> > 
> >  11 files changed, 241 insertions(+), 42 deletions(-)
> > 
> > diff --git a/config/common_base b/config/common_base
> > index c09c7cf88..964e37b6e 100644
> > --- a/config/common_base
> > +++ b/config/common_base
> > @@ -205,6 +205,7 @@ CONFIG_RTE_LIBRTE_ENA_COM_DEBUG=n
> >  # Compile burst-oriented Cisco ENIC PMD driver
> >  #
> >  CONFIG_RTE_LIBRTE_ENIC_PMD=y
> > +CONFIG_RTE_LIBRTE_ENIC_ENABLE_OVERLAY_OFFLOAD=y
> 
> Hi John,
> 
> We are trying to reduce config options we have, is overlay offload enabling 
> can
> be done via runtime argument or dedicated offload flag?

Hi,

Would you accept a devarg? We would enable overlay offload by default,
and disable it when the app specifies that devarg. This overlay
offload is a bunch of things under one roof, and it does not play
nicely with DPDK offload flags.

Thanks.
-Hyong


Re: [dpdk-dev] [PATCH] net/enic: enable overlay offload for VXLAN and GENEVE

2018-04-06 Thread Ferruh Yigit
On 4/5/2018 12:54 AM, John Daley wrote:
> From: Hyong Youb Kim 
> 
> Recent NIC models support overlay offload. The overlay offload
> feature enables the following on the NIC.
> - Rx/Tx checksum offloads for both inner and outer packets.
> - Rx inner packet type classification.
> - TSO.
> - Inner RSS.
> 
> TX descriptors do not require any changes, except the header length
> for TSO. The NIC parses outer/inner packets and performs offloads on
> them as necessary. The header length for tunneled TSO includes both
> inner and outer headers.
> 
> The NIC actually parses and performs the above for NVGRE as well. DPDK
> currently has no offload flags for NVGRE, and the hardware has no
> controls to individually enable tunnel types either. So do nothing for
> now.
> 
> Add a config flag to enable overlay offload by default. To disable it,
> the user should set it to 'n'.
> 
> CONFIG_RTE_LIBRTE_ENIC_ENABLE_OVERLAY_OFFLOAD=y
> 
> Also update the enic guide doc.
> 
> Signed-off-by: Hyong Youb Kim 
> Reviewed-by: John Daley 
> ---
>  config/common_base  |   1 +
>  doc/guides/nics/enic.rst|  52 ++
>  drivers/net/enic/base/vnic_dev.c|  33 
>  drivers/net/enic/base/vnic_dev.h|   5 +-
>  drivers/net/enic/base/vnic_devcmd.h |  12 +
>  drivers/net/enic/base/vnic_wq.h |   1 +
>  drivers/net/enic/enic.h |   6 +++
>  drivers/net/enic/enic_ethdev.c  |  21 ++--
>  drivers/net/enic/enic_main.c|  25 +
>  drivers/net/enic/enic_res.c |  23 
>  drivers/net/enic/enic_rxtx.c| 104 
> 
>  11 files changed, 241 insertions(+), 42 deletions(-)
> 
> diff --git a/config/common_base b/config/common_base
> index c09c7cf88..964e37b6e 100644
> --- a/config/common_base
> +++ b/config/common_base
> @@ -205,6 +205,7 @@ CONFIG_RTE_LIBRTE_ENA_COM_DEBUG=n
>  # Compile burst-oriented Cisco ENIC PMD driver
>  #
>  CONFIG_RTE_LIBRTE_ENIC_PMD=y
> +CONFIG_RTE_LIBRTE_ENIC_ENABLE_OVERLAY_OFFLOAD=y

Hi John,

We are trying to reduce config options we have, is overlay offload enabling can
be done via runtime argument or dedicated offload flag?