diff --git a/SOURCES/openvswitch-3.3.0.patch b/SOURCES/openvswitch-3.3.0.patch index bfa683c..76b58f1 100644 --- a/SOURCES/openvswitch-3.3.0.patch +++ b/SOURCES/openvswitch-3.3.0.patch @@ -124,10 +124,18 @@ index fc75581486..4a012efd94 100644 run: brew install automake libtool - name: prepare diff --git a/AUTHORS.rst b/AUTHORS.rst -index aa9284fb16..80678854bd 100644 +index aa9284fb16..fe4064ca71 100644 --- a/AUTHORS.rst +++ b/AUTHORS.rst -@@ -588,6 +588,7 @@ David Evans davidjoshuaevans@gmail.com +@@ -245,6 +245,7 @@ Jon Kohler jon@nutanix.com + Jonathan Vestin jonavest@kau.se + Jorge Arturo Sauma Vargas jorge.sauma@hpe.com + Jun Nakajima jun.nakajima@intel.com ++Jun Wang junwang01@cestc.cn + JunhanYan juyan@redhat.com + JunoZhu zhunatuzi@gmail.com + Justin Pettit jpettit@ovn.org +@@ -588,6 +589,7 @@ David Evans davidjoshuaevans@gmail.com David Palma palma@onesource.pt David van Moolenbroek dvmoolenbroek@aimvalley.nl Derek Cormier derek.cormier@lab.ntt.co.jp @@ -1492,7 +1500,7 @@ index dc5164b41c..bf25e6f20a 100644 } diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c -index 45f61930d4..d0b14389f2 100644 +index 45f61930d4..fd54f34692 100644 --- a/lib/netdev-dpdk.c +++ b/lib/netdev-dpdk.c @@ -464,9 +464,8 @@ struct netdev_dpdk { @@ -1516,18 +1524,19 @@ index 45f61930d4..d0b14389f2 100644 static bool is_dpdk_class(const struct netdev_class *class) { -@@ -1351,6 +1353,20 @@ dpdk_eth_dev_init(struct netdev_dpdk *dev) +@@ -1351,6 +1353,21 @@ dpdk_eth_dev_init(struct netdev_dpdk *dev) info.tx_offload_capa &= ~RTE_ETH_TX_OFFLOAD_TCP_CKSUM; } + if (!strcmp(info.driver_name, "net_ice") + || !strcmp(info.driver_name, "net_i40e") -+ || !strcmp(info.driver_name, "net_iavf")) { ++ || !strcmp(info.driver_name, "net_iavf") ++ || !strcmp(info.driver_name, "net_txgbe")) { + /* FIXME: Driver advertises the capability but doesn't seem + * to actually support it correctly. Can remove this once + * the driver is fixed on DPDK side. */ + VLOG_INFO("%s: disabled Tx outer udp checksum offloads for a " -+ "net/ice, net/i40e or net/iavf port.", ++ "net/ice, net/i40e, net/iavf or net/txgbe port.", + netdev_get_name(&dev->up)); + info.tx_offload_capa &= ~RTE_ETH_TX_OFFLOAD_OUTER_UDP_CKSUM; + info.tx_offload_capa &= ~RTE_ETH_TX_OFFLOAD_VXLAN_TNL_TSO; @@ -1537,7 +1546,7 @@ index 45f61930d4..d0b14389f2 100644 if (info.tx_offload_capa & RTE_ETH_TX_OFFLOAD_IPV4_CKSUM) { dev->hw_ol_features |= NETDEV_TX_IPV4_CKSUM_OFFLOAD; } else { -@@ -1514,7 +1530,6 @@ common_construct(struct netdev *netdev, dpdk_port_t port_no, +@@ -1514,7 +1531,6 @@ common_construct(struct netdev *netdev, dpdk_port_t port_no, dev->virtio_features_state = OVS_VIRTIO_F_CLEAN; dev->attached = false; dev->started = false; @@ -1545,7 +1554,7 @@ index 45f61930d4..d0b14389f2 100644 ovsrcu_init(&dev->qos_conf, NULL); -@@ -2137,13 +2152,11 @@ netdev_dpdk_run(const struct netdev_class *netdev_class OVS_UNUSED) +@@ -2137,13 +2153,11 @@ netdev_dpdk_run(const struct netdev_class *netdev_class OVS_UNUSED) if (!pending_reset) { continue; } @@ -1559,7 +1568,7 @@ index 45f61930d4..d0b14389f2 100644 netdev_request_reconfigure(&dev->up); VLOG_DBG_RL(&rl, "%s: Device reset requested.", netdev_get_name(&dev->up)); -@@ -2364,17 +2377,16 @@ netdev_dpdk_set_config(struct netdev *netdev, const struct smap *args, +@@ -2364,17 +2378,16 @@ netdev_dpdk_set_config(struct netdev *netdev, const struct smap *args, struct eth_addr mac; if (!dpdk_port_is_representor(dev)) { @@ -1585,7 +1594,7 @@ index 45f61930d4..d0b14389f2 100644 } else if (!eth_addr_equals(dev->requested_hwaddr, mac)) { dev->requested_hwaddr = mac; netdev_request_reconfigure(netdev); -@@ -2567,73 +2579,133 @@ static bool +@@ -2567,73 +2580,133 @@ static bool netdev_dpdk_prep_hwol_packet(struct netdev_dpdk *dev, struct rte_mbuf *mbuf) { struct dp_packet *pkt = CONTAINER_OF(mbuf, struct dp_packet, mbuf); @@ -1769,7 +1778,7 @@ index 45f61930d4..d0b14389f2 100644 return true; } -@@ -2664,6 +2736,35 @@ netdev_dpdk_prep_hwol_batch(struct netdev_dpdk *dev, struct rte_mbuf **pkts, +@@ -2664,6 +2737,35 @@ netdev_dpdk_prep_hwol_batch(struct netdev_dpdk *dev, struct rte_mbuf **pkts, return cnt; } @@ -1805,7 +1814,7 @@ index 45f61930d4..d0b14389f2 100644 /* Tries to transmit 'pkts' to txq 'qid' of device 'dev'. Takes ownership of * 'pkts', even in case of failure. * -@@ -2680,6 +2781,8 @@ netdev_dpdk_eth_tx_burst(struct netdev_dpdk *dev, int qid, +@@ -2680,6 +2782,8 @@ netdev_dpdk_eth_tx_burst(struct netdev_dpdk *dev, int qid, VLOG_WARN_RL(&rl, "%s: Output batch contains invalid packets. " "Only %u/%u are valid: %s", netdev_get_name(&dev->up), nb_tx_prep, cnt, rte_strerror(rte_errno)); @@ -1814,7 +1823,7 @@ index 45f61930d4..d0b14389f2 100644 } while (nb_tx != nb_tx_prep) { -@@ -4523,10 +4626,11 @@ netdev_dpdk_get_mempool_info(struct unixctl_conn *conn, +@@ -4523,10 +4627,11 @@ netdev_dpdk_get_mempool_info(struct unixctl_conn *conn, int argc, const char *argv[], void *aux OVS_UNUSED) { @@ -1829,7 +1838,7 @@ index 45f61930d4..d0b14389f2 100644 if (argc == 2) { netdev = netdev_from_name(argv[1]); -@@ -4550,10 +4654,14 @@ netdev_dpdk_get_mempool_info(struct unixctl_conn *conn, +@@ -4550,10 +4655,14 @@ netdev_dpdk_get_mempool_info(struct unixctl_conn *conn, ovs_mutex_lock(&dev->mutex); ovs_mutex_lock(&dpdk_mp_mutex); @@ -1848,7 +1857,7 @@ index 45f61930d4..d0b14389f2 100644 ovs_mutex_unlock(&dpdk_mp_mutex); ovs_mutex_unlock(&dev->mutex); -@@ -4565,7 +4673,11 @@ netdev_dpdk_get_mempool_info(struct unixctl_conn *conn, +@@ -4565,7 +4674,11 @@ netdev_dpdk_get_mempool_info(struct unixctl_conn *conn, fclose(stream); @@ -1861,7 +1870,7 @@ index 45f61930d4..d0b14389f2 100644 out: free(response); netdev_close(netdev); -@@ -5965,6 +6077,7 @@ static int +@@ -5965,6 +6078,7 @@ static int netdev_dpdk_reconfigure(struct netdev *netdev) { struct netdev_dpdk *dev = netdev_dpdk_cast(netdev); @@ -1869,7 +1878,7 @@ index 45f61930d4..d0b14389f2 100644 bool try_rx_steer; int err = 0; -@@ -5976,6 +6089,9 @@ netdev_dpdk_reconfigure(struct netdev *netdev) +@@ -5976,6 +6090,9 @@ netdev_dpdk_reconfigure(struct netdev *netdev) dev->requested_n_rxq += 1; } @@ -1879,7 +1888,7 @@ index 45f61930d4..d0b14389f2 100644 if (netdev->n_txq == dev->requested_n_txq && netdev->n_rxq == dev->requested_n_rxq && dev->rx_steer_flags == dev->requested_rx_steer_flags -@@ -5985,7 +6101,7 @@ netdev_dpdk_reconfigure(struct netdev *netdev) +@@ -5985,7 +6102,7 @@ netdev_dpdk_reconfigure(struct netdev *netdev) && dev->txq_size == dev->requested_txq_size && eth_addr_equals(dev->hwaddr, dev->requested_hwaddr) && dev->socket_id == dev->requested_socket_id @@ -1888,7 +1897,7 @@ index 45f61930d4..d0b14389f2 100644 /* Reconfiguration is unnecessary */ goto out; -@@ -5994,10 +6110,14 @@ netdev_dpdk_reconfigure(struct netdev *netdev) +@@ -5994,10 +6111,14 @@ netdev_dpdk_reconfigure(struct netdev *netdev) retry: dpdk_rx_steer_unconfigure(dev); diff --git a/SPECS/openvswitch3.3.spec b/SPECS/openvswitch3.3.spec index f9693d3..697d395 100644 --- a/SPECS/openvswitch3.3.spec +++ b/SPECS/openvswitch3.3.spec @@ -57,7 +57,7 @@ Summary: Open vSwitch Group: System Environment/Daemons daemon/database/utilities URL: http://www.openvswitch.org/ Version: 3.3.0 -Release: 51%{?dist} +Release: 52%{?dist} # Nearly all of openvswitch is ASL 2.0. The bugtool is LGPLv2+, and the # lib/sflow*.[ch] files are SISSL @@ -769,6 +769,13 @@ exit 0 %endif %changelog +* Mon Sep 23 2024 Open vSwitch CI - 3.3.0-52 +- Merging upstream branch-3.3 [RH git: 5833c32b1e] + Commit list: + c4a5a2f7ee AUTHORS: Add Jun Wang. + 034145ea5e netdev-dpdk: Disable outer udp checksum offload for txgbe driver. + + * Fri Sep 20 2024 Open vSwitch CI - 3.3.0-51 - Merging upstream branch-3.3 [RH git: 5ab2df5d8f] Commit list: