From 9b7948d2b4169ef1ffb9b80e34540cb67644aff3 Mon Sep 17 00:00:00 2001 From: Open vSwitch CI Date: May 03 2024 20:45:46 +0000 Subject: Import openvswitch2.17-2.17.0-167 from Fast DataPath --- diff --git a/SOURCES/openvswitch-2.17.0.patch b/SOURCES/openvswitch-2.17.0.patch index febcb0f..4920bc6 100644 --- a/SOURCES/openvswitch-2.17.0.patch +++ b/SOURCES/openvswitch-2.17.0.patch @@ -95513,10 +95513,10 @@ index e966371192..2b1dd0e005 100644 include/sparse/bits/floatn.h \ diff --git a/include/sparse/immintrin.h b/include/sparse/immintrin.h new file mode 100644 -index 0000000000..dd742be9f5 +index 0000000000..9a23d7f746 --- /dev/null +++ b/include/sparse/immintrin.h -@@ -0,0 +1,30 @@ +@@ -0,0 +1,34 @@ +/* Copyright (c) 2024 Red Hat, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); @@ -95545,6 +95545,10 @@ index 0000000000..dd742be9f5 +#define _KEYLOCKERINTRIN_H_INCLUDED +#define __AVX512FP16INTRIN_H_INCLUDED +#define __AVX512FP16VLINTRIN_H_INCLUDED ++/* GCC >=14 changed the '__AVX512FP16INTRIN_H_INCLUDED' to have only single ++ * underscore. We need both to keep compatibility between various GCC ++ * versions. */ ++#define _AVX512FP16INTRIN_H_INCLUDED + +#include_next diff --git a/include/sparse/numa.h b/include/sparse/numa.h @@ -99018,6 +99022,30 @@ index dd523c889b..418c3c4f48 100644 WC_MASK_FIELD(wc, nw_tos); WC_MASK_FIELD(wc, nw_ttl); WC_MASK_FIELD(wc, nw_proto); +diff --git a/lib/hash.c b/lib/hash.c +index c722f3c3cc..3d574de9b4 100644 +--- a/lib/hash.c ++++ b/lib/hash.c +@@ -29,15 +29,16 @@ hash_3words(uint32_t a, uint32_t b, uint32_t c) + uint32_t + hash_bytes(const void *p_, size_t n, uint32_t basis) + { +- const uint32_t *p = p_; ++ const uint8_t *p = p_; + size_t orig_n = n; + uint32_t hash; + + hash = basis; + while (n >= 4) { +- hash = hash_add(hash, get_unaligned_u32(p)); ++ hash = hash_add(hash, ++ get_unaligned_u32(ALIGNED_CAST(const uint32_t *, p))); + n -= 4; +- p += 1; ++ p += 4; + } + + if (n) { diff --git a/lib/hindex.h b/lib/hindex.h index 876c5a9e39..ea7402587e 100644 --- a/lib/hindex.h @@ -99249,6 +99277,34 @@ index 507db2aea2..d452663743 100644 &ipf->frag_complete_list) { if (ipf_purge_list_check(ipf, ipf_list, now)) { ipf_completed_list_clean(&ipf->frag_lists, ipf_list); +diff --git a/lib/jhash.c b/lib/jhash.c +index c59b51b611..a8e3f457b9 100644 +--- a/lib/jhash.c ++++ b/lib/jhash.c +@@ -96,18 +96,18 @@ jhash_words(const uint32_t *p, size_t n, uint32_t basis) + uint32_t + jhash_bytes(const void *p_, size_t n, uint32_t basis) + { +- const uint32_t *p = p_; ++ const uint8_t *p = p_; + uint32_t a, b, c; + + a = b = c = 0xdeadbeef + n + basis; + + while (n >= 12) { +- a += get_unaligned_u32(p); +- b += get_unaligned_u32(p + 1); +- c += get_unaligned_u32(p + 2); ++ a += get_unaligned_u32(ALIGNED_CAST(const uint32_t *, p)); ++ b += get_unaligned_u32(ALIGNED_CAST(const uint32_t *, p + 4)); ++ c += get_unaligned_u32(ALIGNED_CAST(const uint32_t *, p + 8)); + jhash_mix(&a, &b, &c); + n -= 12; +- p += 3; ++ p += 12; + } + + if (n) { diff --git a/lib/json.c b/lib/json.c index 720c73d940..27a829656b 100644 --- a/lib/json.c @@ -107436,7 +107492,7 @@ index 30e7caf54a..e8e1de920b 100644 } hmap_destroy(&ds->ports); diff --git a/ofproto/ofproto-dpif-trace.c b/ofproto/ofproto-dpif-trace.c -index 78a54c715d..b2e778707f 100644 +index 78a54c715d..7752bae9dd 100644 --- a/ofproto/ofproto-dpif-trace.c +++ b/ofproto/ofproto-dpif-trace.c @@ -65,8 +65,8 @@ static void @@ -107450,7 +107506,24 @@ index 78a54c715d..b2e778707f 100644 ovs_list_remove(&node->node); oftrace_node_destroy(node); } -@@ -812,16 +812,34 @@ ofproto_trace(struct ofproto_dpif *ofproto, const struct flow *flow, +@@ -102,7 +102,7 @@ oftrace_add_recirc_node(struct ovs_list *recirc_queue, + node->flow = *flow; + node->flow.recirc_id = recirc_id; + node->flow.ct_zone = zone; +- node->nat_act = ofn; ++ node->nat_act = ofn ? xmemdup(ofn, sizeof *ofn) : NULL; + node->packet = packet ? dp_packet_clone(packet) : NULL; + + return true; +@@ -113,6 +113,7 @@ oftrace_recirc_node_destroy(struct oftrace_recirc_node *node) + { + if (node) { + recirc_free_id(node->recirc_id); ++ free(node->nat_act); + dp_packet_delete(node->packet); + free(node); + } +@@ -812,16 +813,34 @@ ofproto_trace(struct ofproto_dpif *ofproto, const struct flow *flow, struct ovs_list *next_ct_states, struct ds *output) { struct ovs_list recirc_queue = OVS_LIST_INITIALIZER(&recirc_queue); @@ -107485,6 +107558,19 @@ index 78a54c715d..b2e778707f 100644 } void +diff --git a/ofproto/ofproto-dpif-trace.h b/ofproto/ofproto-dpif-trace.h +index 4b04f1756f..f55d054d29 100644 +--- a/ofproto/ofproto-dpif-trace.h ++++ b/ofproto/ofproto-dpif-trace.h +@@ -73,7 +73,7 @@ struct oftrace_recirc_node { + uint32_t recirc_id; + struct flow flow; + struct dp_packet *packet; +- const struct ofpact_nat *nat_act; ++ struct ofpact_nat *nat_act; + }; + + /* A node within a next_ct_states list. */ diff --git a/ofproto/ofproto-dpif-upcall.c b/ofproto/ofproto-dpif-upcall.c index 57f94df544..047f684e1b 100644 --- a/ofproto/ofproto-dpif-upcall.c @@ -115138,7 +115224,7 @@ index 2c7e163bd6..7be6628c34 100644 AT_CLEANUP diff --git a/tests/ofproto-dpif.at b/tests/ofproto-dpif.at -index 7c2edeb9d4..89adfaaf84 100644 +index 7c2edeb9d4..bbe69c1c37 100644 --- a/tests/ofproto-dpif.at +++ b/tests/ofproto-dpif.at @@ -29,6 +29,58 @@ AT_CHECK([ovs-appctl revalidator/wait]) @@ -115513,7 +115599,7 @@ index 7c2edeb9d4..89adfaaf84 100644 Datapath actions: set(ipv4(src=192.168.3.90)),10,set(ipv4(src=192.168.0.1)),11 ]) OVS_VSWITCHD_STOP -@@ -676,7 +811,7 @@ OVS_VSWITCHD_START +@@ -676,13 +811,35 @@ OVS_VSWITCHD_START add_of_ports br0 1 10 AT_CHECK([ovs-ofctl -O OpenFlow12 add-group br0 group_id=1234,type=indirect,bucket=output:10]) AT_CHECK([ovs-ofctl -O OpenFlow12 add-flow br0 'ip actions=group:1234']) @@ -115522,7 +115608,35 @@ index 7c2edeb9d4..89adfaaf84 100644 AT_CHECK([tail -1 stdout], [0], [Datapath actions: 10 ]) -@@ -697,7 +832,7 @@ done + OVS_VSWITCHD_STOP + AT_CLEANUP + ++AT_SETUP([ofproto-dpif - group with ct and dnat recirculation in action list]) ++OVS_VSWITCHD_START ++add_of_ports br0 1 10 ++AT_CHECK([ovs-ofctl -O OpenFlow12 add-group br0 \ ++ 'group_id=1234,type=all,bucket=ct(nat(dst=10.10.10.7:80),commit,table=2)']) ++AT_DATA([flows.txt], [dnl ++table=0 ip,ct_state=-trk actions=group:1234 ++table=2 ip,ct_state=+trk actions=output:10 ++]) ++AT_CHECK([ovs-ofctl -O OpenFlow12 add-flows br0 flows.txt]) ++AT_CHECK([ovs-appctl ofproto/trace br0 ' ++ in_port=1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800, ++ nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=1,nw_tos=0,nw_ttl=128,nw_frag=no, ++ icmp_type=8,icmp_code=0 ++'], [0], [stdout]) ++AT_CHECK([grep 'Datapath actions' stdout], [0], [dnl ++Datapath actions: ct(commit,nat(dst=10.10.10.7:80)),recirc(0x1) ++Datapath actions: 10 ++]) ++OVS_VSWITCHD_STOP ++AT_CLEANUP ++ + AT_SETUP([ofproto-dpif - group actions have no effect afterwards]) + OVS_VSWITCHD_START + add_of_ports br0 1 10 +@@ -697,7 +854,7 @@ done AT_CHECK([ovs-appctl dpctl/dump-flows | sed 's/dp_hash(.*\/0xf)/dp_hash(0xXXXX\/0xf)/' | sed 's/packets.*actions:/actions:/' | strip_ufid | strip_used | sort], [0], [dnl flow-dump from the main thread: recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=no), actions:hash(sym_l4(0)),recirc(0x1) @@ -115531,7 +115645,7 @@ index 7c2edeb9d4..89adfaaf84 100644 ]) OVS_VSWITCHD_STOP -@@ -708,11 +843,11 @@ OVS_VSWITCHD_START +@@ -708,11 +865,11 @@ OVS_VSWITCHD_START add_of_ports br0 1 10 11 AT_CHECK([ovs-ofctl -O OpenFlow12 add-group br0 'group_id=1234,type=all,bucket=output:10,set_field:192.168.3.90->ip_src,bucket=output:11']) AT_CHECK([ovs-ofctl -O OpenFlow12 add-flow br0 'ip actions=write_actions(group:1234)']) @@ -115545,7 +115659,7 @@ index 7c2edeb9d4..89adfaaf84 100644 Datapath actions: set(ipv4(src=192.168.3.90)),10,set(ipv4(src=192.168.0.1)),11 ]) OVS_VSWITCHD_STOP -@@ -723,7 +858,7 @@ OVS_VSWITCHD_START +@@ -723,7 +880,7 @@ OVS_VSWITCHD_START add_of_ports br0 1 10 AT_CHECK([ovs-ofctl -O OpenFlow12 add-group br0 group_id=1234,type=indirect,bucket=output:10]) AT_CHECK([ovs-ofctl -O OpenFlow12 add-flow br0 'ip actions=write_actions(group:1234)']) @@ -115554,7 +115668,7 @@ index 7c2edeb9d4..89adfaaf84 100644 AT_CHECK([tail -1 stdout], [0], [Datapath actions: 10 ]) -@@ -743,11 +878,11 @@ add_of_ports br0 1 +@@ -743,11 +900,11 @@ add_of_ports br0 1 add_of_ports br1 2 AT_CHECK([ovs-ofctl -O OpenFlow12 add-flow br1 'ip actions=write_actions(pop_vlan,output:2)']) AT_CHECK([ovs-ofctl -O OpenFlow12 add-flow br0 'ip actions=output:10']) @@ -115568,7 +115682,7 @@ index 7c2edeb9d4..89adfaaf84 100644 AT_CHECK([tail -1 stdout], [0], [Datapath actions: pop_vlan,2 ]) -@@ -1011,7 +1146,7 @@ OVS_VSWITCHD_START +@@ -1011,7 +1168,7 @@ OVS_VSWITCHD_START add_of_ports br0 1 10 11 AT_CHECK([ovs-ofctl -O OpenFlow12 add-group br0 'group_id=1234,type=ff,bucket=watch_port:10,output:10,bucket=watch_port:11,output:11']) AT_CHECK([ovs-ofctl -O OpenFlow12 add-flow br0 'ip actions=write_actions(group:1234)']) @@ -115577,7 +115691,7 @@ index 7c2edeb9d4..89adfaaf84 100644 AT_CHECK([tail -1 stdout], [0], [Datapath actions: 10 ]) -@@ -1142,7 +1277,7 @@ OVS_VSWITCHD_START +@@ -1142,7 +1299,7 @@ OVS_VSWITCHD_START add_of_ports br0 1 10 11 AT_CHECK([ovs-ofctl -O OpenFlow12 add-group br0 'group_id=1234,type=all,bucket=output:10,move:NXM_NX_REG1[[]]->NXM_OF_IP_SRC[[]],bucket=output:11']) AT_CHECK([ovs-ofctl -O OpenFlow12 add-flow br0 'ip actions=write_actions(load:0xffffffff->NXM_NX_REG1[[]],move:NXM_NX_REG1[[]]->NXM_NX_REG2[[]],group:1234)']) @@ -115586,7 +115700,7 @@ index 7c2edeb9d4..89adfaaf84 100644 AT_CHECK([tail -2 stdout], [0], [Megaflow: recirc_id=0,eth,ip,in_port=1,nw_src=192.168.0.1,nw_frag=no Datapath actions: set(ipv4(src=255.255.255.255)),10,set(ipv4(src=192.168.0.1)),11 -@@ -1288,18 +1423,18 @@ table=1 in_port=1 action=dec_ttl,output:3 +@@ -1288,18 +1445,18 @@ table=1 in_port=1 action=dec_ttl,output:3 AT_CHECK([ovs-ofctl add-flows br0 flows.txt]) AT_CHECK([ovs-appctl ofproto/trace ovs-dummy 'in_port(1),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=111,tos=0,ttl=2,frag=no)' -generate], [0], [stdout]) AT_CHECK([tail -4 stdout], [0], [ @@ -115609,7 +115723,7 @@ index 7c2edeb9d4..89adfaaf84 100644 Datapath actions: set(ipv6(hlimit=127)),2,set(ipv6(hlimit=126)),3,4 ]) -@@ -1311,7 +1446,7 @@ ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:05,dst=50: +@@ -1311,7 +1468,7 @@ ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:05,dst=50: OVS_APP_EXIT_AND_WAIT([ovs-ofctl]) AT_CHECK([cat ofctl_monitor.log], [0], [dnl NXT_PACKET_IN (xid=0x0): table_id=1 cookie=0x0 total_len=34 in_port=1 (via invalid_ttl) data_len=34 (unbuffered) @@ -115618,7 +115732,7 @@ index 7c2edeb9d4..89adfaaf84 100644 ]) OVS_VSWITCHD_STOP AT_CLEANUP -@@ -1409,7 +1544,7 @@ AT_CHECK([ovs-vsctl -- \ +@@ -1409,7 +1566,7 @@ AT_CHECK([ovs-vsctl -- \ --id=@q2 create Queue dscp=2], [0], [ignore]) AT_CHECK([ovs-appctl ofproto/trace ovs-dummy 'in_port(9),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=1.1.1.1,dst=2.2.2.2,proto=1,tos=0xff,ttl=128,frag=no),icmp(type=8,code=0)'], [0], [stdout]) AT_CHECK([tail -2 stdout], [0], @@ -115627,7 +115741,7 @@ index 7c2edeb9d4..89adfaaf84 100644 Datapath actions: dnl 100,dnl set(ipv4(tos=0x4/0xfc)),set(skb_priority(0x1)),1,dnl -@@ -1497,13 +1632,13 @@ OVS_WAIT_UNTIL([test `wc -l < ofctl_monitor.log` -ge 6]) +@@ -1497,13 +1654,13 @@ OVS_WAIT_UNTIL([test `wc -l < ofctl_monitor.log` -ge 6]) OVS_APP_EXIT_AND_WAIT([ovs-ofctl]) AT_CHECK([cat ofctl_monitor.log], [0], [dnl NXT_PACKET_IN (xid=0x0): cookie=0x0 total_len=54 in_port=1 (via no_match) data_len=54 (unbuffered) @@ -115644,7 +115758,7 @@ index 7c2edeb9d4..89adfaaf84 100644 ]) AT_CHECK([ovs-appctl time/warp 5000], [0], [ignore]) -@@ -1560,13 +1695,13 @@ OVS_WAIT_UNTIL([test `wc -l < ofctl_monitor.log` -ge 6]) +@@ -1560,13 +1717,13 @@ OVS_WAIT_UNTIL([test `wc -l < ofctl_monitor.log` -ge 6]) OVS_APP_EXIT_AND_WAIT([ovs-ofctl]) AT_CHECK([cat ofctl_monitor.log], [0], [dnl OFPT_PACKET_IN (xid=0x0): total_len=54 in_port=1 (via no_match) data_len=54 (unbuffered) @@ -115661,7 +115775,7 @@ index 7c2edeb9d4..89adfaaf84 100644 ]) AT_CHECK([ovs-appctl revalidator/purge], [0]) -@@ -1627,13 +1762,13 @@ OVS_APP_EXIT_AND_WAIT([ovs-ofctl]) +@@ -1627,13 +1784,13 @@ OVS_APP_EXIT_AND_WAIT([ovs-ofctl]) AT_CHECK([cat ofctl_monitor.log], [0], [dnl NXT_PACKET_IN (xid=0x0): table_id=1 cookie=0x0 total_len=118 in_port=1 (via action) data_len=118 (unbuffered) @@ -115678,7 +115792,7 @@ index 7c2edeb9d4..89adfaaf84 100644 ]) dnl Hit table 0, Miss all other tables, sent to controller -@@ -1647,13 +1782,13 @@ OVS_APP_EXIT_AND_WAIT([ovs-ofctl]) +@@ -1647,13 +1804,13 @@ OVS_APP_EXIT_AND_WAIT([ovs-ofctl]) AT_CHECK([cat ofctl_monitor.log], [0], [dnl NXT_PACKET_IN (xid=0x0): table_id=253 cookie=0x0 total_len=118 in_port=1 (via no_match) data_len=118 (unbuffered) @@ -115695,7 +115809,7 @@ index 7c2edeb9d4..89adfaaf84 100644 ]) AT_CHECK([ovs-appctl revalidator/purge], [0]) -@@ -1690,13 +1825,13 @@ OVS_APP_EXIT_AND_WAIT(ovs-ofctl) +@@ -1690,13 +1847,13 @@ OVS_APP_EXIT_AND_WAIT(ovs-ofctl) AT_CHECK([cat ofctl_monitor.log], [0], [dnl NXT_PACKET_IN (xid=0x0): table_id=2 cookie=0x0 total_len=118 in_port=1 (via action) data_len=118 (unbuffered) @@ -115712,7 +115826,7 @@ index 7c2edeb9d4..89adfaaf84 100644 ]) dnl Hit table 1, Miss all other tables, sent to controller -@@ -1710,13 +1845,13 @@ OVS_APP_EXIT_AND_WAIT([ovs-ofctl]) +@@ -1710,13 +1867,13 @@ OVS_APP_EXIT_AND_WAIT([ovs-ofctl]) AT_CHECK([cat ofctl_monitor.log], [0], [dnl NXT_PACKET_IN (xid=0x0): table_id=253 cookie=0x0 total_len=118 in_port=1 (via no_match) data_len=118 (unbuffered) @@ -115729,7 +115843,7 @@ index 7c2edeb9d4..89adfaaf84 100644 ]) AT_CHECK([ovs-appctl revalidator/purge], [0]) -@@ -1900,13 +2035,13 @@ OVS_APP_EXIT_AND_WAIT(ovs-ofctl) +@@ -1900,13 +2057,13 @@ OVS_APP_EXIT_AND_WAIT(ovs-ofctl) AT_CHECK([cat ofctl_monitor.log], [0], [dnl OFPT_PACKET_IN (xid=0x0): total_len=118 in_port=1 (via no_match) data_len=118 (unbuffered) @@ -115746,7 +115860,7 @@ index 7c2edeb9d4..89adfaaf84 100644 ]) dnl Singleton controller action. -@@ -1920,11 +2055,11 @@ OVS_APP_EXIT_AND_WAIT(ovs-ofctl) +@@ -1920,11 +2077,11 @@ OVS_APP_EXIT_AND_WAIT(ovs-ofctl) AT_CHECK([cat ofctl_monitor.log], [0], [dnl OFPT_PACKET_IN (xid=0x0): total_len=54 in_port=1 (via action) data_len=54 (unbuffered) @@ -115761,7 +115875,7 @@ index 7c2edeb9d4..89adfaaf84 100644 ]) dnl Modified controller action. -@@ -1938,13 +2073,13 @@ OVS_APP_EXIT_AND_WAIT(ovs-ofctl) +@@ -1938,13 +2095,13 @@ OVS_APP_EXIT_AND_WAIT(ovs-ofctl) AT_CHECK([cat ofctl_monitor.log], [0], [dnl OFPT_PACKET_IN (xid=0x0): total_len=58 in_port=1 (via action) data_len=58 (unbuffered) @@ -115778,7 +115892,7 @@ index 7c2edeb9d4..89adfaaf84 100644 ]) dnl Modified VLAN controller action. -@@ -1958,13 +2093,13 @@ OVS_APP_EXIT_AND_WAIT(ovs-ofctl) +@@ -1958,13 +2115,13 @@ OVS_APP_EXIT_AND_WAIT(ovs-ofctl) AT_CHECK([cat ofctl_monitor.log], [0], [dnl NXT_PACKET_IN (xid=0x0): cookie=0xa total_len=38 in_port=1 (via action) data_len=38 (unbuffered) @@ -115795,7 +115909,7 @@ index 7c2edeb9d4..89adfaaf84 100644 ]) dnl Checksum TCP. -@@ -1978,31 +2113,31 @@ OVS_APP_EXIT_AND_WAIT([ovs-ofctl]) +@@ -1978,31 +2135,31 @@ OVS_APP_EXIT_AND_WAIT([ovs-ofctl]) AT_CHECK([cat ofctl_monitor.log], [0], [dnl NXT_PACKET_IN (xid=0x0): cookie=0x1 total_len=54 in_port=1 (via action) data_len=54 (unbuffered) @@ -115836,7 +115950,7 @@ index 7c2edeb9d4..89adfaaf84 100644 ]) dnl Checksum UDP. -@@ -2016,31 +2151,31 @@ OVS_APP_EXIT_AND_WAIT([ovs-ofctl]) +@@ -2016,31 +2173,31 @@ OVS_APP_EXIT_AND_WAIT([ovs-ofctl]) AT_CHECK([cat ofctl_monitor.log], [0], [dnl NXT_PACKET_IN (xid=0x0): cookie=0x1 total_len=60 in_port=1 (via action) data_len=60 (unbuffered) @@ -115877,7 +115991,7 @@ index 7c2edeb9d4..89adfaaf84 100644 ]) dnl Modified ARP controller action. -@@ -2087,31 +2222,31 @@ OVS_WAIT_UNTIL([test `wc -l < ofctl_monitor.log` -ge 18]) +@@ -2087,31 +2244,31 @@ OVS_WAIT_UNTIL([test `wc -l < ofctl_monitor.log` -ge 18]) OVS_APP_EXIT_AND_WAIT([ovs-ofctl]) AT_CHECK([cat ofctl_monitor.log], [0], [dnl NXT_PACKET_IN (xid=0x0): cookie=0x1 total_len=98 in_port=1 (via action) data_len=98 (unbuffered) @@ -115918,7 +116032,7 @@ index 7c2edeb9d4..89adfaaf84 100644 ]) AT_CHECK([ovs-ofctl dump-flows br0 | ofctl_strip | sort], [0], [dnl -@@ -2151,13 +2286,13 @@ OVS_APP_EXIT_AND_WAIT(ovs-ofctl) +@@ -2151,13 +2308,13 @@ OVS_APP_EXIT_AND_WAIT(ovs-ofctl) AT_CHECK([cat ofctl_monitor.log], [0], [dnl OFPT_PACKET_IN (xid=0x0): total_len=118 in_port=1 (via action) data_len=118 (unbuffered) @@ -115935,7 +116049,7 @@ index 7c2edeb9d4..89adfaaf84 100644 ]) OVS_VSWITCHD_STOP -@@ -2325,13 +2460,13 @@ OVS_APP_EXIT_AND_WAIT(ovs-ofctl) +@@ -2325,13 +2482,13 @@ OVS_APP_EXIT_AND_WAIT(ovs-ofctl) AT_CHECK([cat ofctl_monitor.log], [0], [dnl NXT_PACKET_IN (xid=0x0): cookie=0xa total_len=34 in_port=1 (via action) data_len=34 (unbuffered) @@ -115952,7 +116066,7 @@ index 7c2edeb9d4..89adfaaf84 100644 ]) dnl Modified MPLS controller action. -@@ -2539,13 +2674,13 @@ OVS_APP_EXIT_AND_WAIT(ovs-ofctl) +@@ -2539,13 +2696,13 @@ OVS_APP_EXIT_AND_WAIT(ovs-ofctl) AT_CHECK([cat ofctl_monitor.log], [0], [dnl NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=58 in_port=1 (via action) data_len=58 (unbuffered) @@ -115969,7 +116083,7 @@ index 7c2edeb9d4..89adfaaf84 100644 ]) AT_CHECK([ovs-appctl time/warp 5000], [0], [ignore]) -@@ -2565,13 +2700,13 @@ OVS_APP_EXIT_AND_WAIT(ovs-ofctl) +@@ -2565,13 +2722,13 @@ OVS_APP_EXIT_AND_WAIT(ovs-ofctl) AT_CHECK([strip_metadata < ofctl_monitor.log], [0], [dnl NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=58 in_port=1 (via action) data_len=58 (unbuffered) @@ -115986,7 +116100,7 @@ index 7c2edeb9d4..89adfaaf84 100644 ]) AT_CHECK([ovs-appctl time/warp 5000], [0], [ignore]) -@@ -2591,13 +2726,13 @@ OVS_APP_EXIT_AND_WAIT(ovs-ofctl) +@@ -2591,13 +2748,13 @@ OVS_APP_EXIT_AND_WAIT(ovs-ofctl) AT_CHECK([strip_metadata < ofctl_monitor.log], [0], [dnl NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=58 in_port=1 (via action) data_len=58 (unbuffered) @@ -116003,7 +116117,7 @@ index 7c2edeb9d4..89adfaaf84 100644 ]) AT_CHECK([ovs-appctl time/warp 5000], [0], [ignore]) -@@ -2617,13 +2752,13 @@ OVS_APP_EXIT_AND_WAIT(ovs-ofctl) +@@ -2617,13 +2774,13 @@ OVS_APP_EXIT_AND_WAIT(ovs-ofctl) AT_CHECK([strip_metadata < ofctl_monitor.log], [0], [dnl NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=58 in_port=1 (via action) data_len=58 (unbuffered) @@ -116020,7 +116134,7 @@ index 7c2edeb9d4..89adfaaf84 100644 ]) AT_CHECK([ovs-appctl time/warp 5000], [0], [ignore]) -@@ -2643,13 +2778,13 @@ OVS_APP_EXIT_AND_WAIT(ovs-ofctl) +@@ -2643,13 +2800,13 @@ OVS_APP_EXIT_AND_WAIT(ovs-ofctl) AT_CHECK([strip_metadata < ofctl_monitor.log], [0], [dnl NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=58 in_port=1 (via action) data_len=58 (unbuffered) @@ -116037,7 +116151,7 @@ index 7c2edeb9d4..89adfaaf84 100644 ]) AT_CHECK([ovs-appctl time/warp 5000], [0], [ignore]) -@@ -2669,13 +2804,13 @@ OVS_APP_EXIT_AND_WAIT(ovs-ofctl) +@@ -2669,13 +2826,13 @@ OVS_APP_EXIT_AND_WAIT(ovs-ofctl) AT_CHECK([strip_metadata < ofctl_monitor.log], [0], [dnl NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=58 in_port=1 (via action) data_len=58 (unbuffered) @@ -116054,7 +116168,7 @@ index 7c2edeb9d4..89adfaaf84 100644 ]) AT_CHECK([ovs-appctl time/warp 5000], [0], [ignore]) -@@ -2695,13 +2830,13 @@ OVS_APP_EXIT_AND_WAIT(ovs-ofctl) +@@ -2695,13 +2852,13 @@ OVS_APP_EXIT_AND_WAIT(ovs-ofctl) AT_CHECK([strip_metadata < ofctl_monitor.log], [0], [dnl NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=58 in_port=1 (via action) data_len=58 (unbuffered) @@ -116071,7 +116185,7 @@ index 7c2edeb9d4..89adfaaf84 100644 ]) AT_CHECK([ovs-appctl time/warp 5000], [0], [ignore]) -@@ -2721,13 +2856,13 @@ OVS_APP_EXIT_AND_WAIT(ovs-ofctl) +@@ -2721,13 +2878,13 @@ OVS_APP_EXIT_AND_WAIT(ovs-ofctl) AT_CHECK([strip_metadata < ofctl_monitor.log], [0], [dnl NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=58 in_port=1 (via action) data_len=58 (unbuffered) @@ -116088,7 +116202,7 @@ index 7c2edeb9d4..89adfaaf84 100644 ]) AT_CHECK([ovs-appctl time/warp 5000], [0], [ignore]) -@@ -2771,13 +2906,13 @@ OVS_APP_EXIT_AND_WAIT(ovs-ofctl) +@@ -2771,13 +2928,13 @@ OVS_APP_EXIT_AND_WAIT(ovs-ofctl) AT_CHECK([strip_metadata < ofctl_monitor.log], [0], [dnl NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=58 in_port=1 (via action) data_len=58 (unbuffered) @@ -116105,7 +116219,7 @@ index 7c2edeb9d4..89adfaaf84 100644 ]) AT_CHECK([ovs-appctl time/warp 5000], [0], [ignore]) -@@ -2797,13 +2932,13 @@ OVS_APP_EXIT_AND_WAIT(ovs-ofctl) +@@ -2797,13 +2954,13 @@ OVS_APP_EXIT_AND_WAIT(ovs-ofctl) AT_CHECK([strip_metadata < ofctl_monitor.log], [0], [dnl NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=58 in_port=1 (via action) data_len=58 (unbuffered) @@ -116122,7 +116236,7 @@ index 7c2edeb9d4..89adfaaf84 100644 ]) AT_CHECK([ovs-appctl time/warp 5000], [0], [ignore]) -@@ -2823,13 +2958,13 @@ OVS_APP_EXIT_AND_WAIT(ovs-ofctl) +@@ -2823,13 +2980,13 @@ OVS_APP_EXIT_AND_WAIT(ovs-ofctl) AT_CHECK([strip_metadata < ofctl_monitor.log], [0], [dnl NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=58 in_port=1 (via action) data_len=58 (unbuffered) @@ -116139,7 +116253,7 @@ index 7c2edeb9d4..89adfaaf84 100644 ]) AT_CHECK([ovs-appctl time/warp 5000], [0], [ignore]) -@@ -2931,13 +3066,13 @@ OVS_APP_EXIT_AND_WAIT(ovs-ofctl) +@@ -2931,13 +3088,13 @@ OVS_APP_EXIT_AND_WAIT(ovs-ofctl) AT_CHECK([cat ofctl_monitor.log], [0], [dnl NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=58 in_port=1 (via action) data_len=58 (unbuffered) @@ -116156,7 +116270,7 @@ index 7c2edeb9d4..89adfaaf84 100644 ]) AT_CHECK([ovs-appctl time/warp 5000], [0], [ignore]) -@@ -2959,13 +3094,13 @@ OVS_APP_EXIT_AND_WAIT(ovs-ofctl) +@@ -2959,13 +3116,13 @@ OVS_APP_EXIT_AND_WAIT(ovs-ofctl) AT_CHECK([strip_metadata < ofctl_monitor.log], [0], [dnl NXT_PACKET_IN (xid=0x0): cookie=0xe total_len=58 in_port=1 (via action) data_len=58 (unbuffered) @@ -116173,7 +116287,7 @@ index 7c2edeb9d4..89adfaaf84 100644 ]) AT_CHECK([ovs-appctl time/warp 5000], [0], [ignore]) -@@ -2986,13 +3121,13 @@ OVS_APP_EXIT_AND_WAIT(ovs-ofctl) +@@ -2986,13 +3143,13 @@ OVS_APP_EXIT_AND_WAIT(ovs-ofctl) AT_CHECK([strip_metadata < ofctl_monitor.log], [0], [dnl NXT_PACKET_IN (xid=0x0): cookie=0xe total_len=58 in_port=1 (via action) data_len=58 (unbuffered) @@ -116190,7 +116304,7 @@ index 7c2edeb9d4..89adfaaf84 100644 ]) AT_CHECK([ovs-appctl time/warp 5000], [0], [ignore]) -@@ -3314,13 +3449,13 @@ OVS_APP_EXIT_AND_WAIT(ovs-ofctl) +@@ -3314,13 +3471,13 @@ OVS_APP_EXIT_AND_WAIT(ovs-ofctl) AT_CHECK([strip_metadata < ofctl_monitor.log], [0], [dnl OFPT_PACKET_IN (OF1.2) (xid=0x0): table_id=1 total_len=58 in_port=1 (via action) data_len=58 (unbuffered) @@ -116207,7 +116321,7 @@ index 7c2edeb9d4..89adfaaf84 100644 ]) AT_CHECK([ovs-appctl revalidator/purge], [0]) -@@ -3363,13 +3498,13 @@ OVS_APP_EXIT_AND_WAIT(ovs-ofctl) +@@ -3363,13 +3520,13 @@ OVS_APP_EXIT_AND_WAIT(ovs-ofctl) AT_CHECK([strip_metadata < ofctl_monitor.log], [0], [dnl OFPT_PACKET_IN (OF1.2) (xid=0x0): total_len=58 in_port=1 (via action) data_len=58 (unbuffered) @@ -116224,7 +116338,7 @@ index 7c2edeb9d4..89adfaaf84 100644 ]) AT_CHECK([ovs-appctl revalidator/purge], [0]) -@@ -3402,13 +3537,13 @@ OVS_APP_EXIT_AND_WAIT([ovs-ofctl]) +@@ -3402,13 +3559,13 @@ OVS_APP_EXIT_AND_WAIT([ovs-ofctl]) AT_CHECK([cat ofctl_monitor.log], [0], [dnl OFPT_PACKET_IN (xid=0x0): total_len=54 in_port=1 (via action) data_len=54 (unbuffered) @@ -116241,7 +116355,7 @@ index 7c2edeb9d4..89adfaaf84 100644 ]) AT_CHECK([ovs-appctl revalidator/purge], [0]) -@@ -3444,13 +3579,13 @@ AT_CHECK([ovs-appctl time/warp 5000], [0], [ignore]) +@@ -3444,13 +3601,13 @@ AT_CHECK([ovs-appctl time/warp 5000], [0], [ignore]) AT_CHECK([cat ofctl_monitor.log], [0], [dnl OFPT_PACKET_IN (OF1.3) (xid=0x0): cookie=0x0 total_len=54 in_port=1 (via no_match) data_len=54 (unbuffered) @@ -116258,7 +116372,7 @@ index 7c2edeb9d4..89adfaaf84 100644 ]) AT_CHECK([ovs-appctl revalidator/purge], [0]) -@@ -3516,13 +3651,13 @@ send: OFPT_SET_ASYNC (OF1.3) (xid=0x2): +@@ -3516,13 +3673,13 @@ send: OFPT_SET_ASYNC (OF1.3) (xid=0x2): REQUESTFORWARD: (off) dnl OFPT_PACKET_IN (OF1.3) (xid=0x0): cookie=0x0 total_len=54 in_port=1 (via no_match) data_len=54 (unbuffered) @@ -116275,7 +116389,7 @@ index 7c2edeb9d4..89adfaaf84 100644 ]) AT_CHECK([ovs-appctl time/warp 5000], [0], [ignore]) -@@ -3558,13 +3693,13 @@ OVS_APP_EXIT_AND_WAIT([ovs-ofctl]) +@@ -3558,13 +3715,13 @@ OVS_APP_EXIT_AND_WAIT([ovs-ofctl]) AT_CHECK([ovs-appctl revalidator/purge], [0]) AT_CHECK([cat ofctl_monitor.log], [0], [dnl OFPT_PACKET_IN (OF1.4) (xid=0x0): cookie=0x0 total_len=54 in_port=1 (via no_match) data_len=54 (unbuffered) @@ -116292,7 +116406,7 @@ index 7c2edeb9d4..89adfaaf84 100644 ]) AT_CHECK([ovs-appctl time/warp 5000], [0], [ignore]) -@@ -3607,34 +3742,34 @@ AT_CHECK([ovs-appctl time/warp 5000], [0], [ignore]) +@@ -3607,34 +3764,34 @@ AT_CHECK([ovs-appctl time/warp 5000], [0], [ignore]) AT_CHECK([cat ofctl_monitor.log], [0], [dnl OFPT_PACKET_IN (OF1.3) (xid=0x0): table_id=1 cookie=0x0 total_len=54 in_port=1 (via action) data_len=54 (unbuffered) @@ -116337,7 +116451,7 @@ index 7c2edeb9d4..89adfaaf84 100644 ]) AT_CHECK([ovs-appctl time/warp 5000], [0], [ignore]) -@@ -3679,34 +3814,34 @@ AT_CHECK([ovs-appctl time/warp 5000], [0], [ignore]) +@@ -3679,34 +3836,34 @@ AT_CHECK([ovs-appctl time/warp 5000], [0], [ignore]) AT_CHECK([cat ofctl_monitor.log], [0], [dnl OFPT_PACKET_IN (OF1.4) (xid=0x0): table_id=1 cookie=0x0 total_len=54 in_port=1 (via action) data_len=54 (unbuffered) @@ -116382,7 +116496,7 @@ index 7c2edeb9d4..89adfaaf84 100644 ]) AT_CHECK([ovs-appctl time/warp 5000], [0], [ignore]) -@@ -3751,10 +3886,10 @@ OVS_APP_EXIT_AND_WAIT(ovs-ofctl) +@@ -3751,10 +3908,10 @@ OVS_APP_EXIT_AND_WAIT(ovs-ofctl) AT_CHECK([cat ofctl_monitor.log], [0], [dnl OFPT_PACKET_IN (OF1.3) (xid=0x0): table_id=43 cookie=0x0 total_len=98 metadata=0x67871d4d000000,in_port=1 (via action) data_len=98 (unbuffered) @@ -116395,7 +116509,7 @@ index 7c2edeb9d4..89adfaaf84 100644 ]) OVS_VSWITCHD_STOP -@@ -5007,7 +5142,7 @@ ovs-vsctl \ +@@ -5007,7 +5164,7 @@ ovs-vsctl \ AT_CHECK([ovs-ofctl add-flow br0 action=output:1]) # "in_port" defaults to OFPP_NONE if it's not specified. @@ -116404,7 +116518,7 @@ index 7c2edeb9d4..89adfaaf84 100644 AT_CHECK([ovs-appctl ofproto/trace br0 "$flow"], [0], [stdout]) AT_CHECK_UNQUOTED([tail -1 stdout], [0], [Datapath actions: 1,2 -@@ -5102,7 +5237,7 @@ AT_CHECK([ovs-ofctl add-flows br0 flows.txt]) +@@ -5102,7 +5259,7 @@ AT_CHECK([ovs-ofctl add-flows br0 flows.txt]) flow="in_port(1),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], @@ -116413,7 +116527,7 @@ index 7c2edeb9d4..89adfaaf84 100644 ]) 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)" -@@ -5141,7 +5276,7 @@ flow="in_port(2),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x080 +@@ -5141,7 +5298,7 @@ flow="in_port(2),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x080 AT_CHECK([ovs-appctl ofproto/trace ovs-dummy "$flow"], [0], [stdout]) actual=`tail -1 stdout | sed 's/Datapath actions: //'` @@ -116422,7 +116536,7 @@ index 7c2edeb9d4..89adfaaf84 100644 AT_CHECK([ovs-dpctl normalize-actions "$flow" "$expected"], [0], [stdout]) mv stdout expout AT_CHECK([ovs-dpctl normalize-actions "$flow" "$actual"], [0], [expout]) -@@ -5317,7 +5452,7 @@ ovs-vsctl \ +@@ -5317,7 +5474,7 @@ ovs-vsctl \ AT_CHECK([ovs-ofctl add-flow br0 action=output:1]) # "in_port" defaults to OFPP_NONE if it's not specified. @@ -116431,7 +116545,7 @@ index 7c2edeb9d4..89adfaaf84 100644 AT_CHECK([ovs-appctl ofproto/trace br0 "$flow"], [0], [stdout]) AT_CHECK_UNQUOTED([tail -1 stdout], [0], [Datapath actions: 1,trunc(100),2 -@@ -5409,7 +5544,7 @@ AT_CHECK([ovs-ofctl add-flows br0 flows.txt]) +@@ -5409,7 +5566,7 @@ AT_CHECK([ovs-ofctl add-flows br0 flows.txt]) flow="in_port(1),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], @@ -116440,7 +116554,7 @@ index 7c2edeb9d4..89adfaaf84 100644 ]) 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)" -@@ -5464,7 +5599,7 @@ ovs-vsctl \ +@@ -5464,7 +5621,7 @@ ovs-vsctl \ flow="in_port=1" AT_CHECK([ovs-appctl ofproto/trace br0 "$flow"], [0], [stdout]) @@ -116449,7 +116563,7 @@ index 7c2edeb9d4..89adfaaf84 100644 OVS_VSWITCHD_STOP AT_CLEANUP -@@ -5512,11 +5647,11 @@ AT_CHECK([ovs-ofctl add-flows br0 flows.txt]) +@@ -5512,11 +5669,11 @@ AT_CHECK([ovs-ofctl add-flows br0 flows.txt]) flow="in_port(1),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" -generate], [0], [stdout]) @@ -116463,7 +116577,7 @@ index 7c2edeb9d4..89adfaaf84 100644 ]) OVS_VSWITCHD_STOP -@@ -5573,7 +5708,70 @@ check_flows () { +@@ -5573,7 +5730,70 @@ check_flows () { echo "n_packets=$n" test "$n" = 1 } @@ -116535,7 +116649,7 @@ index 7c2edeb9d4..89adfaaf84 100644 OVS_VSWITCHD_STOP AT_CLEANUP -@@ -5868,6 +6066,57 @@ AT_CHECK([test 1 = `$PYTHON3 "$top_srcdir/utilities/ovs-pcap.in" p2-tx.pcap | wc +@@ -5868,6 +6088,57 @@ AT_CHECK([test 1 = `$PYTHON3 "$top_srcdir/utilities/ovs-pcap.in" p2-tx.pcap | wc OVS_VSWITCHD_STOP AT_CLEANUP @@ -116593,7 +116707,7 @@ index 7c2edeb9d4..89adfaaf84 100644 AT_SETUP([ofproto-dpif - continuation with patch port]) AT_KEYWORDS([continuations pause resume]) OVS_VSWITCHD_START( -@@ -6202,6 +6451,20 @@ AT_CHECK([tail -2 stderr], [0], [dnl +@@ -6202,6 +6473,20 @@ AT_CHECK([tail -2 stderr], [0], [dnl ovs-appctl: ovs-vswitchd: server returned an error ]) @@ -116614,7 +116728,7 @@ index 7c2edeb9d4..89adfaaf84 100644 OVS_VSWITCHD_STOP AT_CLEANUP -@@ -7004,6 +7267,29 @@ AT_CHECK([ovs-appctl coverage/read-counter mac_learning_static_none_move], [0], +@@ -7004,6 +7289,29 @@ AT_CHECK([ovs-appctl coverage/read-counter mac_learning_static_none_move], [0], OVS_VSWITCHD_STOP AT_CLEANUP @@ -116644,7 +116758,7 @@ index 7c2edeb9d4..89adfaaf84 100644 AT_SETUP([ofproto-dpif - basic truncate action]) OVS_VSWITCHD_START add_of_ports br0 1 2 3 4 5 -@@ -7031,7 +7317,7 @@ dnl An 170 byte packet +@@ -7031,7 +7339,7 @@ dnl An 170 byte packet AT_CHECK([ovs-appctl netdev-dummy/receive p1 '000c29c8a0a4005056c0000808004500009cb4a6000040019003c0a8da01c0a8da640800cb5fa762000556f431ad0009388e08090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f']) AT_CHECK([ovs-ofctl parse-pcap p1.pcap], [0], [dnl @@ -116653,7 +116767,7 @@ index 7c2edeb9d4..89adfaaf84 100644 ]) AT_CHECK([ovs-appctl revalidator/purge], [0]) -@@ -7294,12 +7580,14 @@ dummy@ovs-dummy: hit:0 missed:0 +@@ -7294,12 +7602,14 @@ dummy@ovs-dummy: hit:0 missed:0 vm1 5/3: (dummy: ifindex=2011) ]) @@ -116671,7 +116785,7 @@ index 7c2edeb9d4..89adfaaf84 100644 dnl Prime ARP Cache for 1.1.2.92 AT_CHECK([ovs-appctl netdev-dummy/receive p0 'recirc_id(0),in_port(1),eth(src=f8:bc:12:44:34:b6,dst=ff:ff:ff:ff:ff:ff),eth_type(0x0806),arp(sip=1.1.2.92,tip=1.1.2.88,op=2,sha=f8:bc:12:44:34:b6,tha=00:00:00:00:00:00)']) -@@ -7310,10 +7598,13 @@ ovs-vsctl \ +@@ -7310,10 +7620,13 @@ ovs-vsctl \ --id=@sf create sflow targets=\"127.0.0.1:$SFLOW_PORT\" agent=127.0.0.1 \ header=128 sampling=1 polling=0 @@ -116687,7 +116801,7 @@ index 7c2edeb9d4..89adfaaf84 100644 ]) dnl add rule for int-br to force packet onto tunnel. There is no ifindex -@@ -7600,13 +7891,28 @@ dnl configure bridge IPFIX and ensure that sample action generation works at the +@@ -7600,13 +7913,28 @@ dnl configure bridge IPFIX and ensure that sample action generation works at the dnl datapath level. AT_SETUP([ofproto-dpif - Bridge IPFIX sanity check]) OVS_VSWITCHD_START @@ -116717,7 +116831,7 @@ index 7c2edeb9d4..89adfaaf84 100644 dnl Send some packets that should be sampled. for i in `seq 1 3`; do AT_CHECK([ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800)']) -@@ -8666,7 +8972,7 @@ recirc_id(0),in_port(100),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(src=192.1 +@@ -8666,7 +8994,7 @@ recirc_id(0),in_port(100),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(src=192.1 ]) AT_CHECK([grep -e '|ofproto_dpif_xlate|WARN|' ovs-vswitchd.log | sed "s/^.*|WARN|//"], [0], [dnl @@ -116726,7 +116840,7 @@ index 7c2edeb9d4..89adfaaf84 100644 ]) OVS_VSWITCHD_STOP(["/stack underflow/d"]) -@@ -8717,6 +9023,40 @@ AT_CHECK([tail -1 stdout], [0], +@@ -8717,6 +9045,40 @@ AT_CHECK([tail -1 stdout], [0], OVS_VSWITCHD_STOP AT_CLEANUP @@ -116767,7 +116881,7 @@ index 7c2edeb9d4..89adfaaf84 100644 dnl ---------------------------------------------------------------------- AT_BANNER([ofproto-dpif -- megaflows]) -@@ -9855,7 +10195,7 @@ OVS_APP_EXIT_AND_WAIT([ovs-ofctl]) +@@ -9855,7 +10217,7 @@ OVS_APP_EXIT_AND_WAIT([ovs-ofctl]) AT_CHECK([cat ofctl_monitor.log], [0], [dnl NXT_PACKET_IN (xid=0x0): cookie=0x0 total_len=86 in_port=1 (via no_match) data_len=86 (unbuffered) @@ -116776,7 +116890,7 @@ index 7c2edeb9d4..89adfaaf84 100644 ]) OVS_VSWITCHD_STOP -@@ -9906,7 +10246,7 @@ OVS_APP_EXIT_AND_WAIT([ovs-ofctl]) +@@ -9906,7 +10268,7 @@ OVS_APP_EXIT_AND_WAIT([ovs-ofctl]) AT_CHECK([cat ofctl_monitor.log], [0], [dnl NXT_PACKET_IN (xid=0x0): cookie=0x0 total_len=86 in_port=1 (via action) data_len=86 (unbuffered) @@ -116785,7 +116899,7 @@ index 7c2edeb9d4..89adfaaf84 100644 ]) OVS_VSWITCHD_STOP -@@ -10166,10 +10506,10 @@ OVS_WAIT_UNTIL([ovs-appctl -t ovs-ofctl exit]) +@@ -10166,10 +10528,10 @@ OVS_WAIT_UNTIL([ovs-appctl -t ovs-ofctl exit]) dnl Check this output. We only see the latter two packets, not the first. AT_CHECK([cat ofctl_monitor.log], [0], [dnl NXT_PACKET_IN (xid=0x0): table_id=6 cookie=0x0 total_len=106 reg0=0x1,reg1=0x4d2,reg2=0x1,reg3=0x1,reg4=0x1,in_port=1 (via action) data_len=106 (unbuffered) @@ -116798,7 +116912,7 @@ index 7c2edeb9d4..89adfaaf84 100644 ]) AT_CHECK([ovs-ofctl monitor br0 65534 invalid_ttl -P nxt_packet_in --detach --no-chdir --pidfile 2> ofctl_monitor.log]) -@@ -10187,10 +10527,10 @@ OVS_WAIT_UNTIL([ovs-appctl -t ovs-ofctl exit]) +@@ -10187,10 +10549,10 @@ OVS_WAIT_UNTIL([ovs-appctl -t ovs-ofctl exit]) dnl Check this output. We should see both packets AT_CHECK([cat ofctl_monitor.log], [0], [dnl NXT_PACKET_IN (xid=0x0): table_id=6 cookie=0x0 total_len=106 reg0=0x1,reg1=0x4d2,reg2=0x1,reg3=0x1,reg4=0x1,in_port=1 (via action) data_len=106 (unbuffered) @@ -116811,7 +116925,7 @@ index 7c2edeb9d4..89adfaaf84 100644 ]) OVS_VSWITCHD_STOP -@@ -10239,10 +10579,10 @@ dnl Note that the first packet doesn't have the ct_state bits set. This +@@ -10239,10 +10601,10 @@ dnl Note that the first packet doesn't have the ct_state bits set. This dnl happens because the ct_state field is available only after recirc. AT_CHECK([cat ofctl_monitor.log], [0], [dnl NXT_PACKET_IN (xid=0x0): cookie=0x0 total_len=106 in_port=1 (via action) data_len=106 (unbuffered) @@ -116824,7 +116938,7 @@ index 7c2edeb9d4..89adfaaf84 100644 ]) AT_CHECK([ovs-ofctl monitor br0 65534 invalid_ttl -P nxt_packet_in --detach --no-chdir --pidfile 2> ofctl_monitor.log]) -@@ -10261,10 +10601,10 @@ dnl Note that the first packet doesn't have the ct_state bits set. This +@@ -10261,10 +10623,10 @@ dnl Note that the first packet doesn't have the ct_state bits set. This dnl happens because the ct_state field is available only after recirc. AT_CHECK([cat ofctl_monitor.log], [0], [dnl NXT_PACKET_IN (xid=0x0): cookie=0x0 total_len=106 in_port=1 (via action) data_len=106 (unbuffered) @@ -116837,7 +116951,7 @@ index 7c2edeb9d4..89adfaaf84 100644 ]) dnl -@@ -10320,9 +10660,9 @@ dnl Note that the first packet doesn't have the ct_state bits set. This +@@ -10320,9 +10682,9 @@ dnl Note that the first packet doesn't have the ct_state bits set. This dnl happens because the ct_state field is available only after recirc. AT_CHECK([cat ofctl_monitor.log], [0], [dnl NXT_PACKET_IN (xid=0x0): cookie=0x0 total_len=126 in_port=1 (via action) data_len=126 (unbuffered) @@ -116849,7 +116963,7 @@ index 7c2edeb9d4..89adfaaf84 100644 ]) OVS_VSWITCHD_STOP -@@ -10433,7 +10773,7 @@ OVS_WAIT_UNTIL([ovs-appctl -t ovs-ofctl exit]) +@@ -10433,7 +10795,7 @@ OVS_WAIT_UNTIL([ovs-appctl -t ovs-ofctl exit]) dnl Check this output. Only one reply must be there AT_CHECK([cat ofctl_monitor.log], [0], [dnl NXT_PACKET_IN (xid=0x0): table_id=1 cookie=0x0 total_len=106 ct_state=est|rpl|trk,ct_nw_src=10.1.1.1,ct_nw_dst=10.1.1.2,ct_nw_proto=17,ct_tp_src=1,ct_tp_dst=2,ip,in_port=2 (via action) data_len=106 (unbuffered) @@ -116858,7 +116972,7 @@ index 7c2edeb9d4..89adfaaf84 100644 dnl OFPT_ECHO_REQUEST (xid=0x0): 0 bytes of payload ]) -@@ -10467,7 +10807,7 @@ OVS_WAIT_UNTIL([ovs-appctl -t ovs-ofctl exit]) +@@ -10467,7 +10829,7 @@ OVS_WAIT_UNTIL([ovs-appctl -t ovs-ofctl exit]) AT_CHECK([cat ofctl_monitor.log], [0], [dnl NXT_PACKET_IN (xid=0x0): cookie=0x0 total_len=86 ct_state=inv|trk,ipv6,in_port=2 (via action) data_len=86 (unbuffered) @@ -116867,7 +116981,7 @@ index 7c2edeb9d4..89adfaaf84 100644 ]) OVS_VSWITCHD_STOP -@@ -10523,16 +10863,16 @@ OVS_WAIT_UNTIL([ovs-appctl -t ovs-ofctl exit]) +@@ -10523,16 +10885,16 @@ OVS_WAIT_UNTIL([ovs-appctl -t ovs-ofctl exit]) dnl Check this output. We only see the latter two packets (for each zone), not the first. AT_CHECK([cat ofctl_monitor.log], [0], [dnl NXT_PACKET_IN (xid=0x0): cookie=0x0 total_len=106 in_port=1 (via action) data_len=106 (unbuffered) @@ -116888,7 +117002,7 @@ index 7c2edeb9d4..89adfaaf84 100644 ]) OVS_VSWITCHD_STOP -@@ -10579,10 +10919,10 @@ OVS_WAIT_UNTIL([ovs-appctl -t ovs-ofctl exit]) +@@ -10579,10 +10941,10 @@ OVS_WAIT_UNTIL([ovs-appctl -t ovs-ofctl exit]) dnl Check this output. We only see the latter two packets, not the first. AT_CHECK([cat ofctl_monitor.log], [0], [dnl NXT_PACKET_IN (xid=0x0): table_id=1 cookie=0x0 total_len=106 in_port=1 (via action) data_len=106 (unbuffered) @@ -116901,7 +117015,7 @@ index 7c2edeb9d4..89adfaaf84 100644 ]) OVS_VSWITCHD_STOP -@@ -10629,10 +10969,10 @@ OVS_WAIT_UNTIL([ovs-appctl -t ovs-ofctl exit]) +@@ -10629,10 +10991,10 @@ OVS_WAIT_UNTIL([ovs-appctl -t ovs-ofctl exit]) dnl Check this output. We only see the first and the last packet AT_CHECK([cat ofctl_monitor.log], [0], [dnl NXT_PACKET_IN (xid=0x0): table_id=1 cookie=0x0 total_len=47 ct_state=new|trk,ct_nw_src=172.16.0.1,ct_nw_dst=172.16.0.2,ct_nw_proto=17,ct_tp_src=41614,ct_tp_dst=5555,ip,in_port=1 (via action) data_len=47 (unbuffered) @@ -116914,7 +117028,7 @@ index 7c2edeb9d4..89adfaaf84 100644 ]) OVS_VSWITCHD_STOP -@@ -10681,19 +11021,19 @@ OVS_WAIT_UNTIL([ovs-appctl -t ovs-ofctl exit]) +@@ -10681,19 +11043,19 @@ OVS_WAIT_UNTIL([ovs-appctl -t ovs-ofctl exit]) dnl Check this output. AT_CHECK([cat ofctl_monitor.log], [0], [dnl NXT_PACKET_IN (xid=0x0): cookie=0x0 total_len=106 in_port=1 (via action) data_len=106 (unbuffered) @@ -116939,7 +117053,7 @@ index 7c2edeb9d4..89adfaaf84 100644 ]) OVS_VSWITCHD_STOP -@@ -10738,10 +11078,10 @@ OVS_WAIT_UNTIL([ovs-appctl -t ovs-ofctl exit]) +@@ -10738,10 +11100,10 @@ OVS_WAIT_UNTIL([ovs-appctl -t ovs-ofctl exit]) dnl Check this output. AT_CHECK([cat ofctl_monitor.log], [0], [dnl NXT_PACKET_IN (xid=0x0): table_id=1 cookie=0x0 total_len=106 ct_state=est|rpl|trk,ct_label=0x1,ct_nw_src=10.1.1.1,ct_nw_dst=10.1.1.2,ct_nw_proto=17,ct_tp_src=1,ct_tp_dst=2,ip,in_port=2 (via action) data_len=106 (unbuffered) @@ -116952,7 +117066,7 @@ index 7c2edeb9d4..89adfaaf84 100644 ]) OVS_VSWITCHD_STOP -@@ -11152,16 +11492,16 @@ dnl Note that the first packet doesn't have the ct_state bits set. This +@@ -11152,16 +11514,16 @@ dnl Note that the first packet doesn't have the ct_state bits set. This dnl happens because the ct_state field is available only after recirc. AT_CHECK([cat ofctl_monitor.log], [0], [dnl NXT_PACKET_IN (xid=0x0): cookie=0x0 total_len=106 in_port=1 (via action) data_len=106 (unbuffered) @@ -116973,7 +117087,7 @@ index 7c2edeb9d4..89adfaaf84 100644 ]) dnl The next test verifies that ct_clear at the datapath only gets executed -@@ -11235,13 +11575,13 @@ OVS_WAIT_UNTIL([ovs-appctl -t ovs-ofctl exit]) +@@ -11235,13 +11597,13 @@ OVS_WAIT_UNTIL([ovs-appctl -t ovs-ofctl exit]) dnl Check this output. AT_CHECK([cat ofctl_monitor.log], [0], [dnl NXT_PACKET_IN (xid=0x0): table_id=1 cookie=0x0 total_len=106 ct_state=est|rpl|trk,ct_nw_src=10.1.2.100,ct_nw_dst=10.1.2.200,ct_nw_proto=17,ct_tp_src=6,ct_tp_dst=6,ip,in_port=2 (via action) data_len=106 (unbuffered) @@ -116990,7 +117104,7 @@ index 7c2edeb9d4..89adfaaf84 100644 ]) OVS_VSWITCHD_STOP -@@ -11504,7 +11844,7 @@ ovs-ofctl dump-flows br0 +@@ -11504,7 +11866,7 @@ ovs-ofctl dump-flows br0 AT_CHECK([ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.10.10.2,dst=10.10.10.1,proto=1,tos=1,ttl=128,frag=no),icmp(type=8,code=0)'], [0], [stdout]) AT_CHECK([tail -3 stdout], [0], [dnl diff --git a/SPECS/openvswitch2.17.spec b/SPECS/openvswitch2.17.spec index 30d9e27..ef87b50 100644 --- a/SPECS/openvswitch2.17.spec +++ b/SPECS/openvswitch2.17.spec @@ -63,7 +63,7 @@ Summary: Open vSwitch Group: System Environment/Daemons daemon/database/utilities URL: http://www.openvswitch.org/ Version: 2.17.0 -Release: 166%{?dist} +Release: 167%{?dist} # Nearly all of openvswitch is ASL 2.0. The bugtool is LGPLv2+, and the # lib/sflow*.[ch] files are SISSL @@ -749,6 +749,14 @@ exit 0 %endif %changelog +* Fri May 03 2024 Open vSwitch CI - 2.17.0-167 +- Merging upstream branch-2.17 [RH git: b659285425] + Commit list: + 9d0de176c7 ofproto-dpif-trace: Fix access to an out-of-scope stack memory. + bd020fba03 hash, jhash: Fix unaligned access to the hash remainder. + 78ea43c71c sparse: Add additional define for sparse on GCC >= 14. + + * Tue Apr 30 2024 Open vSwitch CI - 2.17.0-166 - Merging upstream branch-2.17 [RH git: 5c0fdcef1e] Commit list: