diff --git a/SOURCES/openvswitch-2.15.0.patch b/SOURCES/openvswitch-2.15.0.patch index b2cb851..9e44166 100644 --- a/SOURCES/openvswitch-2.15.0.patch +++ b/SOURCES/openvswitch-2.15.0.patch @@ -20341,6 +20341,33 @@ index d9db3c915c..8655f76d92 100644 #define CMAP_CURSOR_FOR_EACH(NODE, MEMBER, CURSOR, CMAP) \ for (*(CURSOR) = cmap_cursor_start(CMAP); \ +diff --git a/lib/conntrack-other.c b/lib/conntrack-other.c +index d3b4601858..7f3e63c384 100644 +--- a/lib/conntrack-other.c ++++ b/lib/conntrack-other.c +@@ -48,18 +48,19 @@ other_conn_update(struct conntrack *ct, struct conn *conn_, + struct dp_packet *pkt OVS_UNUSED, bool reply, long long now) + { + struct conn_other *conn = conn_other_cast(conn_); +- enum ct_update_res ret = CT_UPDATE_VALID; + + if (reply && conn->state != OTHERS_BIDIR) { + conn->state = OTHERS_BIDIR; + } else if (conn->state == OTHERS_FIRST) { + conn->state = OTHERS_MULTIPLE; +- ret = CT_UPDATE_VALID_NEW; + } + + conn_update_expiration(ct, &conn->up, other_timeouts[conn->state], now); + +- return ret; ++ if (conn->state == OTHERS_BIDIR) { ++ return CT_UPDATE_VALID; ++ } ++ return CT_UPDATE_VALID_NEW; + } + + static bool diff --git a/lib/conntrack.c b/lib/conntrack.c index feaaec1c3f..96c896dfb9 100644 --- a/lib/conntrack.c @@ -30318,7 +30345,7 @@ index 1714273e35..270956d13f 100644 dnl Delete ip address. AT_CHECK([ip addr del 10.0.0.17/24 dev p1-route], [0], [stdout]) diff --git a/tests/system-traffic.at b/tests/system-traffic.at -index fb5b9a36d2..8c2ef930b8 100644 +index fb5b9a36d2..61064ad051 100644 --- a/tests/system-traffic.at +++ b/tests/system-traffic.at @@ -218,6 +218,7 @@ OVS_TRAFFIC_VSWITCHD_STOP @@ -30505,6 +30532,15 @@ index fb5b9a36d2..8c2ef930b8 100644 OVS_CHECK_GENEVE() OVS_TRAFFIC_VSWITCHD_START() +@@ -612,7 +724,7 @@ NS_CHECK_EXEC([at_ns0], [ping -q -c 3 10.1.1.100 | FORMAT_PING], [0], [dnl + ]) + + dnl Test OVS handles TLV map modifictions properly when restores frozen state. +-NS_CHECK_EXEC([at_ns0], [ping 10.1.1.100 > /dev/null &]) ++NETNS_DAEMONIZE([at_ns0], [ping 10.1.1.100 > /dev/null], [ping0.pid]) + + AT_CHECK([ovs-ofctl add-tlv-map br0 "{class=0xffff,type=0x88,len=4}->tun_metadata1"]) + sleep 1 @@ -626,6 +738,7 @@ OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP @@ -30665,7 +30701,23 @@ index fb5b9a36d2..8c2ef930b8 100644 AT_SETUP([conntrack - multiple bridges]) CHECK_CONNTRACK() OVS_TRAFFIC_VSWITCHD_START( -@@ -3251,6 +3474,46 @@ NS_CHECK_EXEC([at_ns0], [ping6 -s 3200 -q -c 3 -i 0.3 -w 2 fc00::2 | FORMAT_PING +@@ -2330,6 +2553,15 @@ NXST_FLOW reply: + table=1, priority=100,ct_state=+est+trk,in_port=1 actions=output:2 + ]) + ++dnl Send a 3rd UDP packet on port 1 ++AT_CHECK([ovs-ofctl -O OpenFlow13 packet-out br0 "in_port=1 packet=50540000000a50540000000908004500001c000000000011a4cd0a0101010a0101020001000200080000 actions=resubmit(,0)"]) ++ ++dnl There still should not be any packet that matches the established ct_state. ++AT_CHECK([ovs-ofctl dump-flows br0 "table=1 in_port=1,ct_state=+trk+est" | ofctl_strip], [0], [dnl ++NXST_FLOW reply: ++ table=1, priority=100,ct_state=+est+trk,in_port=1 actions=output:2 ++]) ++ + OVS_TRAFFIC_VSWITCHD_STOP + AT_CLEANUP + +@@ -3251,6 +3483,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 @@ -30712,7 +30764,7 @@ index fb5b9a36d2..8c2ef930b8 100644 AT_SETUP([conntrack - resubmit to ct multiple times]) CHECK_CONNTRACK() -@@ -3410,15 +3673,15 @@ action=normal +@@ -3410,15 +3682,15 @@ action=normal AT_CHECK([ovs-ofctl --bundle add-flows br0 flows.txt]) @@ -30731,7 +30783,7 @@ index fb5b9a36d2..8c2ef930b8 100644 "1616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161610a, actions=ct(table=1)"]) AT_CHECK([ovs-appctl dpctl/dump-flows | head -2 | tail -1 | grep -q -e ["]udp[(]src=5001["]]) -@@ -4433,6 +4696,52 @@ tcp,orig=(src=10.1.1.1,dst=10.1.1.2,sport=,dport=),reply=(src= +@@ -4433,6 +4705,52 @@ tcp,orig=(src=10.1.1.1,dst=10.1.1.2,sport=,dport=),reply=(src= OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP @@ -30784,7 +30836,7 @@ index fb5b9a36d2..8c2ef930b8 100644 AT_SETUP([conntrack - simple DNAT]) CHECK_CONNTRACK() CHECK_CONNTRACK_NAT() -@@ -4488,6 +4797,41 @@ tcp,orig=(src=10.1.1.1,dst=10.1.1.2,sport=,dport=),reply=(src= +@@ -4488,6 +4806,41 @@ tcp,orig=(src=10.1.1.1,dst=10.1.1.2,sport=,dport=),reply=(src= OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP @@ -30826,7 +30878,7 @@ index fb5b9a36d2..8c2ef930b8 100644 AT_SETUP([conntrack - more complex DNAT]) CHECK_CONNTRACK() CHECK_CONNTRACK_NAT() -@@ -5682,7 +6026,7 @@ on_exit 'ovs-appctl revalidator/purge' +@@ -5682,7 +6035,7 @@ on_exit 'ovs-appctl revalidator/purge' on_exit 'ovs-appctl dpif/dump-flows br0' dnl Should work with the virtual IP address through NAT @@ -30835,7 +30887,7 @@ index fb5b9a36d2..8c2ef930b8 100644 echo Request $i NS_CHECK_EXEC([at_ns1], [wget 10.1.1.64 -t 5 -T 1 --retry-connrefused -v -o wget$i.log]) done -@@ -5971,6 +6315,132 @@ AT_CHECK([ovs-ofctl dump-flows br0 | grep table=2, | OFPROTO_CLEAR_DURATION_IDLE +@@ -5971,6 +6324,132 @@ AT_CHECK([ovs-ofctl dump-flows br0 | grep table=2, | OFPROTO_CLEAR_DURATION_IDLE OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP diff --git a/SPECS/openvswitch2.15.spec b/SPECS/openvswitch2.15.spec index 0036933..223ea47 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: 110%{?dist} +Release: 111%{?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 +* Mon Jul 25 2022 Open vSwitch CI - 2.15.0-111 +- Merging upstream branch-2.15 [RH git: bc54a123ad] + Commit list: + eb3484a398 system-traffic: Properly stop dangling ping after geneve test. + 0f639878cb conntrack: Fix conntrack multiple new state. + + * Thu Jul 14 2022 Open vSwitch CI - 2.15.0-110 - Merging upstream branch-2.15 [RH git: b75a6f236b] Commit list: