diff --git a/SOURCES/openvswitch-2.15.0.patch b/SOURCES/openvswitch-2.15.0.patch index 620dfd0..7830a36 100644 --- a/SOURCES/openvswitch-2.15.0.patch +++ b/SOURCES/openvswitch-2.15.0.patch @@ -23172,7 +23172,7 @@ index 7108c8a301..6a518e59cc 100644 } } diff --git a/ofproto/ofproto-dpif.c b/ofproto/ofproto-dpif.c -index fd0b2fdea0..29d8bb4947 100644 +index fd0b2fdea0..ebd8f08e84 100644 --- a/ofproto/ofproto-dpif.c +++ b/ofproto/ofproto-dpif.c @@ -1389,6 +1389,24 @@ check_ct_timeout_policy(struct dpif_backer *backer) @@ -23211,7 +23211,20 @@ index fd0b2fdea0..29d8bb4947 100644 /* Flow fields. */ backer->rt_support.odp.ct_state = check_ct_state(backer); -@@ -5413,6 +5432,8 @@ ct_add_timeout_policy_to_dpif(struct dpif *dpif, +@@ -2314,6 +2333,12 @@ set_ipfix( + dpif_ipfix_unref(di); + ofproto->ipfix = NULL; + } ++ ++ /* TODO: need to consider ipfix option changes more than ++ * enable/disable */ ++ if (new_di || !ofproto->ipfix) { ++ ofproto->backer->need_revalidate = REV_RECONFIGURE; ++ } + } + + return 0; +@@ -5413,6 +5438,8 @@ ct_add_timeout_policy_to_dpif(struct dpif *dpif, struct ct_dpif_timeout_policy cdtp; struct simap_node *node; @@ -23220,7 +23233,7 @@ index fd0b2fdea0..29d8bb4947 100644 cdtp.id = ct_tp->tp_id; SIMAP_FOR_EACH (node, &ct_tp->tp) { ct_dpif_set_timeout_policy_attr_by_name(&cdtp, node->name, node->data); -@@ -5603,6 +5624,7 @@ get_datapath_cap(const char *datapath_type, struct smap *cap) +@@ -5603,6 +5630,7 @@ get_datapath_cap(const char *datapath_type, struct smap *cap) smap_add(cap, "explicit_drop_action", s.explicit_drop_action ? "true" :"false"); smap_add(cap, "lb_output_action", s.lb_output_action ? "true" : "false"); @@ -23228,7 +23241,7 @@ index fd0b2fdea0..29d8bb4947 100644 } /* Gets timeout policy name in 'backer' based on 'zone', 'dl_type' and -@@ -6375,6 +6397,7 @@ ofproto_unixctl_dpif_show_dp_features(struct unixctl_conn *conn, +@@ -6375,6 +6403,7 @@ ofproto_unixctl_dpif_show_dp_features(struct unixctl_conn *conn, dpif_show_support(&ofproto->backer->bt_support, &ds); unixctl_command_reply(conn, ds_cstr(&ds)); @@ -26636,6 +26649,25 @@ index 0f74709f5a..5bca84351c 100644 run should send probe in IDLE for 0 ms (1000 ms backoff) +diff --git a/tests/system-common-macros.at b/tests/system-common-macros.at +index 9d5e24a292..7a44e697a3 100644 +--- a/tests/system-common-macros.at ++++ b/tests/system-common-macros.at +@@ -281,6 +281,14 @@ m4_define([OVS_START_L7], + # + m4_define([OFPROTO_CLEAR_DURATION_IDLE], [[sed -e 's/duration=.*s,/duration=,/g' -e 's/idle_age=[0-9]*,/idle_age=,/g']]) + ++# OVS_CHECK_TUNNEL_TSO() ++# ++# Macro to be used in general tunneling tests that could be also ++# used by system-tso. In that case, tunneling is not supported and ++# the test should be skipped. ++m4_define([OVS_CHECK_TUNNEL_TSO], ++ [m4_ifdef([CHECK_SYSTEM_TSO], [AT_SKIP_IF(:)])]) ++ + # OVS_CHECK_VXLAN() + # + # Do basic check for vxlan functionality, skip the test if it's not there. diff --git a/tests/system-kmod-macros.at b/tests/system-kmod-macros.at index 15628a7c6f..86d633ac4f 100644 --- a/tests/system-kmod-macros.at @@ -26717,14 +26749,87 @@ index 4f601ef939..c8e4c68fae 100644 +OVS_TRAFFIC_VSWITCHD_STOP +AT_CLEANUP diff --git a/tests/system-traffic.at b/tests/system-traffic.at -index fb5b9a36d2..b56ffda448 100644 +index fb5b9a36d2..8347090f84 100644 --- a/tests/system-traffic.at +++ b/tests/system-traffic.at -@@ -574,6 +574,60 @@ NS_CHECK_EXEC([at_ns0], [ping -s 3200 -q -c 3 -i 0.3 -w 2 10.1.1.100 | FORMAT_PI +@@ -218,6 +218,7 @@ OVS_TRAFFIC_VSWITCHD_STOP + AT_CLEANUP + + AT_SETUP([datapath - ping over vxlan tunnel]) ++OVS_CHECK_TUNNEL_TSO() + OVS_CHECK_VXLAN() + + OVS_TRAFFIC_VSWITCHD_START() +@@ -259,6 +260,7 @@ OVS_TRAFFIC_VSWITCHD_STOP + AT_CLEANUP + + AT_SETUP([datapath - ping over vxlan6 tunnel]) ++OVS_CHECK_TUNNEL_TSO() + OVS_CHECK_VXLAN_UDP6ZEROCSUM() + + OVS_TRAFFIC_VSWITCHD_START() +@@ -302,6 +304,7 @@ OVS_TRAFFIC_VSWITCHD_STOP + AT_CLEANUP + + AT_SETUP([datapath - ping over gre tunnel]) ++OVS_CHECK_TUNNEL_TSO() + OVS_CHECK_KERNEL_EXCL(3, 10, 4, 15) + OVS_CHECK_GRE() + +@@ -343,6 +346,7 @@ OVS_TRAFFIC_VSWITCHD_STOP + AT_CLEANUP + + AT_SETUP([datapath - ping over ip6gre L2 tunnel]) ++OVS_CHECK_TUNNEL_TSO() + OVS_CHECK_KERNEL_EXCL(3, 10, 4, 15) + OVS_CHECK_GRE() + OVS_CHECK_ERSPAN() +@@ -383,6 +387,7 @@ AT_CLEANUP + + + AT_SETUP([datapath - ping over erspan v1 tunnel]) ++OVS_CHECK_TUNNEL_TSO() + OVS_CHECK_KERNEL_EXCL(3, 10, 4, 15) + OVS_CHECK_GRE() + OVS_CHECK_ERSPAN() +@@ -419,6 +424,7 @@ OVS_TRAFFIC_VSWITCHD_STOP + AT_CLEANUP + + AT_SETUP([datapath - ping over erspan v2 tunnel]) ++OVS_CHECK_TUNNEL_TSO() + OVS_CHECK_KERNEL_EXCL(3, 10, 4, 15) + OVS_CHECK_GRE() + OVS_CHECK_ERSPAN() +@@ -455,6 +461,7 @@ OVS_TRAFFIC_VSWITCHD_STOP + AT_CLEANUP + + AT_SETUP([datapath - ping over ip6erspan v1 tunnel]) ++OVS_CHECK_TUNNEL_TSO() + OVS_CHECK_KERNEL_EXCL(3, 10, 4, 15) + OVS_CHECK_GRE() + OVS_CHECK_ERSPAN() +@@ -494,6 +501,7 @@ OVS_TRAFFIC_VSWITCHD_STOP + AT_CLEANUP + + AT_SETUP([datapath - ping over ip6erspan v2 tunnel]) ++OVS_CHECK_TUNNEL_TSO() + OVS_CHECK_KERNEL_EXCL(3, 10, 4, 15) + OVS_CHECK_GRE() + OVS_CHECK_ERSPAN() +@@ -534,6 +542,7 @@ OVS_TRAFFIC_VSWITCHD_STOP + AT_CLEANUP + + AT_SETUP([datapath - ping over geneve tunnel]) ++OVS_CHECK_TUNNEL_TSO() + OVS_CHECK_GENEVE() + + OVS_TRAFFIC_VSWITCHD_START() +@@ -574,7 +583,63 @@ NS_CHECK_EXEC([at_ns0], [ping -s 3200 -q -c 3 -i 0.3 -w 2 10.1.1.100 | FORMAT_PI OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP +AT_SETUP([datapath - ping over geneve tunnel, delete flow regression]) ++OVS_CHECK_TUNNEL_TSO() +OVS_CHECK_GENEVE() + +OVS_TRAFFIC_VSWITCHD_START() @@ -26779,9 +26884,59 @@ index fb5b9a36d2..b56ffda448 100644 +AT_CLEANUP + AT_SETUP([datapath - flow resume with geneve tun_metadata]) ++OVS_CHECK_TUNNEL_TSO() OVS_CHECK_GENEVE() -@@ -1927,6 +1981,111 @@ tcp,orig=(src=10.1.1.3,dst=10.1.1.4,sport=,dport=),reply=(src= + OVS_TRAFFIC_VSWITCHD_START() +@@ -626,6 +691,7 @@ OVS_TRAFFIC_VSWITCHD_STOP + AT_CLEANUP + + AT_SETUP([datapath - ping over geneve6 tunnel]) ++OVS_CHECK_TUNNEL_TSO() + OVS_CHECK_GENEVE_UDP6ZEROCSUM() + + OVS_TRAFFIC_VSWITCHD_START() +@@ -669,6 +735,7 @@ OVS_TRAFFIC_VSWITCHD_STOP + AT_CLEANUP + + AT_SETUP([datapath - ping over gre tunnel by simulated packets]) ++OVS_CHECK_TUNNEL_TSO() + OVS_CHECK_MIN_KERNEL(3, 10) + + OVS_TRAFFIC_VSWITCHD_START() +@@ -715,6 +782,7 @@ OVS_TRAFFIC_VSWITCHD_STOP + AT_CLEANUP + + AT_SETUP([datapath - ping over erspan v1 tunnel by simulated packets]) ++OVS_CHECK_TUNNEL_TSO() + OVS_CHECK_MIN_KERNEL(3, 10) + + OVS_TRAFFIC_VSWITCHD_START() +@@ -763,6 +831,7 @@ OVS_TRAFFIC_VSWITCHD_STOP + AT_CLEANUP + + AT_SETUP([datapath - ping over erspan v2 tunnel by simulated packets]) ++OVS_CHECK_TUNNEL_TSO() + OVS_CHECK_MIN_KERNEL(3, 10) + + OVS_TRAFFIC_VSWITCHD_START() +@@ -816,6 +885,7 @@ OVS_TRAFFIC_VSWITCHD_STOP + AT_CLEANUP + + AT_SETUP([datapath - ping over ip6erspan v1 tunnel by simulated packets]) ++OVS_CHECK_TUNNEL_TSO() + OVS_CHECK_MIN_KERNEL(3, 10) + + OVS_TRAFFIC_VSWITCHD_START() +@@ -871,6 +941,7 @@ OVS_TRAFFIC_VSWITCHD_STOP + AT_CLEANUP + + AT_SETUP([datapath - ping over ip6erspan v2 tunnel by simulated packets]) ++OVS_CHECK_TUNNEL_TSO() + OVS_CHECK_MIN_KERNEL(3, 10) + + OVS_TRAFFIC_VSWITCHD_START() +@@ -1927,6 +1998,111 @@ tcp,orig=(src=10.1.1.3,dst=10.1.1.4,sport=,dport=),reply=(src= OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP @@ -26893,7 +27048,7 @@ index fb5b9a36d2..b56ffda448 100644 AT_SETUP([conntrack - multiple bridges]) CHECK_CONNTRACK() OVS_TRAFFIC_VSWITCHD_START( -@@ -3251,6 +3410,46 @@ NS_CHECK_EXEC([at_ns0], [ping6 -s 3200 -q -c 3 -i 0.3 -w 2 fc00::2 | FORMAT_PING +@@ -3251,6 +3427,46 @@ NS_CHECK_EXEC([at_ns0], [ping6 -s 3200 -q -c 3 -i 0.3 -w 2 fc00::2 | FORMAT_PING OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP @@ -26940,7 +27095,7 @@ index fb5b9a36d2..b56ffda448 100644 AT_SETUP([conntrack - resubmit to ct multiple times]) CHECK_CONNTRACK() -@@ -4433,6 +4632,52 @@ tcp,orig=(src=10.1.1.1,dst=10.1.1.2,sport=,dport=),reply=(src= +@@ -4433,6 +4649,52 @@ tcp,orig=(src=10.1.1.1,dst=10.1.1.2,sport=,dport=),reply=(src= OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP @@ -26993,7 +27148,7 @@ index fb5b9a36d2..b56ffda448 100644 AT_SETUP([conntrack - simple DNAT]) CHECK_CONNTRACK() CHECK_CONNTRACK_NAT() -@@ -4488,6 +4733,41 @@ tcp,orig=(src=10.1.1.1,dst=10.1.1.2,sport=,dport=),reply=(src= +@@ -4488,6 +4750,41 @@ tcp,orig=(src=10.1.1.1,dst=10.1.1.2,sport=,dport=),reply=(src= OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP @@ -27035,6 +27190,16 @@ index fb5b9a36d2..b56ffda448 100644 AT_SETUP([conntrack - more complex DNAT]) CHECK_CONNTRACK() CHECK_CONNTRACK_NAT() +diff --git a/tests/system-tso-macros.at b/tests/system-tso-macros.at +index 406334f3e0..1a80047619 100644 +--- a/tests/system-tso-macros.at ++++ b/tests/system-tso-macros.at +@@ -29,3 +29,5 @@ m4_define([CONFIGURE_VETH_OFFLOADS], + [AT_CHECK([ethtool -K $1 sg on], [0], [ignore], [ignore])] + [AT_CHECK([ethtool -K $1 tso on], [0], [ignore], [ignore])] + ) ++ ++m4_define([CHECK_SYSTEM_TSO], []) diff --git a/tests/system-userspace-macros.at b/tests/system-userspace-macros.at index 34f82cee3d..9f0d38dfb3 100644 --- a/tests/system-userspace-macros.at diff --git a/SPECS/openvswitch2.15.spec b/SPECS/openvswitch2.15.spec index 515ffc4..d8c0ae3 100644 --- a/SPECS/openvswitch2.15.spec +++ b/SPECS/openvswitch2.15.spec @@ -57,7 +57,7 @@ Summary: Open vSwitch Group: System Environment/Daemons daemon/database/utilities URL: http://www.openvswitch.org/ Version: 2.15.0 -Release: 79%{?dist} +Release: 80%{?dist} # Nearly all of openvswitch is ASL 2.0. The bugtool is LGPLv2+, and the # lib/sflow*.[ch] files are SISSL @@ -702,6 +702,13 @@ exit 0 %endif %changelog +* Sat Mar 05 2022 Open vSwitch CI - 2.15.0-80 +- Merging upstream branch-2.15 [RH git: 729a55e204] + Commit list: + 08d77484f6 ofproto-dpif: Trigger revalidation when ipfix config set. + bc3b88c8ad system-tso: Skip encap tests when userspace TSO is enabled. + + * Fri Mar 04 2022 Open vSwitch CI - 2.15.0-79 - Merging upstream branch-2.15 [RH git: 82cbd329f0] Commit list: