From 3d3c9673feb5d43177718462b0f70d3525421c0b Mon Sep 17 00:00:00 2001 From: Open vSwitch CI Date: Aug 14 2024 16:07:06 +0000 Subject: Import openvswitch3.3-3.3.0-43 from Fast DataPath --- diff --git a/SOURCES/openvswitch-3.3.0.patch b/SOURCES/openvswitch-3.3.0.patch index be58252..e87b528 100644 --- a/SOURCES/openvswitch-3.3.0.patch +++ b/SOURCES/openvswitch-3.3.0.patch @@ -1691,10 +1691,20 @@ index cd7e85a818..e8bbf8d514 100644 } else { unixctl_command_reply_error(conn, error); diff --git a/lib/netdev-linux.c b/lib/netdev-linux.c -index bf91ef462e..80ccade06a 100644 +index bf91ef462e..751bb4b708 100644 --- a/lib/netdev-linux.c +++ b/lib/netdev-linux.c -@@ -2403,6 +2403,7 @@ static int +@@ -1062,8 +1062,7 @@ netdev_linux_construct_tap(struct netdev *netdev_) + + if (tap_supports_vnet_hdr + && ioctl(netdev->tap_fd, TUNSETOFFLOAD, oflags) == 0) { +- netdev_->ol_flags |= (NETDEV_TX_OFFLOAD_IPV4_CKSUM +- | NETDEV_TX_OFFLOAD_TCP_CKSUM ++ netdev_->ol_flags |= (NETDEV_TX_OFFLOAD_TCP_CKSUM + | NETDEV_TX_OFFLOAD_UDP_CKSUM); + + if (userspace_tso_enabled()) { +@@ -2403,6 +2402,7 @@ static int netdev_linux_read_stringset_info(struct netdev_linux *netdev, uint32_t *len) { union { @@ -1702,7 +1712,7 @@ index bf91ef462e..80ccade06a 100644 struct ethtool_sset_info hdr; struct { uint64_t pad[2]; -@@ -2440,9 +2441,12 @@ netdev_linux_read_definitions(struct netdev_linux *netdev, +@@ -2440,9 +2440,12 @@ netdev_linux_read_definitions(struct netdev_linux *netdev, int error = 0; error = netdev_linux_read_stringset_info(netdev, &len); @@ -1716,7 +1726,23 @@ index bf91ef462e..80ccade06a 100644 strings = xzalloc(sizeof *strings + len * ETH_GSTRING_LEN); strings->cmd = ETHTOOL_GSTRINGS; -@@ -2725,6 +2729,7 @@ netdev_linux_get_speed_locked(struct netdev_linux *netdev, +@@ -2507,13 +2510,11 @@ netdev_linux_set_ol(struct netdev *netdev_) + char *string; + uint32_t value; + } t_list[] = { +- {"tx-checksum-ipv4", NETDEV_TX_OFFLOAD_IPV4_CKSUM | +- NETDEV_TX_OFFLOAD_TCP_CKSUM | ++ {"tx-checksum-ipv4", NETDEV_TX_OFFLOAD_TCP_CKSUM | + NETDEV_TX_OFFLOAD_UDP_CKSUM}, + {"tx-checksum-ipv6", NETDEV_TX_OFFLOAD_TCP_CKSUM | + NETDEV_TX_OFFLOAD_UDP_CKSUM}, +- {"tx-checksum-ip-generic", NETDEV_TX_OFFLOAD_IPV4_CKSUM | +- NETDEV_TX_OFFLOAD_TCP_CKSUM | ++ {"tx-checksum-ip-generic", NETDEV_TX_OFFLOAD_TCP_CKSUM | + NETDEV_TX_OFFLOAD_UDP_CKSUM}, + {"tx-checksum-sctp", NETDEV_TX_OFFLOAD_SCTP_CKSUM}, + {"tx-tcp-segmentation", NETDEV_TX_OFFLOAD_TCP_TSO}, +@@ -2725,6 +2726,7 @@ netdev_linux_get_speed_locked(struct netdev_linux *netdev, uint32_t *current, uint32_t *max) { if (netdev_linux_netnsid_is_remote(netdev)) { @@ -1724,7 +1750,7 @@ index bf91ef462e..80ccade06a 100644 return EOPNOTSUPP; } -@@ -2734,6 +2739,8 @@ netdev_linux_get_speed_locked(struct netdev_linux *netdev, +@@ -2734,6 +2736,8 @@ netdev_linux_get_speed_locked(struct netdev_linux *netdev, ? 0 : netdev->current_speed; *max = MIN(UINT32_MAX, netdev_features_to_bps(netdev->supported, 0) / 1000000ULL); @@ -1733,6 +1759,20 @@ index bf91ef462e..80ccade06a 100644 } return netdev->get_features_error; } +@@ -7199,13 +7203,6 @@ netdev_linux_prepend_vnet_hdr(struct dp_packet *b, int mtu) + /* The packet has good L4 checksum. No need to validate again. */ + vnet->csum_start = vnet->csum_offset = (OVS_FORCE __virtio16) 0; + vnet->flags = VIRTIO_NET_HDR_F_DATA_VALID; +- +- /* It is possible that L4 is good but the IPv4 checksum isn't +- * complete. For example in the case of UDP encapsulation of an ARP +- * packet where the UDP checksum is 0. */ +- if (dp_packet_hwol_l3_csum_ipv4_ol(b)) { +- dp_packet_ip_set_header_csum(b, false); +- } + } else if (dp_packet_hwol_tx_l4_checksum(b)) { + /* The csum calculation is offloaded. */ + if (dp_packet_hwol_l4_is_tcp(b)) { diff --git a/lib/netdev-native-tnl.c b/lib/netdev-native-tnl.c index dee9ab344e..0f9f07f44b 100644 --- a/lib/netdev-native-tnl.c diff --git a/SPECS/openvswitch3.3.spec b/SPECS/openvswitch3.3.spec index beb6e48..cc11de2 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: 42%{?dist} +Release: 43%{?dist} # Nearly all of openvswitch is ASL 2.0. The bugtool is LGPLv2+, and the # lib/sflow*.[ch] files are SISSL @@ -769,6 +769,12 @@ exit 0 %endif %changelog +* Wed Aug 14 2024 Open vSwitch CI - 3.3.0-43 +- Merging upstream branch-3.3 [RH git: 62ef744448] + Commit list: + 9fac5b970e netdev-linux: Do not offload IP checksum. + + * Mon Aug 12 2024 Open vSwitch CI - 3.3.0-42 - Merging upstream branch-3.3 [RH git: 7188a23809] Commit list: