diff --git a/SOURCES/openvswitch-3.1.0.patch b/SOURCES/openvswitch-3.1.0.patch index a32748f..349a4ff 100644 --- a/SOURCES/openvswitch-3.1.0.patch +++ b/SOURCES/openvswitch-3.1.0.patch @@ -3152,7 +3152,7 @@ index 134496ef3f..3a8068b12c 100644 invalidate_cache(ctx); } diff --git a/lib/dpctl.c b/lib/dpctl.c -index d12d9b8a5e..e9110462d2 100644 +index d12d9b8a5e..a93628fb7e 100644 --- a/lib/dpctl.c +++ b/lib/dpctl.c @@ -673,7 +673,7 @@ show_dpif(struct dpif *dpif, struct dpctl_params *dpctl_p) @@ -3164,6 +3164,16 @@ index d12d9b8a5e..e9110462d2 100644 continue; } +@@ -726,8 +726,8 @@ show_dpif(struct dpif *dpif, struct dpctl_params *dpctl_p) + continue; + } + error = netdev_get_stats(netdev, &s); ++ netdev_close(netdev); + if (!error) { +- netdev_close(netdev); + print_stat(dpctl_p, " RX packets:", s.rx_packets); + print_stat(dpctl_p, " errors:", s.rx_errors); + print_stat(dpctl_p, " dropped:", s.rx_dropped); @@ -1343,19 +1343,17 @@ static int dpctl_del_flow_dpif(struct dpif *dpif, const char *key_s, struct dpctl_params *dpctl_p) @@ -3361,6 +3371,18 @@ index c9f7179c3b..4c85ab4aad 100644 dpif_netdev_init, dpif_netdev_enumerate, dpif_netdev_port_open_type, +diff --git a/lib/dpif-netlink-rtnl.c b/lib/dpif-netlink-rtnl.c +index 4fc42daed2..4090efcd85 100644 +--- a/lib/dpif-netlink-rtnl.c ++++ b/lib/dpif-netlink-rtnl.c +@@ -561,6 +561,7 @@ dpif_netlink_rtnl_probe_oot_tunnels(void) + + tnl_cfg = netdev_get_tunnel_config(netdev); + if (!tnl_cfg) { ++ netdev_close(netdev); + return true; + } + diff --git a/lib/dpif-netlink.c b/lib/dpif-netlink.c index 026b0daa8d..dc56e863fd 100644 --- a/lib/dpif-netlink.c @@ -7580,7 +7602,7 @@ index 9224ee2e6d..2e1fcb3a6f 100644 static struct vlog_rate_limit rl = VLOG_RATE_LIMIT_INIT(1, 5); VLOG_WARN_RL(&rl, "xcache LEARN action execution failed."); diff --git a/ofproto/ofproto-dpif-xlate.c b/ofproto/ofproto-dpif-xlate.c -index a9cf3cbee0..ac953d70d8 100644 +index a9cf3cbee0..73dd5d1910 100644 --- a/ofproto/ofproto-dpif-xlate.c +++ b/ofproto/ofproto-dpif-xlate.c @@ -66,6 +66,7 @@ @@ -8263,7 +8285,7 @@ index a9cf3cbee0..ac953d70d8 100644 + + set_field = ofpact_get_SET_FIELD(a); + mf = set_field->field; -+ if (mf_are_prereqs_ok(mf, flow, NULL)) { ++ if (mf_are_prereqs_ok(mf, flow, NULL) && !mf_is_tun_metadata(mf)) { + ctx->mirrors = 0; + } + return; @@ -17369,7 +17391,7 @@ index 013ecbcaa8..281904ddcb 100644 +OVS_VSWITCHD_STOP +AT_CLEANUP diff --git a/tests/tunnel.at b/tests/tunnel.at -index 037b4c3908..b341ed7559 100644 +index 037b4c3908..f0a8e9e379 100644 --- a/tests/tunnel.at +++ b/tests/tunnel.at @@ -333,6 +333,50 @@ set(tunnel(tun_id=0x5,dst=4.4.4.4,ttl=64,flags(df|key))),1 @@ -17439,7 +17461,7 @@ index 037b4c3908..b341ed7559 100644 ]) dnl change the flow table to bump the internal table version -@@ -1223,3 +1268,15 @@ AT_CHECK([ovs-vsctl add-port br0 p1 -- set int p1 type=dummy]) +@@ -1223,3 +1268,44 @@ AT_CHECK([ovs-vsctl add-port br0 p1 -- set int p1 type=dummy]) OVS_APP_EXIT_AND_WAIT([ovs-vswitchd]) OVS_APP_EXIT_AND_WAIT([ovsdb-server])] AT_CLEANUP @@ -17455,6 +17477,35 @@ index 037b4c3908..b341ed7559 100644 +OVS_APP_EXIT_AND_WAIT([ovs-vswitchd]) +OVS_APP_EXIT_AND_WAIT([ovsdb-server])] +AT_CLEANUP ++ ++AT_SETUP([tunnel - Geneve metadata mirror]) ++OVS_VSWITCHD_START([add-port br0 p1 -- set Interface p1 type=geneve \ ++ options:remote_ip=1.1.1.1 ofport_request=1 \ ++ -- add-port br0 p2 -- set Interface p2 type=dummy \ ++ ofport_request=2 ofport_request=2]) ++OVS_VSWITCHD_DISABLE_TUNNEL_PUSH_POP ++add_of_ports br0 90 ++AT_CHECK([ovs-vsctl \ ++ set Bridge br0 mirrors=@m --\ ++ --id=@p90 get Port p90 --\ ++ --id=@m create Mirror name=mymirror select_all=true output_port=@p90], [0], [stdout]) ++ ++AT_CHECK([ovs-ofctl add-tlv-map br0 "{class=0xffff,type=0,len=4}->tun_metadata0,{class=0xffff,type=1,len=8}->tun_metadata1"]) ++ ++AT_DATA([flows.txt], [dnl ++in_port=2,actions=set_field:0xa->tun_metadata0,set_field:0x1234567890abcdef->tun_metadata1,1 ++tun_metadata0=0xb/0xf,actions=2 ++]) ++AT_CHECK([ovs-ofctl add-flows br0 flows.txt]) ++ ++flow="in_port(2),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)" ++AT_CHECK([ovs-appctl ofproto/trace ovs-dummy "$flow"], [0], [stdout]) ++AT_CHECK_UNQUOTED([tail -1 stdout], [0], ++ [Datapath actions: 90,set(tunnel(dst=1.1.1.1,ttl=64,tp_dst=6081,geneve({class=0xffff,type=0,len=4,0xa}{class=0xffff,type=0x1,len=8,0x1234567890abcdef}),flags(df))),6081 ++]) ++ ++OVS_VSWITCHD_STOP ++AT_CLEANUP diff --git a/tests/vlog.at b/tests/vlog.at index 3e92e70a93..31afb66bac 100644 --- a/tests/vlog.at diff --git a/SPECS/openvswitch3.1.spec b/SPECS/openvswitch3.1.spec index 73832d8..dbf93ef 100644 --- a/SPECS/openvswitch3.1.spec +++ b/SPECS/openvswitch3.1.spec @@ -63,7 +63,7 @@ Summary: Open vSwitch Group: System Environment/Daemons daemon/database/utilities URL: http://www.openvswitch.org/ Version: 3.1.0 -Release: 130%{?dist} +Release: 132%{?dist} # Nearly all of openvswitch is ASL 2.0. The bugtool is LGPLv2+, and the # lib/sflow*.[ch] files are SISSL @@ -757,6 +757,20 @@ exit 0 %endif %changelog +* Wed Jul 17 2024 Open vSwitch CI - 3.1.0-132 +- Merging upstream branch-3.1 [RH git: 62cd6967dd] + Commit list: + d97c8a730a dpif-netlink-rtnl: Fix netdev leak in out-of-tree tunnels probe. + be77786854 dpctl: Fix netdev reference leak in "show" command. + + +* Wed Jul 17 2024 Open vSwitch CI - 3.1.0-131 +- Merging upstream branch-3.1 [RH git: 8ac99ae311] + Commit list: + 9587dcd906 tests/tunnel.at: Add geneve options mirror test. + b7d325714b ofproto-dpif-upcall: Fix redundant mirror on geneve tunnel options. + + * Wed Jul 03 2024 Open vSwitch CI - 3.1.0-130 - Merging upstream branch-3.1 [RH git: a9e22d1501] Commit list: