Re: [dpdk-dev] [PATCH] net/enic: enable overlay offload for VXLAN and GENEVE
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
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
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?