Re: [ovs-dev] [PATCH v1] nedev-dpdk: Fix config with dpdk net_bonding offloads.
On 4/13/24 06:56, Jun Wang wrote: >>On 4/12/24 08:29, Jun Wang wrote: >>> If it's a DPDK net_bonding, it may cause >>> offload-related configurations to take effect, >>> leading to offload failure. >>> >>> /usr/share/openvswitch/scripts/ovs-ctl restart --no-ovs-vswitchd \ >>> --system-id=test >>> ovs-vsctl --no-wait set open . external-ids:ovn-bridge-datapath-type\ >>> =netdev >>>ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-init=true >>> ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-socket-mem=\ >>> "4096,4096" >>> ovs-vsctl --no-wait set Open_vSwitch . other_config:pmd-cpu-mask=\ >>> 0xff >>> ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-extra=\ >>> "-a :ca:00.0 -a :ca:00.1 --vdev net_bonding2494589023,\ >>> mode=4,member=:ca:00.0,member=:ca:00.1,xmit_policy=l34,\ >>> lacp_rate=fast" >>> ovs-vswitchd unix:/var/run/openvswitch/db.sock -vconsole:emer \ >>> -vsyslog:err -vfile:info --mlockall --no-chdir \ >>> --log-file=/var/log/openvswitch/ovs-vswitchd.log \ >>> --pidfile=/var/run/openvswitch/ovs-vswitchd.pid --detach --monitor >>> ovs-vsctl add-br br-tun -- set bridge br-tun datapath_type=netdev >>> ovs-vsctl --may-exist add-port br-tun dpdk_tun_port -- set Interface \ >>> dpdk_tun_port type=dpdk options:dpdk-devargs="net_bonding2494589023" >>> >>> {bus_info="bus_name=vdev", driver_name=net_bonding, >>> if_descr="DPDK 23.11.0 net_bonding", if_type="6",link_speed="20Gbps", >>> max_hash_mac_addrs="0", max_mac_addrs="16", max_rx_pktlen="1618", >>> max_rx_queues="1023", max_tx_queues="1023", max_vfs="0", >>> max_vmdq_pools="0", min_rx_bufsize="0", n_rxq="4", n_txq="9", >>> numa_id="0", port_no="2", rx-steering=rss, rx_csum_offload="false", >>> tx_geneve_tso_offload="false", tx_ip_csum_offload="false", >>> tx_out_ip_csum_offload="false", tx_out_udp_csum_offload="false", >>> tx_sctp_csum_offload="false", tx_tcp_csum_offload="false", >>> tx_tcp_seg_offload="false", tx_udp_csum_offload="false", >>> tx_vxlan_tso_offload="false"} >>> >>> Fixes: 5d11c47d3ebe ("userspace: Enable IP checksum offloading by default.") >>> >>> Signed-off-by: Jun Wang >>> --- >>> lib/netdev-dpdk.c | 75 >>>+-- >>> 1 file changed, 45 insertions(+), 30 deletions(-) >>> >>> diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c >>> index 2111f77..191c83d 100644 >>> --- a/lib/netdev-dpdk.c >>> +++ b/lib/netdev-dpdk.c >>> @@ -1294,15 +1294,10 @@ dpdk_eth_dev_init_rx_metadata(struct netdev_dpdk >>>*dev) >>> dev->rx_metadata_delivery_configured = true; >>> } >>> >>> -static int >>> -dpdk_eth_dev_init(struct netdev_dpdk *dev) >>> - OVS_REQUIRES(dev->mutex) >>> +static void >>> +dpdk_eth_offload_config(struct netdev_dpdk *dev, >>> + struct rte_eth_dev_info *info) >>> { >>> - struct rte_pktmbuf_pool_private *mbp_priv; >>> - struct rte_eth_dev_info info; >>> - struct rte_ether_addr eth_addr; >>> - int diag; >>> - int n_rxq, n_txq; >>> uint32_t rx_chksm_offload_capa = RTE_ETH_RX_OFFLOAD_UDP_CKSUM | >>> RTE_ETH_RX_OFFLOAD_TCP_CKSUM | >>> RTE_ETH_RX_OFFLOAD_IPV4_CKSUM; >>> @@ -1319,16 +1314,14 @@ dpdk_eth_dev_init(struct netdev_dpdk *dev) >>> dpdk_eth_dev_init_rx_metadata(dev); >>> } >>> >>> - rte_eth_dev_info_get(dev->port_id, ); >>> - >>> - if (strstr(info.driver_name, "vf") != NULL) { >>> + if (strstr(info->driver_name, "vf") != NULL) { >>> VLOG_INFO("Virtual function detected, HW_CRC_STRIP will be >>>enabled"); >>> dev->hw_ol_features |= NETDEV_RX_HW_CRC_STRIP; >>> } else { >>> dev->hw_ol_features &= ~NETDEV_RX_HW_CRC_STRIP; >>> } >>> >>> - if ((info.rx_offload_capa & rx_chksm_offload_capa) != >>> + if ((info->rx_offload_capa & rx_chksm_offload_capa) != >>> rx_chksm_offload_capa) { >>> VLOG_WARN("Rx checksum offload is not supported on port " >>> DPDK_PORT_ID_FMT, dev->port_id); >>> @@ -1337,66 +1330,66 @@ dpdk_eth_dev_init(struct netdev_dpdk *dev) >>> dev->hw_ol_features |= NETDEV_RX_CHECKSUM_OFFLOAD; >>> } >>> >>> - if (info.rx_offload_capa & RTE_ETH_RX_OFFLOAD_SCATTER) { >>> + if (info->rx_offload_capa & RTE_ETH_RX_OFFLOAD_SCATTER) { >>> dev->hw_ol_features |= NETDEV_RX_HW_SCATTER; >>> } else { >>> /* Do not warn on lack of scatter support */ >>> dev->hw_ol_features &= ~NETDEV_RX_HW_SCATTER; >>> } >>> >>> - if (!strcmp(info.driver_name, "net_tap")) { >>> + if (!strcmp(info->driver_name, "net_tap")) { >>> /* FIXME: L4 checksum offloading is broken in DPDK net/tap driver. >>> * This workaround can be removed once the fix makes it to a DPDK >>> * LTS release used by OVS. */ >>> VLOG_INFO("%s: disabled Tx L4 checksum offloads for a net/tap >>>port.", >>>
Re: [ovs-dev] [PATCH v1] nedev-dpdk: Fix config with dpdk net_bonding offloads.
>On 4/12/24 08:29, Jun Wang wrote: >> If it's a DPDK net_bonding, it may cause >> offload-related configurations to take effect, >> leading to offload failure. >> >> /usr/share/openvswitch/scripts/ovs-ctl restart --no-ovs-vswitchd \ >> --system-id=test >> ovs-vsctl --no-wait set open . external-ids:ovn-bridge-datapath-type\ >> =netdev >>ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-init=true >> ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-socket-mem=\ >> "4096,4096" >> ovs-vsctl --no-wait set Open_vSwitch . other_config:pmd-cpu-mask=\ >> 0xff >> ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-extra=\ >> "-a :ca:00.0 -a :ca:00.1 --vdev net_bonding2494589023,\ >> mode=4,member=:ca:00.0,member=:ca:00.1,xmit_policy=l34,\ >> lacp_rate=fast" >> ovs-vswitchd unix:/var/run/openvswitch/db.sock -vconsole:emer \ >> -vsyslog:err -vfile:info --mlockall --no-chdir \ >> --log-file=/var/log/openvswitch/ovs-vswitchd.log \ >> --pidfile=/var/run/openvswitch/ovs-vswitchd.pid --detach --monitor >> ovs-vsctl add-br br-tun -- set bridge br-tun datapath_type=netdev >> ovs-vsctl --may-exist add-port br-tun dpdk_tun_port -- set Interface \ >> dpdk_tun_port type=dpdk options:dpdk-devargs="net_bonding2494589023" >> >> {bus_info="bus_name=vdev", driver_name=net_bonding, >> if_descr="DPDK 23.11.0 net_bonding", if_type="6",link_speed="20Gbps", >> max_hash_mac_addrs="0", max_mac_addrs="16", max_rx_pktlen="1618", >> max_rx_queues="1023", max_tx_queues="1023", max_vfs="0", >> max_vmdq_pools="0", min_rx_bufsize="0", n_rxq="4", n_txq="9", >> numa_id="0", port_no="2", rx-steering=rss, rx_csum_offload="false", >> tx_geneve_tso_offload="false", tx_ip_csum_offload="false", >> tx_out_ip_csum_offload="false", tx_out_udp_csum_offload="false", >> tx_sctp_csum_offload="false", tx_tcp_csum_offload="false", >> tx_tcp_seg_offload="false", tx_udp_csum_offload="false", >> tx_vxlan_tso_offload="false"} >> >> Fixes: 5d11c47d3ebe ("userspace: Enable IP checksum offloading by default.") >> >> Signed-off-by: Jun Wang >> --- >> lib/netdev-dpdk.c | 75 >> +-- >> 1 file changed, 45 insertions(+), 30 deletions(-) >> >> diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c >> index 2111f77..191c83d 100644 >> --- a/lib/netdev-dpdk.c >> +++ b/lib/netdev-dpdk.c >> @@ -1294,15 +1294,10 @@ dpdk_eth_dev_init_rx_metadata(struct netdev_dpdk >> *dev) >> dev->rx_metadata_delivery_configured = true; >> } >> >> -static int >> -dpdk_eth_dev_init(struct netdev_dpdk *dev) >> -OVS_REQUIRES(dev->mutex) >> +static void >> +dpdk_eth_offload_config(struct netdev_dpdk *dev, >> + struct rte_eth_dev_info *info) >> { >> -struct rte_pktmbuf_pool_private *mbp_priv; >> -struct rte_eth_dev_info info; >> -struct rte_ether_addr eth_addr; >> -int diag; >> -int n_rxq, n_txq; >> uint32_t rx_chksm_offload_capa = RTE_ETH_RX_OFFLOAD_UDP_CKSUM | >> RTE_ETH_RX_OFFLOAD_TCP_CKSUM | >> RTE_ETH_RX_OFFLOAD_IPV4_CKSUM; >> @@ -1319,16 +1314,14 @@ dpdk_eth_dev_init(struct netdev_dpdk *dev) >> dpdk_eth_dev_init_rx_metadata(dev); >> } >> >> -rte_eth_dev_info_get(dev->port_id, ); >> - >> -if (strstr(info.driver_name, "vf") != NULL) { >> +if (strstr(info->driver_name, "vf") != NULL) { >> VLOG_INFO("Virtual function detected, HW_CRC_STRIP will be >> enabled"); >> dev->hw_ol_features |= NETDEV_RX_HW_CRC_STRIP; >> } else { >> dev->hw_ol_features &= ~NETDEV_RX_HW_CRC_STRIP; >> } >> >> -if ((info.rx_offload_capa & rx_chksm_offload_capa) != >> +if ((info->rx_offload_capa & rx_chksm_offload_capa) != >> rx_chksm_offload_capa) { >> VLOG_WARN("Rx checksum offload is not supported on port " >>DPDK_PORT_ID_FMT, dev->port_id); >> @@ -1337,66 +1330,66 @@ dpdk_eth_dev_init(struct netdev_dpdk *dev) >> dev->hw_ol_features |= NETDEV_RX_CHECKSUM_OFFLOAD; >> } >> >> -if (info.rx_offload_capa & RTE_ETH_RX_OFFLOAD_SCATTER) { >> +if (info->rx_offload_capa & RTE_ETH_RX_OFFLOAD_SCATTER) { >> dev->hw_ol_features |= NETDEV_RX_HW_SCATTER; >> } else { >> /* Do not warn on lack of scatter support */ >> dev->hw_ol_features &= ~NETDEV_RX_HW_SCATTER; >> } >> >> -if (!strcmp(info.driver_name, "net_tap")) { >> +if (!strcmp(info->driver_name, "net_tap")) { >> /* FIXME: L4 checksum offloading is broken in DPDK net/tap driver. >> * This workaround can be removed once the fix makes it to a DPDK >> * LTS release used by OVS. */ >> VLOG_INFO("%s: disabled Tx L4 checksum offloads for a net/tap >> port.", >>netdev_get_name(>up)); >> -info.tx_offload_capa &= ~RTE_ETH_TX_OFFLOAD_UDP_CKSUM; >> -info.tx_offload_capa &= ~RTE_ETH_TX_OFFLOAD_TCP_CKSUM;
Re: [ovs-dev] [PATCH v1] nedev-dpdk: Fix config with dpdk net_bonding offloads.
On 4/12/24 08:29, Jun Wang wrote: > If it's a DPDK net_bonding, it may cause > offload-related configurations to take effect, > leading to offload failure. > > /usr/share/openvswitch/scripts/ovs-ctl restart --no-ovs-vswitchd \ > --system-id=test > ovs-vsctl --no-wait set open . external-ids:ovn-bridge-datapath-type\ > =netdev > ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-init=true > ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-socket-mem=\ > "4096,4096" > ovs-vsctl --no-wait set Open_vSwitch . other_config:pmd-cpu-mask=\ > 0xff > ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-extra=\ > "-a :ca:00.0 -a :ca:00.1 --vdev net_bonding2494589023,\ > mode=4,member=:ca:00.0,member=:ca:00.1,xmit_policy=l34,\ > lacp_rate=fast" > ovs-vswitchd unix:/var/run/openvswitch/db.sock -vconsole:emer \ > -vsyslog:err -vfile:info --mlockall --no-chdir \ > --log-file=/var/log/openvswitch/ovs-vswitchd.log \ > --pidfile=/var/run/openvswitch/ovs-vswitchd.pid --detach --monitor > ovs-vsctl add-br br-tun -- set bridge br-tun datapath_type=netdev > ovs-vsctl --may-exist add-port br-tun dpdk_tun_port -- set Interface \ > dpdk_tun_port type=dpdk options:dpdk-devargs="net_bonding2494589023" > > {bus_info="bus_name=vdev", driver_name=net_bonding, > if_descr="DPDK 23.11.0 net_bonding", if_type="6",link_speed="20Gbps", > max_hash_mac_addrs="0", max_mac_addrs="16", max_rx_pktlen="1618", > max_rx_queues="1023", max_tx_queues="1023", max_vfs="0", > max_vmdq_pools="0", min_rx_bufsize="0", n_rxq="4", n_txq="9", > numa_id="0", port_no="2", rx-steering=rss, rx_csum_offload="false", > tx_geneve_tso_offload="false", tx_ip_csum_offload="false", > tx_out_ip_csum_offload="false", tx_out_udp_csum_offload="false", > tx_sctp_csum_offload="false", tx_tcp_csum_offload="false", > tx_tcp_seg_offload="false", tx_udp_csum_offload="false", > tx_vxlan_tso_offload="false"} > > Fixes: 5d11c47d3ebe ("userspace: Enable IP checksum offloading by default.") > > Signed-off-by: Jun Wang > --- > lib/netdev-dpdk.c | 75 > +-- > 1 file changed, 45 insertions(+), 30 deletions(-) > > diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c > index 2111f77..191c83d 100644 > --- a/lib/netdev-dpdk.c > +++ b/lib/netdev-dpdk.c > @@ -1294,15 +1294,10 @@ dpdk_eth_dev_init_rx_metadata(struct netdev_dpdk *dev) > dev->rx_metadata_delivery_configured = true; > } > > -static int > -dpdk_eth_dev_init(struct netdev_dpdk *dev) > -OVS_REQUIRES(dev->mutex) > +static void > +dpdk_eth_offload_config(struct netdev_dpdk *dev, > + struct rte_eth_dev_info *info) > { > -struct rte_pktmbuf_pool_private *mbp_priv; > -struct rte_eth_dev_info info; > -struct rte_ether_addr eth_addr; > -int diag; > -int n_rxq, n_txq; > uint32_t rx_chksm_offload_capa = RTE_ETH_RX_OFFLOAD_UDP_CKSUM | > RTE_ETH_RX_OFFLOAD_TCP_CKSUM | > RTE_ETH_RX_OFFLOAD_IPV4_CKSUM; > @@ -1319,16 +1314,14 @@ dpdk_eth_dev_init(struct netdev_dpdk *dev) > dpdk_eth_dev_init_rx_metadata(dev); > } > > -rte_eth_dev_info_get(dev->port_id, ); > - > -if (strstr(info.driver_name, "vf") != NULL) { > +if (strstr(info->driver_name, "vf") != NULL) { > VLOG_INFO("Virtual function detected, HW_CRC_STRIP will be enabled"); > dev->hw_ol_features |= NETDEV_RX_HW_CRC_STRIP; > } else { > dev->hw_ol_features &= ~NETDEV_RX_HW_CRC_STRIP; > } > > -if ((info.rx_offload_capa & rx_chksm_offload_capa) != > +if ((info->rx_offload_capa & rx_chksm_offload_capa) != > rx_chksm_offload_capa) { > VLOG_WARN("Rx checksum offload is not supported on port " >DPDK_PORT_ID_FMT, dev->port_id); > @@ -1337,66 +1330,66 @@ dpdk_eth_dev_init(struct netdev_dpdk *dev) > dev->hw_ol_features |= NETDEV_RX_CHECKSUM_OFFLOAD; > } > > -if (info.rx_offload_capa & RTE_ETH_RX_OFFLOAD_SCATTER) { > +if (info->rx_offload_capa & RTE_ETH_RX_OFFLOAD_SCATTER) { > dev->hw_ol_features |= NETDEV_RX_HW_SCATTER; > } else { > /* Do not warn on lack of scatter support */ > dev->hw_ol_features &= ~NETDEV_RX_HW_SCATTER; > } > > -if (!strcmp(info.driver_name, "net_tap")) { > +if (!strcmp(info->driver_name, "net_tap")) { > /* FIXME: L4 checksum offloading is broken in DPDK net/tap driver. > * This workaround can be removed once the fix makes it to a DPDK > * LTS release used by OVS. */ > VLOG_INFO("%s: disabled Tx L4 checksum offloads for a net/tap port.", >netdev_get_name(>up)); > -info.tx_offload_capa &= ~RTE_ETH_TX_OFFLOAD_UDP_CKSUM; > -info.tx_offload_capa &= ~RTE_ETH_TX_OFFLOAD_TCP_CKSUM; > +info->tx_offload_capa &= ~RTE_ETH_TX_OFFLOAD_UDP_CKSUM; > +info->tx_offload_capa &=
Re: [ovs-dev] [PATCH v1] nedev-dpdk: Fix config with dpdk net_bonding offloads.
>Hello, > >On Fri, Apr 12, 2024 at 8:30 AM Jun Wang wrote: >> >> If it's a DPDK net_bonding, it may cause >> offload-related configurations to take effect, >> leading to offload failure. > >I did not look at the patch for now. >What is the interest of using a net/bonding DPDK port when there is >native support of bonding in OVS? >I am not familiar with OVN setups so maybe I am missing something on this side. Yes, OVS itself has bonding capability. However, there are cases where DPDK net/bonding is used. Specifically, we have compared the performance of the two methods in some scenarios and found some differences. Therefore, in some scenarios, DPDK net/bonding is chosen. However, OVS did not consider the issue of DPDK net/bonding when modifying checksum offload. ___ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev
Re: [ovs-dev] [PATCH v1] nedev-dpdk: Fix config with dpdk net_bonding offloads.
Hello, On Fri, Apr 12, 2024 at 8:30 AM Jun Wang wrote: > > If it's a DPDK net_bonding, it may cause > offload-related configurations to take effect, > leading to offload failure. I did not look at the patch for now. What is the interest of using a net/bonding DPDK port when there is native support of bonding in OVS? I am not familiar with OVN setups so maybe I am missing something on this side. -- David Marchand ___ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev
[ovs-dev] [PATCH v1] nedev-dpdk: Fix config with dpdk net_bonding offloads.
If it's a DPDK net_bonding, it may cause offload-related configurations to take effect, leading to offload failure. /usr/share/openvswitch/scripts/ovs-ctl restart --no-ovs-vswitchd \ --system-id=test ovs-vsctl --no-wait set open . external-ids:ovn-bridge-datapath-type\ =netdev ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-init=true ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-socket-mem=\ "4096,4096" ovs-vsctl --no-wait set Open_vSwitch . other_config:pmd-cpu-mask=\ 0xff ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-extra=\ "-a :ca:00.0 -a :ca:00.1 --vdev net_bonding2494589023,\ mode=4,member=:ca:00.0,member=:ca:00.1,xmit_policy=l34,\ lacp_rate=fast" ovs-vswitchd unix:/var/run/openvswitch/db.sock -vconsole:emer \ -vsyslog:err -vfile:info --mlockall --no-chdir \ --log-file=/var/log/openvswitch/ovs-vswitchd.log \ --pidfile=/var/run/openvswitch/ovs-vswitchd.pid --detach --monitor ovs-vsctl add-br br-tun -- set bridge br-tun datapath_type=netdev ovs-vsctl --may-exist add-port br-tun dpdk_tun_port -- set Interface \ dpdk_tun_port type=dpdk options:dpdk-devargs="net_bonding2494589023" {bus_info="bus_name=vdev", driver_name=net_bonding, if_descr="DPDK 23.11.0 net_bonding", if_type="6",link_speed="20Gbps", max_hash_mac_addrs="0", max_mac_addrs="16", max_rx_pktlen="1618", max_rx_queues="1023", max_tx_queues="1023", max_vfs="0", max_vmdq_pools="0", min_rx_bufsize="0", n_rxq="4", n_txq="9", numa_id="0", port_no="2", rx-steering=rss, rx_csum_offload="false", tx_geneve_tso_offload="false", tx_ip_csum_offload="false", tx_out_ip_csum_offload="false", tx_out_udp_csum_offload="false", tx_sctp_csum_offload="false", tx_tcp_csum_offload="false", tx_tcp_seg_offload="false", tx_udp_csum_offload="false", tx_vxlan_tso_offload="false"} Fixes: 5d11c47d3ebe ("userspace: Enable IP checksum offloading by default.") Signed-off-by: Jun Wang --- lib/netdev-dpdk.c | 75 +-- 1 file changed, 45 insertions(+), 30 deletions(-) diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c index 2111f77..191c83d 100644 --- a/lib/netdev-dpdk.c +++ b/lib/netdev-dpdk.c @@ -1294,15 +1294,10 @@ dpdk_eth_dev_init_rx_metadata(struct netdev_dpdk *dev) dev->rx_metadata_delivery_configured = true; } -static int -dpdk_eth_dev_init(struct netdev_dpdk *dev) -OVS_REQUIRES(dev->mutex) +static void +dpdk_eth_offload_config(struct netdev_dpdk *dev, + struct rte_eth_dev_info *info) { -struct rte_pktmbuf_pool_private *mbp_priv; -struct rte_eth_dev_info info; -struct rte_ether_addr eth_addr; -int diag; -int n_rxq, n_txq; uint32_t rx_chksm_offload_capa = RTE_ETH_RX_OFFLOAD_UDP_CKSUM | RTE_ETH_RX_OFFLOAD_TCP_CKSUM | RTE_ETH_RX_OFFLOAD_IPV4_CKSUM; @@ -1319,16 +1314,14 @@ dpdk_eth_dev_init(struct netdev_dpdk *dev) dpdk_eth_dev_init_rx_metadata(dev); } -rte_eth_dev_info_get(dev->port_id, ); - -if (strstr(info.driver_name, "vf") != NULL) { +if (strstr(info->driver_name, "vf") != NULL) { VLOG_INFO("Virtual function detected, HW_CRC_STRIP will be enabled"); dev->hw_ol_features |= NETDEV_RX_HW_CRC_STRIP; } else { dev->hw_ol_features &= ~NETDEV_RX_HW_CRC_STRIP; } -if ((info.rx_offload_capa & rx_chksm_offload_capa) != +if ((info->rx_offload_capa & rx_chksm_offload_capa) != rx_chksm_offload_capa) { VLOG_WARN("Rx checksum offload is not supported on port " DPDK_PORT_ID_FMT, dev->port_id); @@ -1337,66 +1330,66 @@ dpdk_eth_dev_init(struct netdev_dpdk *dev) dev->hw_ol_features |= NETDEV_RX_CHECKSUM_OFFLOAD; } -if (info.rx_offload_capa & RTE_ETH_RX_OFFLOAD_SCATTER) { +if (info->rx_offload_capa & RTE_ETH_RX_OFFLOAD_SCATTER) { dev->hw_ol_features |= NETDEV_RX_HW_SCATTER; } else { /* Do not warn on lack of scatter support */ dev->hw_ol_features &= ~NETDEV_RX_HW_SCATTER; } -if (!strcmp(info.driver_name, "net_tap")) { +if (!strcmp(info->driver_name, "net_tap")) { /* FIXME: L4 checksum offloading is broken in DPDK net/tap driver. * This workaround can be removed once the fix makes it to a DPDK * LTS release used by OVS. */ VLOG_INFO("%s: disabled Tx L4 checksum offloads for a net/tap port.", netdev_get_name(>up)); -info.tx_offload_capa &= ~RTE_ETH_TX_OFFLOAD_UDP_CKSUM; -info.tx_offload_capa &= ~RTE_ETH_TX_OFFLOAD_TCP_CKSUM; +info->tx_offload_capa &= ~RTE_ETH_TX_OFFLOAD_UDP_CKSUM; +info->tx_offload_capa &= ~RTE_ETH_TX_OFFLOAD_TCP_CKSUM; } -if (!strcmp(info.driver_name, "net_ice") -|| !strcmp(info.driver_name, "net_i40e")) { +if (!strcmp(info->driver_name, "net_ice") +|| !strcmp(info->driver_name, "net_i40e")) { /* FIXME: