On 11/1/22 14:26, Dumitru Ceara wrote: > On 11/1/22 13:42, Mark Michelson wrote: >> On 10/31/22 08:48, Dumitru Ceara wrote: >>> On 10/31/22 13:21, Mark Michelson wrote: >>>> On 8/9/22 04:48, Numan Siddique wrote: >>>>> On Tue, Aug 9, 2022 at 6:45 PM Ales Musil <[email protected]> wrote: >>>>>> >>>>>> On Mon, Aug 8, 2022 at 5:30 PM Dumitru Ceara <[email protected]> >>>>>> wrote: >>>>>> >>>>>>> These may change over time and, as a matter of fact, have recently >>>>>>> changed >>>>>>> in OVS master branch with commit fcdf8ae4a350 ("lib: Print nw_frag >>>>>>> in flow >>>>>>> key."). >>>>>>> >>>>>>> Instead, strip the flow key from the output. To achieve that, the >>>>>>> calls >>>>>>> to ovn-trace had to go through a bit of refactoring too. >>>>>>> >>>>>>> OVN has weekly CI jobs that run against OVS master branch. These >>>>>>> were >>>>>>> failing due to the flow key dump changes: >>>>>>> https://github.com/ovn-org/ovn/actions/runs/2810798237 >>>>>>> >>>>>>> Signed-off-by: Dumitru Ceara <[email protected]> >>>>>>> --- >>>>>>> tests/ofproto-macros.at | 8 +++ >>>>>>> tests/ovn-macros.at | 16 ++++++ >>>>>>> tests/ovn-northd.at | 116 >>>>>>> ++++++++++++++-------------------------- >>>>>>> tests/ovn.at | 64 ++++++++-------------- >>>>>>> 4 files changed, 85 insertions(+), 119 deletions(-) >>>>>>> >>>>>>> diff --git a/tests/ofproto-macros.at b/tests/ofproto-macros.at >>>>>>> index 23d793a95..2e0bbd20b 100644 >>>>>>> --- a/tests/ofproto-macros.at >>>>>>> +++ b/tests/ofproto-macros.at >>>>>>> @@ -18,6 +18,14 @@ s/cookie=0x[0-9a-fA-F]*,// >>>>>>> ' >>>>>>> } >>>>>>> >>>>>>> +# Strips 'nw_frag=yes|no' from ovs-ofctl (or similar) output. >>>>>>> +strip_nw_frag () { >>>>>>> + sed ' >>>>>>> +s/nw_frag=yes,// >>>>>>> +s/nw_frag=no,// >>>>>>> +' >>>>>>> +} >>>>>>> + >>>>>>> # Strips out uninteresting parts of ovs-ofctl output, as well as >>>>>>> parts >>>>>>> # that vary from one run to another. >>>>>>> ofctl_strip () { >>>>>>> diff --git a/tests/ovn-macros.at b/tests/ovn-macros.at >>>>>>> index 0e58c1d56..2ba930a85 100644 >>>>>>> --- a/tests/ovn-macros.at >>>>>>> +++ b/tests/ovn-macros.at >>>>>>> @@ -787,6 +787,22 @@ store_ip6_multicast_pkt() { >>>>>>> echo ${packet} >> ${outfile} >>>>>>> } >>>>>>> >>>>>>> +# Wrapper on top of ovn-trace, stripping some things and storing >>>>>>> the trace >>>>>>> +# output to a file called 'trace'. For now it strips the rows >>>>>>> starting >>>>>>> +# with a '#'. This should correspond to the flow key and might be >>>>>>> displayed >>>>>>> +# differently by different OVS library versions. >>>>>>> +ovn_trace() { >>>>>>> + AT_CAPTURE_FILE([trace]) >>>>>>> + ovn-trace "$@" | tee trace | sed '/^# /d' >>>>>>> +} >>>>>>> + >>>>>>> +# Same as ovn_trace() except that it connects to an ovn-trace >>>>>>> daemon. >>>>>>> +ovn_trace_client() { >>>>>>> + target=$1; shift >>>>>>> + AT_CAPTURE_FILE([trace]) >>>>>>> + ovs-appctl -t $target trace "$@" | tee trace | sed '/^# /d' >>>>>>> +} >>>>>>> + >>>>>>> OVS_END_SHELL_HELPERS >>>>>>> >>>>>>> m4_define([OVN_POPULATE_ARP], [AT_CHECK(ovn_populate_arp__, [0], >>>>>>> [ignore])]) >>>>>>> diff --git a/tests/ovn-northd.at b/tests/ovn-northd.at >>>>>>> index ae0f66ad6..5b5eeb0ee 100644 >>>>>>> --- a/tests/ovn-northd.at >>>>>>> +++ b/tests/ovn-northd.at >>>>>>> @@ -2806,8 +2806,7 @@ lsp1_inport=$(fetch_column Port_Binding >>>>>>> tunnel_key >>>>>>> logical_port=lsp1) >>>>>>> >>>>>>> # TCP packets should go to conntrack. >>>>>>> flow="inport == \"lsp1\" && ${flow_eth} && ${flow_ip} && >>>>>>> ${flow_tcp}" >>>>>>> -AT_CHECK_UNQUOTED([ovn-trace --ct new --ct new --minimal ls >>>>>>> "${flow}"], >>>>>>> [0], [dnl >>>>>>> -# >>>>>>> tcp,reg14=0x${lsp1_inport},vlan_tci=0x0000,dl_src=00:00:00:00:00:01,dl_dst=00:00:00:00:00:02,nw_src=42.42.42.1,nw_dst=66.66.66.66,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=0,tp_dst=80,tcp_flags=0 >>>>>>> +AT_CHECK_UNQUOTED([ovn_trace --ct new --ct new --minimal ls >>>>>>> "${flow}"], >>>>>>> [0], [dnl >>>>>>> ct_next(ct_state=new|trk) { >>>>>>> ct_next(ct_state=new|trk) { >>>>>>> output("lsp2"); >>>>>>> @@ -2817,8 +2816,7 @@ ct_next(ct_state=new|trk) { >>>>>>> >>>>>>> # UDP packets should go to conntrack. >>>>>>> flow="inport == \"lsp1\" && ${flow_eth} && ${flow_ip} && >>>>>>> ${flow_udp}" >>>>>>> -AT_CHECK_UNQUOTED([ovn-trace --ct new --ct new --minimal ls >>>>>>> "${flow}"], >>>>>>> [0], [dnl >>>>>>> -# >>>>>>> udp,reg14=0x${lsp1_inport},vlan_tci=0x0000,dl_src=00:00:00:00:00:01,dl_dst=00:00:00:00:00:02,nw_src=42.42.42.1,nw_dst=66.66.66.66,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=0,tp_dst=80 >>>>>>> +AT_CHECK_UNQUOTED([ovn_trace --ct new --ct new --minimal ls >>>>>>> "${flow}"], >>>>>>> [0], [dnl >>>>>>> ct_next(ct_state=new|trk) { >>>>>>> ct_next(ct_state=new|trk) { >>>>>>> output("lsp2"); >>>>>>> @@ -2834,15 +2832,13 @@ ovn-nbctl --wait=sb sync >>>>>>> >>>>>>> # TCP packets should not go to conntrack anymore. >>>>>>> flow="inport == \"lsp1\" && ${flow_eth} && ${flow_ip} && >>>>>>> ${flow_tcp}" >>>>>>> -AT_CHECK_UNQUOTED([ovn-trace --minimal ls "${flow}"], [0], [dnl >>>>>>> -# >>>>>>> tcp,reg14=0x${lsp1_inport},vlan_tci=0x0000,dl_src=00:00:00:00:00:01,dl_dst=00:00:00:00:00:02,nw_src=42.42.42.1,nw_dst=66.66.66.66,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=0,tp_dst=80,tcp_flags=0 >>>>>>> +AT_CHECK_UNQUOTED([ovn_trace --minimal ls "${flow}"], [0], [dnl >>>>>>> output("lsp2"); >>>>>>> ]) >>>>>>> >>>>>>> # UDP packets still go to conntrack. >>>>>>> flow="inport == \"lsp1\" && ${flow_eth} && ${flow_ip} && >>>>>>> ${flow_udp}" >>>>>>> -AT_CHECK_UNQUOTED([ovn-trace --ct new --ct new --minimal ls >>>>>>> "${flow}"], >>>>>>> [0], [dnl >>>>>>> -# >>>>>>> udp,reg14=0x${lsp1_inport},vlan_tci=0x0000,dl_src=00:00:00:00:00:01,dl_dst=00:00:00:00:00:02,nw_src=42.42.42.1,nw_dst=66.66.66.66,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=0,tp_dst=80 >>>>>>> +AT_CHECK_UNQUOTED([ovn_trace --ct new --ct new --minimal ls >>>>>>> "${flow}"], >>>>>>> [0], [dnl >>>>>>> ct_next(ct_state=new|trk) { >>>>>>> ct_next(ct_state=new|trk) { >>>>>>> output("lsp2"); >>>>>>> @@ -2862,8 +2858,7 @@ ovn-nbctl --wait=sb sync >>>>>>> >>>>>>> # TCP packets should go to conntrack. >>>>>>> flow="inport == \"lsp1\" && ${flow_eth} && ${flow_ip} && >>>>>>> ${flow_tcp}" >>>>>>> -AT_CHECK_UNQUOTED([ovn-trace --ct new --ct new --minimal ls >>>>>>> "${flow}"], >>>>>>> [0], [dnl >>>>>>> -# >>>>>>> tcp,reg14=0x${lsp1_inport},vlan_tci=0x0000,dl_src=00:00:00:00:00:01,dl_dst=00:00:00:00:00:02,nw_src=42.42.42.1,nw_dst=66.66.66.66,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=0,tp_dst=80,tcp_flags=0 >>>>>>> +AT_CHECK_UNQUOTED([ovn_trace --ct new --ct new --minimal ls >>>>>>> "${flow}"], >>>>>>> [0], [dnl >>>>>>> ct_lb_mark { >>>>>>> ct_lb_mark { >>>>>>> reg0[[6]] = 0; >>>>>>> @@ -2877,8 +2872,7 @@ ct_lb_mark { >>>>>>> >>>>>>> # UDP packets should go to conntrack. >>>>>>> flow="inport == \"lsp1\" && ${flow_eth} && ${flow_ip} && >>>>>>> ${flow_udp}" >>>>>>> -AT_CHECK_UNQUOTED([ovn-trace --ct new --ct new --minimal ls >>>>>>> "${flow}"], >>>>>>> [0], [dnl >>>>>>> -# >>>>>>> udp,reg14=0x${lsp1_inport},vlan_tci=0x0000,dl_src=00:00:00:00:00:01,dl_dst=00:00:00:00:00:02,nw_src=42.42.42.1,nw_dst=66.66.66.66,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=0,tp_dst=80 >>>>>>> +AT_CHECK_UNQUOTED([ovn_trace --ct new --ct new --minimal ls >>>>>>> "${flow}"], >>>>>>> [0], [dnl >>>>>>> ct_lb_mark { >>>>>>> ct_lb_mark { >>>>>>> reg0[[6]] = 0; >>>>>>> @@ -2898,8 +2892,7 @@ ovn-nbctl --wait=sb sync >>>>>>> >>>>>>> # TCP packets should go to conntrack for load balancing. >>>>>>> flow="inport == \"lsp1\" && ${flow_eth} && ${flow_ip} && >>>>>>> ${flow_tcp}" >>>>>>> -AT_CHECK_UNQUOTED([ovn-trace --ct new --ct new --minimal ls >>>>>>> "${flow}"], >>>>>>> [0], [dnl >>>>>>> -# >>>>>>> tcp,reg14=0x${lsp1_inport},vlan_tci=0x0000,dl_src=00:00:00:00:00:01,dl_dst=00:00:00:00:00:02,nw_src=42.42.42.1,nw_dst=66.66.66.66,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=0,tp_dst=80,tcp_flags=0 >>>>>>> +AT_CHECK_UNQUOTED([ovn_trace --ct new --ct new --minimal ls >>>>>>> "${flow}"], >>>>>>> [0], [dnl >>>>>>> ct_lb_mark { >>>>>>> ct_lb_mark { >>>>>>> reg0[[6]] = 0; >>>>>>> @@ -2913,8 +2906,7 @@ ct_lb_mark { >>>>>>> >>>>>>> # UDP packets still go to conntrack. >>>>>>> flow="inport == \"lsp1\" && ${flow_eth} && ${flow_ip} && >>>>>>> ${flow_udp}" >>>>>>> -AT_CHECK_UNQUOTED([ovn-trace --ct new --ct new --minimal ls >>>>>>> "${flow}"], >>>>>>> [0], [dnl >>>>>>> -# >>>>>>> udp,reg14=0x${lsp1_inport},vlan_tci=0x0000,dl_src=00:00:00:00:00:01,dl_dst=00:00:00:00:00:02,nw_src=42.42.42.1,nw_dst=66.66.66.66,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=0,tp_dst=80 >>>>>>> +AT_CHECK_UNQUOTED([ovn_trace --ct new --ct new --minimal ls >>>>>>> "${flow}"], >>>>>>> [0], [dnl >>>>>>> ct_lb_mark { >>>>>>> ct_lb_mark { >>>>>>> reg0[[6]] = 0; >>>>>>> @@ -2958,8 +2950,7 @@ flow_udp='udp && udp.dst == 80' >>>>>>> >>>>>>> # TCP packets should go to conntrack. >>>>>>> flow="inport == \"lsp1\" && ${flow_eth} && ${flow_ip} && >>>>>>> ${flow_tcp}" >>>>>>> -AT_CHECK_UNQUOTED([ovn-trace --ct new --ct new --minimal ls >>>>>>> "${flow}"], >>>>>>> [0], [dnl >>>>>>> -# >>>>>>> tcp,reg14=0x${lsp1_inport},vlan_tci=0x0000,dl_src=00:00:00:00:00:01,dl_dst=00:00:00:00:00:02,nw_src=42.42.42.1,nw_dst=66.66.66.66,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=0,tp_dst=80,tcp_flags=0 >>>>>>> +AT_CHECK_UNQUOTED([ovn_trace --ct new --ct new --minimal ls >>>>>>> "${flow}"], >>>>>>> [0], [dnl >>>>>>> ct_next(ct_state=new|trk) { >>>>>>> ct_next(ct_state=new|trk) { >>>>>>> output("lsp2"); >>>>>>> @@ -2969,8 +2960,7 @@ ct_next(ct_state=new|trk) { >>>>>>> >>>>>>> # UDP packets should go to conntrack. >>>>>>> flow="inport == \"lsp1\" && ${flow_eth} && ${flow_ip} && >>>>>>> ${flow_udp}" >>>>>>> -AT_CHECK_UNQUOTED([ovn-trace --ct new --ct new --minimal ls >>>>>>> "${flow}"], >>>>>>> [0], [dnl >>>>>>> -# >>>>>>> udp,reg14=0x${lsp1_inport},vlan_tci=0x0000,dl_src=00:00:00:00:00:01,dl_dst=00:00:00:00:00:02,nw_src=42.42.42.1,nw_dst=66.66.66.66,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=0,tp_dst=80 >>>>>>> +AT_CHECK_UNQUOTED([ovn_trace --ct new --ct new --minimal ls >>>>>>> "${flow}"], >>>>>>> [0], [dnl >>>>>>> ct_next(ct_state=new|trk) { >>>>>>> ct_next(ct_state=new|trk) { >>>>>>> output("lsp2"); >>>>>>> @@ -2986,15 +2976,13 @@ ovn-nbctl --wait=sb sync >>>>>>> >>>>>>> # TCP packets should not go to conntrack anymore. >>>>>>> flow="inport == \"lsp1\" && ${flow_eth} && ${flow_ip} && >>>>>>> ${flow_tcp}" >>>>>>> -AT_CHECK_UNQUOTED([ovn-trace --minimal ls "${flow}"], [0], [dnl >>>>>>> -# >>>>>>> tcp,reg14=0x${lsp1_inport},vlan_tci=0x0000,dl_src=00:00:00:00:00:01,dl_dst=00:00:00:00:00:02,nw_src=42.42.42.1,nw_dst=66.66.66.66,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=0,tp_dst=80,tcp_flags=0 >>>>>>> +AT_CHECK_UNQUOTED([ovn_trace --minimal ls "${flow}"], [0], [dnl >>>>>>> output("lsp2"); >>>>>>> ]) >>>>>>> >>>>>>> # UDP packets still go to conntrack. >>>>>>> flow="inport == \"lsp1\" && ${flow_eth} && ${flow_ip} && >>>>>>> ${flow_udp}" >>>>>>> -AT_CHECK_UNQUOTED([ovn-trace --ct new --ct new --minimal ls >>>>>>> "${flow}"], >>>>>>> [0], [dnl >>>>>>> -# >>>>>>> udp,reg14=0x${lsp1_inport},vlan_tci=0x0000,dl_src=00:00:00:00:00:01,dl_dst=00:00:00:00:00:02,nw_src=42.42.42.1,nw_dst=66.66.66.66,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=0,tp_dst=80 >>>>>>> +AT_CHECK_UNQUOTED([ovn_trace --ct new --ct new --minimal ls >>>>>>> "${flow}"], >>>>>>> [0], [dnl >>>>>>> ct_next(ct_state=new|trk) { >>>>>>> ct_next(ct_state=new|trk) { >>>>>>> output("lsp2"); >>>>>>> @@ -3014,8 +3002,7 @@ ovn-nbctl --wait=sb sync >>>>>>> >>>>>>> # TCP packets should go to conntrack. >>>>>>> flow="inport == \"lsp1\" && ${flow_eth} && ${flow_ip} && >>>>>>> ${flow_tcp}" >>>>>>> -AT_CHECK_UNQUOTED([ovn-trace --ct new --ct new --minimal ls >>>>>>> "${flow}"], >>>>>>> [0], [dnl >>>>>>> -# >>>>>>> tcp,reg14=0x${lsp1_inport},vlan_tci=0x0000,dl_src=00:00:00:00:00:01,dl_dst=00:00:00:00:00:02,nw_src=42.42.42.1,nw_dst=66.66.66.66,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=0,tp_dst=80,tcp_flags=0 >>>>>>> +AT_CHECK_UNQUOTED([ovn_trace --ct new --ct new --minimal ls >>>>>>> "${flow}"], >>>>>>> [0], [dnl >>>>>>> ct_lb_mark { >>>>>>> ct_lb_mark { >>>>>>> reg0[[6]] = 0; >>>>>>> @@ -3029,8 +3016,7 @@ ct_lb_mark { >>>>>>> >>>>>>> # UDP packets should go to conntrack. >>>>>>> flow="inport == \"lsp1\" && ${flow_eth} && ${flow_ip} && >>>>>>> ${flow_udp}" >>>>>>> -AT_CHECK_UNQUOTED([ovn-trace --ct new --ct new --minimal ls >>>>>>> "${flow}"], >>>>>>> [0], [dnl >>>>>>> -# >>>>>>> udp,reg14=0x${lsp1_inport},vlan_tci=0x0000,dl_src=00:00:00:00:00:01,dl_dst=00:00:00:00:00:02,nw_src=42.42.42.1,nw_dst=66.66.66.66,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=0,tp_dst=80 >>>>>>> +AT_CHECK_UNQUOTED([ovn_trace --ct new --ct new --minimal ls >>>>>>> "${flow}"], >>>>>>> [0], [dnl >>>>>>> ct_lb_mark { >>>>>>> ct_lb_mark { >>>>>>> reg0[[6]] = 0; >>>>>>> @@ -3050,8 +3036,7 @@ ovn-nbctl --wait=sb sync >>>>>>> >>>>>>> # TCP packets should go to conntrack for load balancing. >>>>>>> flow="inport == \"lsp1\" && ${flow_eth} && ${flow_ip} && >>>>>>> ${flow_tcp}" >>>>>>> -AT_CHECK_UNQUOTED([ovn-trace --ct new --ct new --minimal ls >>>>>>> "${flow}"], >>>>>>> [0], [dnl >>>>>>> -# >>>>>>> tcp,reg14=0x${lsp1_inport},vlan_tci=0x0000,dl_src=00:00:00:00:00:01,dl_dst=00:00:00:00:00:02,nw_src=42.42.42.1,nw_dst=66.66.66.66,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=0,tp_dst=80,tcp_flags=0 >>>>>>> +AT_CHECK_UNQUOTED([ovn_trace --ct new --ct new --minimal ls >>>>>>> "${flow}"], >>>>>>> [0], [dnl >>>>>>> ct_lb_mark { >>>>>>> ct_lb_mark { >>>>>>> reg0[[6]] = 0; >>>>>>> @@ -3065,8 +3050,7 @@ ct_lb_mark { >>>>>>> >>>>>>> # UDP packets still go to conntrack. >>>>>>> flow="inport == \"lsp1\" && ${flow_eth} && ${flow_ip} && >>>>>>> ${flow_udp}" >>>>>>> -AT_CHECK_UNQUOTED([ovn-trace --ct new --ct new --minimal ls >>>>>>> "${flow}"], >>>>>>> [0], [dnl >>>>>>> -# >>>>>>> udp,reg14=0x${lsp1_inport},vlan_tci=0x0000,dl_src=00:00:00:00:00:01,dl_dst=00:00:00:00:00:02,nw_src=42.42.42.1,nw_dst=66.66.66.66,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=0,tp_dst=80 >>>>>>> +AT_CHECK_UNQUOTED([ovn_trace --ct new --ct new --minimal ls >>>>>>> "${flow}"], >>>>>>> [0], [dnl >>>>>>> ct_lb_mark { >>>>>>> ct_lb_mark { >>>>>>> reg0[[6]] = 0; >>>>>>> @@ -3106,8 +3090,7 @@ lsp1_inport=$(fetch_column Port_Binding >>>>>>> tunnel_key >>>>>>> logical_port=lsp1) >>>>>>> >>>>>>> # TCP packets should go to conntrack. >>>>>>> flow="inport == \"lsp1\" && ${flow_eth} && ${flow_ip} && >>>>>>> ${flow_tcp}" >>>>>>> -AT_CHECK_UNQUOTED([ovn-trace --ct new --ct new --minimal ls >>>>>>> "${flow}"], >>>>>>> [0], [dnl >>>>>>> -# >>>>>>> tcp,reg14=0x${lsp1_inport},vlan_tci=0x0000,dl_src=00:00:00:00:00:01,dl_dst=00:00:00:00:00:02,nw_src=42.42.42.1,nw_dst=66.66.66.66,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=0,tp_dst=80,tcp_flags=0 >>>>>>> +AT_CHECK_UNQUOTED([ovn_trace --ct new --ct new --minimal ls >>>>>>> "${flow}"], >>>>>>> [0], [dnl >>>>>>> ct_next(ct_state=new|trk) { >>>>>>> ct_next(ct_state=new|trk) { >>>>>>> output("lsp2"); >>>>>>> @@ -3124,15 +3107,13 @@ ovn-nbctl --wait=sb sync >>>>>>> >>>>>>> # TCP packets should not go to conntrack anymore. >>>>>>> flow="inport == \"lsp1\" && ${flow_eth} && ${flow_ip} && >>>>>>> ${flow_tcp}" >>>>>>> -AT_CHECK_UNQUOTED([ovn-trace --minimal ls "${flow}"], [0], [dnl >>>>>>> -# >>>>>>> tcp,reg14=0x${lsp1_inport},vlan_tci=0x0000,dl_src=00:00:00:00:00:01,dl_dst=00:00:00:00:00:02,nw_src=42.42.42.1,nw_dst=66.66.66.66,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=0,tp_dst=80,tcp_flags=0 >>>>>>> +AT_CHECK_UNQUOTED([ovn_trace --minimal ls "${flow}"], [0], [dnl >>>>>>> output("lsp2"); >>>>>>> ]) >>>>>>> >>>>>>> # UDP packets should not go to conntrack anymore. >>>>>>> flow="inport == \"lsp1\" && ${flow_eth} && ${flow_ip} && >>>>>>> ${flow_udp}" >>>>>>> -AT_CHECK_UNQUOTED([ovn-trace --ct new --ct new --minimal ls >>>>>>> "${flow}"], >>>>>>> [0], [dnl >>>>>>> -# >>>>>>> udp,reg14=0x${lsp1_inport},vlan_tci=0x0000,dl_src=00:00:00:00:00:01,dl_dst=00:00:00:00:00:02,nw_src=42.42.42.1,nw_dst=66.66.66.66,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=0,tp_dst=80 >>>>>>> +AT_CHECK_UNQUOTED([ovn_trace --ct new --ct new --minimal ls >>>>>>> "${flow}"], >>>>>>> [0], [dnl >>>>>>> output("lsp2"); >>>>>>> ]) >>>>>>> >>>>>>> @@ -4234,13 +4215,13 @@ check ovn-nbctl lsp-set-options >>>>>>> lrp1-attachment >>>>>>> router-port=lrp1 >>>>>>> check ovn-nbctl lr-nat-add lr0 dnat 42.42.42.42 192.168.0.2 >>>>>>> check ovn-nbctl --wait=sb sync >>>>>>> >>>>>>> -AT_CHECK([ovn-trace --minimal 'inport == "sw1-port1" && eth.src == >>>>>>> 50:54:00:00:00:03 && eth.dst == 00:00:00:00:ff:02 && ip4.dst == >>>>>>> 42.42.42.42 >>>>>>> && ip4.src == 11.0.0.2 && ip.ttl == 64' | grep >>>>>>> "output(\"sw0-port1\")"], >>>>>>> [0], [ignore]) >>>>>>> +AT_CHECK([ovn_trace --minimal 'inport == "sw1-port1" && eth.src == >>>>>>> 50:54:00:00:00:03 && eth.dst == 00:00:00:00:ff:02 && ip4.dst == >>>>>>> 42.42.42.42 >>>>>>> && ip4.src == 11.0.0.2 && ip.ttl == 64' | grep >>>>>>> "output(\"sw0-port1\")"], >>>>>>> [0], [ignore]) >>>>>>> >>>>>>> dnl If we remove the DNAT entry we will be unable to trace to the >>>>>>> DNAT >>>>>>> address >>>>>>> check ovn-nbctl lr-nat-del lr0 dnat 42.42.42.42 >>>>>>> check ovn-nbctl --wait=sb sync >>>>>>> >>>>>>> -AT_CHECK([ovn-trace --minimal 'inport == "sw1-port1" && eth.src == >>>>>>> 50:54:00:00:00:03 && eth.dst == 00:00:00:00:ff:02 && ip4.dst == >>>>>>> 42.42.42.42 >>>>>>> && ip4.src == 11.0.0.2 && ip.ttl == 64' | grep >>>>>>> "output(\"sw0-port1\")"], >>>>>>> [1], [ignore]) >>>>>>> +AT_CHECK([ovn_trace --minimal 'inport == "sw1-port1" && eth.src == >>>>>>> 50:54:00:00:00:03 && eth.dst == 00:00:00:00:ff:02 && ip4.dst == >>>>>>> 42.42.42.42 >>>>>>> && ip4.src == 11.0.0.2 && ip.ttl == 64' | grep >>>>>>> "output(\"sw0-port1\")"], >>>>>>> [1], [ignore]) >>>>>>> >>>>>>> AT_CLEANUP >>>>>>> ]) >>>>>>> @@ -4273,13 +4254,13 @@ check ovn-nbctl lsp-set-options >>>>>>> lrp1-attachment >>>>>>> router-port=lrp1 >>>>>>> check ovn-nbctl lr-nat-add lr0 dnat fd42::42 fd68::2 >>>>>>> check ovn-nbctl --wait=sb sync >>>>>>> >>>>>>> -AT_CHECK([ovn-trace --minimal 'inport == "sw1-port1" && eth.src == >>>>>>> 50:54:00:00:00:03 && eth.dst == 00:00:00:00:ff:02 && ip6.dst == >>>>>>> fd42::42 && >>>>>>> ip6.src == fd11::2 && ip.ttl == 64' | grep "output(\"sw0-port1\")"], >>>>>>> [0], >>>>>>> [ignore]) >>>>>>> +AT_CHECK([ovn_trace --minimal 'inport == "sw1-port1" && eth.src == >>>>>>> 50:54:00:00:00:03 && eth.dst == 00:00:00:00:ff:02 && ip6.dst == >>>>>>> fd42::42 && >>>>>>> ip6.src == fd11::2 && ip.ttl == 64' | grep "output(\"sw0-port1\")"], >>>>>>> [0], >>>>>>> [ignore]) >>>>>>> >>>>>>> dnl If we remove the DNAT entry we will be unable to trace to the >>>>>>> DNAT >>>>>>> address >>>>>>> check ovn-nbctl lr-nat-del lr0 dnat fd42::42 >>>>>>> check ovn-nbctl --wait=sb sync >>>>>>> >>>>>>> -AT_CHECK([ovn-trace --minimal 'inport == "sw1-port1" && eth.src == >>>>>>> 50:54:00:00:00:03 && eth.dst == 00:00:00:00:ff:02 && ip6.dst == >>>>>>> fd42::42 && >>>>>>> ip6.src == fd11::2 && ip.ttl == 64' | grep "output(\"sw0-port1\")"], >>>>>>> [1], >>>>>>> [ignore]) >>>>>>> +AT_CHECK([ovn_trace --minimal 'inport == "sw1-port1" && eth.src == >>>>>>> 50:54:00:00:00:03 && eth.dst == 00:00:00:00:ff:02 && ip6.dst == >>>>>>> fd42::42 && >>>>>>> ip6.src == fd11::2 && ip.ttl == 64' | grep "output(\"sw0-port1\")"], >>>>>>> [1], >>>>>>> [ignore]) >>>>>>> >>>>>>> AT_CLEANUP >>>>>>> ]) >>>>>>> @@ -5844,8 +5825,7 @@ check ovn-nbctl --wait=sb sync >>>>>>> >>>>>>> flow="eth.dst == 00:00:00:00:01:00 && inport == \"rtr-ls\" && >>>>>>> ip4.src == >>>>>>> 42.42.42.42 && ip4.dst == 43.43.43.43 && ip.ttl == 64 && tcp && >>>>>>> tcp.dst == >>>>>>> 4343" >>>>>>> >>>>>>> -AT_CHECK_UNQUOTED([ovn-trace --ct new --minimal "${flow}" --lb-dst >>>>>>> 42.42.42.42:4242], [0], [dnl >>>>>>> -# >>>>>>> tcp,reg14=0x1,vlan_tci=0x0000,dl_src=00:00:00:00:00:00,dl_dst=00:00:00:00:01:00,nw_src=42.42.42.42,nw_dst=43.43.43.43,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=0,tp_dst=4343,tcp_flags=0 >>>>>>> +AT_CHECK_UNQUOTED([ovn_trace --ct new --minimal "${flow}" --lb-dst >>>>>>> 42.42.42.42:4242], [0], [dnl >>>>>>> ct_dnat /* assuming no un-dnat entry, so no change */ { >>>>>>> ct_lb_mark /* default (use --ct to customize) */ { >>>>>>> ip.ttl--; >>>>>>> @@ -5862,8 +5842,7 @@ ct_dnat /* assuming no un-dnat entry, so no >>>>>>> change >>>>>>> */ { >>>>>>> }; >>>>>>> ]) >>>>>>> >>>>>>> -AT_CHECK_UNQUOTED([ovn-trace --minimal "${flow}" --lb-dst >>>>>>> 42.42.42.42:4242], [0], [dnl >>>>>>> -# >>>>>>> tcp,reg14=0x1,vlan_tci=0x0000,dl_src=00:00:00:00:00:00,dl_dst=00:00:00:00:01:00,nw_src=42.42.42.42,nw_dst=43.43.43.43,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=0,tp_dst=4343,tcp_flags=0 >>>>>>> +AT_CHECK_UNQUOTED([ovn_trace --minimal "${flow}" --lb-dst >>>>>>> 42.42.42.42:4242], [0], [dnl >>>>>>> ct_dnat /* assuming no un-dnat entry, so no change */ /* >>>>>>> default (use >>>>>>> --ct to customize) */; >>>>>>> ]) >>>>>>> >>>>>>> @@ -6710,8 +6689,7 @@ AT_CHECK([ovn-sbctl dump-flows | grep -E >>>>>>> "ls_.*_acl" >>>>>>> | sed 's/table=../table=??/ >>>>>>> ]) >>>>>>> >>>>>>> dnl UDP traffic should be allowed. >>>>>>> -AT_CHECK_UNQUOTED([ovn-trace --ct new --ct new --minimal ls >>>>>>> "${flow}"], >>>>>>> [0], [dnl >>>>>>> -# >>>>>>> udp,reg14=0x1,vlan_tci=0x0000,dl_src=00:00:00:00:00:01,dl_dst=00:00:00:00:00:02,nw_src=42.42.42.42,nw_dst=42.42.42.43,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=42,tp_dst=84 >>>>>>> +AT_CHECK_UNQUOTED([ovn_trace --ct new --ct new --minimal ls >>>>>>> "${flow}"], >>>>>>> [0], [dnl >>>>>>> output("lsp2"); >>>>>>> ]) >>>>>>> >>>>>>> @@ -6730,8 +6708,7 @@ AT_CHECK([ovn-sbctl dump-flows | grep -E >>>>>>> "ls_.*_acl" >>>>>>> | sed 's/table=../table=??/ >>>>>>> ]) >>>>>>> >>>>>>> dnl UDP traffic should be allowed. >>>>>>> -AT_CHECK_UNQUOTED([ovn-trace --ct new --ct new --minimal ls >>>>>>> "${flow}"], >>>>>>> [0], [dnl >>>>>>> -# >>>>>>> udp,reg14=0x1,vlan_tci=0x0000,dl_src=00:00:00:00:00:01,dl_dst=00:00:00:00:00:02,nw_src=42.42.42.42,nw_dst=42.42.42.43,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=42,tp_dst=84 >>>>>>> +AT_CHECK_UNQUOTED([ovn_trace --ct new --ct new --minimal ls >>>>>>> "${flow}"], >>>>>>> [0], [dnl >>>>>>> output("lsp2"); >>>>>>> ]) >>>>>>> >>>>>>> @@ -6750,8 +6727,7 @@ AT_CHECK([ovn-sbctl dump-flows | grep -E >>>>>>> "ls_.*_acl" >>>>>>> | sed 's/table=../table=??/ >>>>>>> ]) >>>>>>> >>>>>>> dnl UDP traffic should be allowed. >>>>>>> -AT_CHECK_UNQUOTED([ovn-trace --ct new --ct new --minimal ls >>>>>>> "${flow}"], >>>>>>> [0], [dnl >>>>>>> -# >>>>>>> udp,reg14=0x1,vlan_tci=0x0000,dl_src=00:00:00:00:00:01,dl_dst=00:00:00:00:00:02,nw_src=42.42.42.42,nw_dst=42.42.42.43,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=42,tp_dst=84 >>>>>>> +AT_CHECK_UNQUOTED([ovn_trace --ct new --ct new --minimal ls >>>>>>> "${flow}"], >>>>>>> [0], [dnl >>>>>>> output("lsp2"); >>>>>>> ]) >>>>>>> >>>>>>> @@ -6777,8 +6753,7 @@ AT_CHECK([ovn-sbctl dump-flows | grep -E >>>>>>> "ls_.*_acl" >>>>>>> | sed 's/table=../table=??/ >>>>>>> ]) >>>>>>> >>>>>>> dnl UDP traffic should be allowed. >>>>>>> -AT_CHECK_UNQUOTED([ovn-trace --ct new --ct new --minimal ls >>>>>>> "${flow}"], >>>>>>> [0], [dnl >>>>>>> -# >>>>>>> udp,reg14=0x1,vlan_tci=0x0000,dl_src=00:00:00:00:00:01,dl_dst=00:00:00:00:00:02,nw_src=42.42.42.42,nw_dst=42.42.42.43,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=42,tp_dst=84 >>>>>>> +AT_CHECK_UNQUOTED([ovn_trace --ct new --ct new --minimal ls >>>>>>> "${flow}"], >>>>>>> [0], [dnl >>>>>>> output("lsp2"); >>>>>>> ]) >>>>>>> >>>>>>> @@ -6800,8 +6775,7 @@ AT_CHECK([ovn-sbctl dump-flows | grep -E >>>>>>> "ls_.*_acl" >>>>>>> | sed 's/table=../table=??/ >>>>>>> ]) >>>>>>> >>>>>>> dnl UDP traffic should be allowed. >>>>>>> -AT_CHECK_UNQUOTED([ovn-trace --ct new --ct new --minimal ls >>>>>>> "${flow}"], >>>>>>> [0], [dnl >>>>>>> -# >>>>>>> udp,reg14=0x1,vlan_tci=0x0000,dl_src=00:00:00:00:00:01,dl_dst=00:00:00:00:00:02,nw_src=42.42.42.42,nw_dst=42.42.42.43,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=42,tp_dst=84 >>>>>>> +AT_CHECK_UNQUOTED([ovn_trace --ct new --ct new --minimal ls >>>>>>> "${flow}"], >>>>>>> [0], [dnl >>>>>>> output("lsp2"); >>>>>>> ]) >>>>>>> >>>>>>> @@ -6823,8 +6797,7 @@ AT_CHECK([ovn-sbctl dump-flows | grep -E >>>>>>> "ls_.*_acl" >>>>>>> | sed 's/table=../table=??/ >>>>>>> ]) >>>>>>> >>>>>>> dnl UDP traffic should be dropped. >>>>>>> -AT_CHECK_UNQUOTED([ovn-trace --ct new --ct new --minimal ls >>>>>>> "${flow}"], >>>>>>> [0], [dnl >>>>>>> -# >>>>>>> udp,reg14=0x1,vlan_tci=0x0000,dl_src=00:00:00:00:00:01,dl_dst=00:00:00:00:00:02,nw_src=42.42.42.42,nw_dst=42.42.42.43,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=42,tp_dst=84 >>>>>>> +AT_CHECK_UNQUOTED([ovn_trace --ct new --ct new --minimal ls >>>>>>> "${flow}"], >>>>>>> [0], [dnl >>>>>>> ]) >>>>>>> >>>>>>> AS_BOX([from-lport ACL allow-related, default_acl_drop true]) >>>>>>> @@ -6879,8 +6852,7 @@ AT_CHECK([ovn-sbctl dump-flows | grep -E >>>>>>> "ls_.*_acl" >>>>>>> | sed 's/table=../table=??/ >>>>>>> ]) >>>>>>> >>>>>>> dnl UDP traffic should be dropped. >>>>>>> -AT_CHECK_UNQUOTED([ovn-trace --ct new --ct new --minimal ls >>>>>>> "${flow}"], >>>>>>> [0], [dnl >>>>>>> -# >>>>>>> udp,reg14=0x1,vlan_tci=0x0000,dl_src=00:00:00:00:00:01,dl_dst=00:00:00:00:00:02,nw_src=42.42.42.42,nw_dst=42.42.42.43,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=42,tp_dst=84 >>>>>>> +AT_CHECK_UNQUOTED([ovn_trace --ct new --ct new --minimal ls >>>>>>> "${flow}"], >>>>>>> [0], [dnl >>>>>>> ct_next(ct_state=new|trk); >>>>>>> ]) >>>>>>> >>>>>>> @@ -6906,8 +6878,7 @@ AT_CHECK([ovn-sbctl dump-flows | grep -E >>>>>>> "ls_.*_acl" >>>>>>> | sed 's/table=../table=??/ >>>>>>> ]) >>>>>>> >>>>>>> dnl UDP traffic should be allowed. >>>>>>> -AT_CHECK_UNQUOTED([ovn-trace --ct new --ct new --minimal ls >>>>>>> "${flow}"], >>>>>>> [0], [dnl >>>>>>> -# >>>>>>> udp,reg14=0x1,vlan_tci=0x0000,dl_src=00:00:00:00:00:01,dl_dst=00:00:00:00:00:02,nw_src=42.42.42.42,nw_dst=42.42.42.43,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=42,tp_dst=84 >>>>>>> +AT_CHECK_UNQUOTED([ovn_trace --ct new --ct new --minimal ls >>>>>>> "${flow}"], >>>>>>> [0], [dnl >>>>>>> output("lsp2"); >>>>>>> ]) >>>>>>> >>>>>>> @@ -6929,8 +6900,7 @@ AT_CHECK([ovn-sbctl dump-flows | grep -E >>>>>>> "ls_.*_acl" >>>>>>> | sed 's/table=../table=??/ >>>>>>> ]) >>>>>>> >>>>>>> dnl UDP traffic should be allowed. >>>>>>> -AT_CHECK_UNQUOTED([ovn-trace --ct new --ct new --minimal ls >>>>>>> "${flow}"], >>>>>>> [0], [dnl >>>>>>> -# >>>>>>> udp,reg14=0x1,vlan_tci=0x0000,dl_src=00:00:00:00:00:01,dl_dst=00:00:00:00:00:02,nw_src=42.42.42.42,nw_dst=42.42.42.43,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=42,tp_dst=84 >>>>>>> +AT_CHECK_UNQUOTED([ovn_trace --ct new --ct new --minimal ls >>>>>>> "${flow}"], >>>>>>> [0], [dnl >>>>>>> output("lsp2"); >>>>>>> ]) >>>>>>> >>>>>>> @@ -6952,8 +6922,7 @@ AT_CHECK([ovn-sbctl dump-flows | grep -E >>>>>>> "ls_.*_acl" >>>>>>> | sed 's/table=../table=??/ >>>>>>> ]) >>>>>>> >>>>>>> dnl UDP traffic should be dropped. >>>>>>> -AT_CHECK_UNQUOTED([ovn-trace --ct new --ct new --minimal ls >>>>>>> "${flow}"], >>>>>>> [0], [dnl >>>>>>> -# >>>>>>> udp,reg14=0x1,vlan_tci=0x0000,dl_src=00:00:00:00:00:01,dl_dst=00:00:00:00:00:02,nw_src=42.42.42.42,nw_dst=42.42.42.43,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=42,tp_dst=84 >>>>>>> +AT_CHECK_UNQUOTED([ovn_trace --ct new --ct new --minimal ls >>>>>>> "${flow}"], >>>>>>> [0], [dnl >>>>>>> ]) >>>>>>> >>>>>>> AS_BOX([from-lport --apply-after-lb ACL allow-related, >>>>>>> default_acl_drop >>>>>>> true]) >>>>>>> @@ -7008,8 +6977,7 @@ AT_CHECK([ovn-sbctl dump-flows | grep -E >>>>>>> "ls_.*_acl" >>>>>>> | sed 's/table=../table=??/ >>>>>>> ]) >>>>>>> >>>>>>> dnl UDP traffic should be dropped. >>>>>>> -AT_CHECK_UNQUOTED([ovn-trace --ct new --ct new --minimal ls >>>>>>> "${flow}"], >>>>>>> [0], [dnl >>>>>>> -# >>>>>>> udp,reg14=0x1,vlan_tci=0x0000,dl_src=00:00:00:00:00:01,dl_dst=00:00:00:00:00:02,nw_src=42.42.42.42,nw_dst=42.42.42.43,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=42,tp_dst=84 >>>>>>> +AT_CHECK_UNQUOTED([ovn_trace --ct new --ct new --minimal ls >>>>>>> "${flow}"], >>>>>>> [0], [dnl >>>>>>> ct_next(ct_state=new|trk); >>>>>>> ]) >>>>>>> >>>>>>> @@ -7035,8 +7003,7 @@ AT_CHECK([ovn-sbctl dump-flows | grep -E >>>>>>> "ls_.*_acl" >>>>>>> | sed 's/table=../table=??/ >>>>>>> ]) >>>>>>> >>>>>>> dnl UDP traffic should be allowed. >>>>>>> -AT_CHECK_UNQUOTED([ovn-trace --ct new --ct new --minimal ls >>>>>>> "${flow}"], >>>>>>> [0], [dnl >>>>>>> -# >>>>>>> udp,reg14=0x1,vlan_tci=0x0000,dl_src=00:00:00:00:00:01,dl_dst=00:00:00:00:00:02,nw_src=42.42.42.42,nw_dst=42.42.42.43,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=42,tp_dst=84 >>>>>>> +AT_CHECK_UNQUOTED([ovn_trace --ct new --ct new --minimal ls >>>>>>> "${flow}"], >>>>>>> [0], [dnl >>>>>>> output("lsp2"); >>>>>>> ]) >>>>>>> >>>>>>> @@ -7058,8 +7025,7 @@ AT_CHECK([ovn-sbctl dump-flows | grep -E >>>>>>> "ls_.*_acl" >>>>>>> | sed 's/table=../table=??/ >>>>>>> ]) >>>>>>> >>>>>>> dnl UDP traffic should be allowed. >>>>>>> -AT_CHECK_UNQUOTED([ovn-trace --ct new --ct new --minimal ls >>>>>>> "${flow}"], >>>>>>> [0], [dnl >>>>>>> -# >>>>>>> udp,reg14=0x1,vlan_tci=0x0000,dl_src=00:00:00:00:00:01,dl_dst=00:00:00:00:00:02,nw_src=42.42.42.42,nw_dst=42.42.42.43,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=42,tp_dst=84 >>>>>>> +AT_CHECK_UNQUOTED([ovn_trace --ct new --ct new --minimal ls >>>>>>> "${flow}"], >>>>>>> [0], [dnl >>>>>>> output("lsp2"); >>>>>>> ]) >>>>>>> >>>>>>> @@ -7081,8 +7047,7 @@ AT_CHECK([ovn-sbctl dump-flows | grep -E >>>>>>> "ls_.*_acl" >>>>>>> | sed 's/table=../table=??/ >>>>>>> ]) >>>>>>> >>>>>>> dnl UDP traffic should be dropped. >>>>>>> -AT_CHECK_UNQUOTED([ovn-trace --ct new --ct new --minimal ls >>>>>>> "${flow}"], >>>>>>> [0], [dnl >>>>>>> -# >>>>>>> udp,reg14=0x1,vlan_tci=0x0000,dl_src=00:00:00:00:00:01,dl_dst=00:00:00:00:00:02,nw_src=42.42.42.42,nw_dst=42.42.42.43,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=42,tp_dst=84 >>>>>>> +AT_CHECK_UNQUOTED([ovn_trace --ct new --ct new --minimal ls >>>>>>> "${flow}"], >>>>>>> [0], [dnl >>>>>>> ]) >>>>>>> >>>>>>> AS_BOX([to-lport ACL allow-related, default_acl_drop true]) >>>>>>> @@ -7137,8 +7102,7 @@ AT_CHECK([ovn-sbctl dump-flows | grep -E >>>>>>> "ls_.*_acl" >>>>>>> | sed 's/table=../table=??/ >>>>>>> ]) >>>>>>> >>>>>>> dnl UDP traffic should be dropped. >>>>>>> -AT_CHECK_UNQUOTED([ovn-trace --ct new --ct new --minimal ls >>>>>>> "${flow}"], >>>>>>> [0], [dnl >>>>>>> -# >>>>>>> udp,reg14=0x1,vlan_tci=0x0000,dl_src=00:00:00:00:00:01,dl_dst=00:00:00:00:00:02,nw_src=42.42.42.42,nw_dst=42.42.42.43,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=42,tp_dst=84 >>>>>>> +AT_CHECK_UNQUOTED([ovn_trace --ct new --ct new --minimal ls >>>>>>> "${flow}"], >>>>>>> [0], [dnl >>>>>>> ct_next(ct_state=new|trk); >>>>>>> ]) >>>>>>> >>>>>>> diff --git a/tests/ovn.at b/tests/ovn.at >>>>>>> index 3ba6ced4e..54629acd3 100644 >>>>>>> --- a/tests/ovn.at >>>>>>> +++ b/tests/ovn.at >>>>>>> @@ -2701,8 +2701,7 @@ test_packet() { >>>>>>> echo "output(\"lp$outport\");" >>>>>>> done > expout >>>>>>> >>>>>>> - AT_CAPTURE_FILE([trace]) >>>>>>> - AT_CHECK([ovs-appctl -t ovn-trace trace --all lsw0 "$uflow" | >>>>>>> tee >>>>>>> trace | sed '1,/Minimal trace/d'], [0], [expout]) >>>>>>> + AT_CHECK([ovn_trace_client ovn-trace --minimal lsw0 "$uflow"], >>>>>>> [0], >>>>>>> [expout]) >>>>>>> } >>>>>>> >>>>>>> # test_arp INPORT SHA SPA TPA [REPLY_HA] >>>>>>> @@ -2745,8 +2744,7 @@ output(\"lp$inport\"); >>>>>>> " >>>>>>> fi >>>>>>> >>>>>>> - AT_CAPTURE_FILE([trace]) >>>>>>> - AT_CHECK_UNQUOTED([ovs-appctl -t ovn-trace trace --all lsw0 >>>>>>> "$request" | tee trace | sed '1,/Minimal trace/d'], [0], [$reply]) >>>>>>> + AT_CHECK_UNQUOTED([ovn_trace_client ovn-trace --minimal lsw0 >>>>>>> "$request"], [0], [$reply]) >>>>>>> } >>>>>>> >>>>>>> # Send packets between all pairs of source and destination ports: >>>>>>> @@ -2997,8 +2995,7 @@ test_packet() { >>>>>>> if test $lout != drop; then >>>>>>> echo "output(\"$lout\");" >>>>>>> fi > expout >>>>>>> - AT_CAPTURE_FILE([trace]) >>>>>>> - AT_CHECK([ovn-trace --all $(lsp_to_ls lp$inport) "$uflow" | tee >>>>>>> trace >>>>>>> | sed '1,/Minimal trace/d'], [0], [expout]) >>>>>>> + AT_CHECK([ovn_trace --minimal $(lsp_to_ls lp$inport) "$uflow"], >>>>>>> [0], >>>>>>> [expout]) >>>>>>> >>>>>>> # Then actually send a packet, for an end-to-end test. >>>>>>> local packet=$(echo $dst$src | sed 's/://g')${eth} >>>>>>> @@ -3169,8 +3166,7 @@ test_packet() { >>>>>>> >>>>>>> # First try tracing the packet. >>>>>>> uflow="inport==\"lp-$inport\" && eth.dst==$dst && >>>>>>> eth.src==$src && >>>>>>> eth.type==0x$eth" >>>>>>> - AT_CAPTURE_FILE([trace]) >>>>>>> - AT_CHECK([ovn-trace --all ls-${hv}0 "$uflow" | tee trace | sed >>>>>>> '1,/Minimal trace/d'], [0], [expout]) >>>>>>> + AT_CHECK([ovn_trace --minimal ls-${hv}0 "$uflow"], [0], >>>>>>> [expout]) >>>>>>> >>>>>>> # Then actually send a packet, for an end-to-end test. >>>>>>> local packet=$(echo $dst$src | sed 's/://g')${eth} >>>>>>> @@ -3302,8 +3298,7 @@ test_packet() { >>>>>>> >>>>>>> # First try tracing the packet. >>>>>>> uflow="inport==\"lp-$inport\" && eth.dst==$dst && >>>>>>> eth.src==$src && >>>>>>> eth.type==0x$eth" >>>>>>> - AT_CAPTURE_FILE([trace]) >>>>>>> - AT_CHECK([ovn-trace --all ls-${hv}0 "$uflow" | tee trace | sed >>>>>>> '1,/Minimal trace/d' | sort], [0], [expout]) >>>>>>> + AT_CHECK([ovn_trace --minimal ls-${hv}0 "$uflow" | sort], [0], >>>>>>> [expout]) >>>>>>> >>>>>>> # Then actually send a packet, for an end-to-end test. >>>>>>> local packet=$(echo $dst$src | sed 's/://g')${eth} >>>>>>> @@ -3432,8 +3427,7 @@ test_packet() { >>>>>>> >>>>>>> # First try tracing the packet. >>>>>>> uflow="inport==\"lp-$inport\" && eth.dst==$dst && >>>>>>> eth.src==$src && >>>>>>> eth.type==0x$eth" >>>>>>> - AT_CAPTURE_FILE([trace]) >>>>>>> - AT_CHECK([ovn-trace --all ls-$inport "$uflow" | tee trace | sed >>>>>>> '1,/Minimal trace/d'], [0], [expout]) >>>>>>> + AT_CHECK([ovn_trace --minimal ls-$inport "$uflow"], [0], >>>>>>> [expout]) >>>>>>> >>>>>>> # Then actually send a packet, for an end-to-end test. >>>>>>> local packet=$(echo $dst$src | sed 's/://g')${eth} >>>>>>> @@ -3657,8 +3651,7 @@ test_packet() { >>>>>>> # First try tracing the packet. >>>>>>> uflow="inport==\"lsp$inport\" && eth.dst==$dst && >>>>>>> eth.src==$src && >>>>>>> eth.type==0x$eth && vlan.present==1" >>>>>>> echo "output(\"$lout\");" > expout >>>>>>> - AT_CAPTURE_FILE([trace]) >>>>>>> - AT_CHECK([ovn-trace --all ls "$uflow" | tee trace | sed >>>>>>> '1,/Minimal >>>>>>> trace/d'], [0], [expout]) >>>>>>> + AT_CHECK([ovn_trace --minimal ls "$uflow"], [0], [expout]) >>>>>>> >>>>>>> # Then actually send a packet, for an end-to-end test. >>>>>>> local packet=$(echo $dst$src | sed 's/://g')${eth}fefefefe >>>>>>> @@ -3738,8 +3731,7 @@ test_packet() { >>>>>>> # First try tracing the packet. >>>>>>> uflow="inport==\"lsp$inport\" && eth.dst==$dst && >>>>>>> eth.src==$src && >>>>>>> eth.type==0x$eth && vlan.present==1" >>>>>>> echo "output(\"$lout\");" > expout >>>>>>> - AT_CAPTURE_FILE([trace]) >>>>>>> - AT_CHECK([ovn-trace --all ls "$uflow" | tee trace | sed >>>>>>> '1,/Minimal >>>>>>> trace/d'], [0], [expout]) >>>>>>> + AT_CHECK([ovn_trace --minimal ls "$uflow"], [0], [expout]) >>>>>>> >>>>>>> # Then actually send a packet, for an end-to-end test. >>>>>>> payload=fefefefe >>>>>>> @@ -3816,8 +3808,7 @@ test_packet() { >>>>>>> # First try tracing the packet. >>>>>>> uflow="inport==\"lsp$inport\" && eth.dst==$dst && >>>>>>> eth.src==$src && >>>>>>> eth.type==0x$eth && vlan.present==1" >>>>>>> echo "output(\"$lout\");" > expout >>>>>>> - AT_CAPTURE_FILE([trace]) >>>>>>> - AT_CHECK([ovn-trace --all ls "$uflow" | tee trace | sed >>>>>>> '1,/Minimal >>>>>>> trace/d'], [0], [expout]) >>>>>>> + AT_CHECK([ovn_trace --minimal ls "$uflow"], [0], [expout]) >>>>>>> >>>>>>> # Then actually send a packet, for an end-to-end test. >>>>>>> local packet=$(echo $dst$src | sed 's/://g')${eth}fefefefe >>>>>>> @@ -3867,8 +3858,7 @@ test_packet() { >>>>>>> # First try tracing the packet. >>>>>>> uflow="inport==\"lsp$inport\" && eth.dst==$dst && >>>>>>> eth.src==$src && >>>>>>> eth.type==0x$eth && vlan.present==1" >>>>>>> echo "output(\"$lout\");" > expout >>>>>>> - AT_CAPTURE_FILE([trace]) >>>>>>> - AT_CHECK([ovn-trace --all ls "$uflow" | tee trace | sed >>>>>>> '1,/Minimal >>>>>>> trace/d'], [0], [expout]) >>>>>>> + AT_CHECK([ovn_trace --minimal ls "$uflow"], [0], [expout]) >>>>>>> >>>>>>> # Then actually send a packet, for an end-to-end test. >>>>>>> local packet=$(echo $dst$src | sed 's/://g')${eth}fefefefe >>>>>>> @@ -3917,7 +3907,7 @@ test_packet() { >>>>>>> >>>>>>> # First try tracing the packet. >>>>>>> uflow="inport==\"lsp$inport\" && eth.dst==$dst && >>>>>>> eth.src==$src && >>>>>>> eth.type==0x$eth && vlan.present==1" >>>>>>> - AT_CHECK([ovn-trace --all ls "$uflow" | grep drop], [0], >>>>>>> [ignore]) >>>>>>> + AT_CHECK([ovn_trace ls "$uflow" | grep -q drop], [0]) >>>>>>> >>>>>>> # Then actually send a packet, for an end-to-end test. >>>>>>> local packet=$(echo $dst$src | sed 's/://g')${eth}fefefefe >>>>>>> @@ -4051,8 +4041,7 @@ test_packet() { >>>>>>> # First try tracing the packet. >>>>>>> uflow="inport==\"lp-$inport\" && eth.dst==$dst && >>>>>>> eth.src==$src && >>>>>>> eth.type==0x$eth" >>>>>>> echo "output(\"$lout\");" > expout >>>>>>> - AT_CAPTURE_FILE([trace]) >>>>>>> - AT_CHECK([ovn-trace --all ls1 "$uflow" | tee trace | sed >>>>>>> '1,/Minimal >>>>>>> trace/d'], [0], [expout]) >>>>>>> + AT_CHECK([ovn_trace --minimal ls1 "$uflow"], [0], [expout]) >>>>>>> >>>>>>> # Then actually send a packet, for an end-to-end test. >>>>>>> local packet=$(echo $dst$src | sed 's/://g')${eth} >>>>>>> @@ -9387,7 +9376,7 @@ as hv ovs-appctl -t ovn-controller inject-pkt >>>>>>> "$packet" >>>>>>> >>>>>>> OVS_WAIT_UNTIL([ test 8 = $(grep -c 'acl_log' >>>>>>> hv/ovn-controller.log) ]) >>>>>>> >>>>>>> -AT_CHECK([grep 'acl_log' hv/ovn-controller.log | sed >>>>>>> 's/.*name=/name=/'], >>>>>>> [0], [dnl >>>>>>> +AT_CHECK([grep 'acl_log' hv/ovn-controller.log | sed >>>>>>> 's/.*name=/name=/' | >>>>>>> strip_nw_frag], [0], [dnl >>>>>>> name="drop-flow", verdict=drop, severity=alert, >>>>>>> direction=from-lport: >>>>>>> tcp,vlan_tci=0x0000,dl_src=f0:00:00:00:00:01,dl_dst=f0:00:00:00:00:02,nw_src=192.168.1.2,nw_dst=192.168.1.3,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=4361,tp_dst=81,tcp_flags=syn >>>>>>> name="drop-flow", verdict=drop, severity=alert, >>>>>>> direction=to-lport: >>>>>>> tcp,vlan_tci=0x0000,dl_src=f0:00:00:00:00:01,dl_dst=f0:00:00:00:00:02,nw_src=192.168.1.2,nw_dst=192.168.1.3,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=4361,tp_dst=181,tcp_flags=syn >>>>>>> name="allow-flow", verdict=allow, severity=info, >>>>>>> direction=from-lport: >>>>>>> tcp,vlan_tci=0x0000,dl_src=f0:00:00:00:00:01,dl_dst=f0:00:00:00:00:02,nw_src=192.168.1.2,nw_dst=192.168.1.3,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=4363,tp_dst=83,tcp_flags=syn >>>>>>> @@ -9575,11 +9564,6 @@ check ovs-vsctl add-port br-int vif1 -- set >>>>>>> Interface vif1 external-ids:iface-id >>>>>>> check ovs-vsctl add-port br-int vif2 -- set Interface vif2 >>>>>>> external-ids:iface-id=lp2 options:tx_pcap=vif2-tx.pcap >>>>>>> options:rxq_pcap=vif2-rx.pcap ofport-request=2 >>>>>>> wait_for_ports_up lp1 lp2 >>>>>>> >>>>>>> -AT_CAPTURE_FILE([trace]) >>>>>>> -ovn_trace () { >>>>>>> - ovn-trace --all "$@" | tee trace | sed '1,/Minimal trace/d' >>>>>>> -} >>>>>>> - >>>>>>> # Extracts nw_tos from the final flow from ofproto/trace output >>>>>>> and prints >>>>>>> # it on stdout. Prints "none" if no nw_tos was included. >>>>>>> get_final_nw_tos() { >>>>>>> @@ -9603,7 +9587,7 @@ check_tos() { >>>>>>> echo "checking for tos $1" >>>>>>> (if test $1 != 0; then echo "ip.dscp = $1;"; fi; >>>>>>> echo 'output("lp2");') > expout >>>>>>> - AT_CHECK_UNQUOTED([ovn_trace lsw0 'inport == "lp1" && eth.src == >>>>>>> f0:00:00:00:00:01 && eth.dst == f0:00:00:00:00:02 && ip4.src == >>>>>>> 1.1.1.1 && >>>>>>> ip4.dst == 1.1.1.2'], [0], [expout]) >>>>>>> + AT_CHECK_UNQUOTED([ovn_trace --minimal lsw0 'inport == "lp1" && >>>>>>> eth.src == f0:00:00:00:00:01 && eth.dst == f0:00:00:00:00:02 && >>>>>>> ip4.src == >>>>>>> 1.1.1.1 && ip4.dst == 1.1.1.2'], [0], [expout]) >>>>>>> >>>>>>> # Then re-check with ofproto/trace for a physical packet. >>>>>>> AT_CHECK([ovs-appctl ofproto/trace br-int >>>>>>> 'in_port=1,dl_src=f0:00:00:00:00:01,dl_dst=f0:00:00:00:00:02,dl_type=0x800,nw_src=1.1.1.1,nw_dst=1.1.1.2'], >>>>>>> [0], [stdout-nolog]) >>>>>>> @@ -9612,7 +9596,7 @@ check_tos() { >>>>>>> } >>>>>>> >>>>>>> # check at L2 >>>>>>> -AT_CHECK([ovn_trace lsw0 'inport == "lp1" && eth.src == >>>>>>> f0:00:00:00:00:01 >>>>>>> && eth.dst == f0:00:00:00:00:02'], [0], [output("lp2"); >>>>>>> +AT_CHECK([ovn_trace --minimal lsw0 'inport == "lp1" && eth.src == >>>>>>> f0:00:00:00:00:01 && eth.dst == f0:00:00:00:00:02'], [0], >>>>>>> [output("lp2"); >>>>>>> ]) >>>>>>> AT_CHECK([ovs-appctl ofproto/trace br-int >>>>>>> 'in_port=1,dl_src=f0:00:00:00:00:01,dl_dst=f0:00:00:00:00:02'], [0], >>>>>>> [stdout-nolog]) >>>>>>> AT_CHECK([get_final_nw_tos], [0], [none >>>>>>> @@ -11648,16 +11632,11 @@ echo $expected >> hv3-vif1.expected >>>>>>> OVN_CHECK_PACKETS_UNIQ([hv3/vif1-tx.pcap], [hv3-vif1.expected]) >>>>>>> >>>>>>> #Check ovn-trace over "chassisredirect" port >>>>>>> -AT_CAPTURE_FILE([trace]) >>>>>>> -ovn_trace () { >>>>>>> - ovn-trace --all "$@" | tee trace | sed '1,/Minimal trace/d' >>>>>>> -} >>>>>>> - >>>>>>> echo 'ip.ttl--;' > expout >>>>>>> echo 'eth.src = 00:00:02:01:02:03;' >> expout >>>>>>> echo 'eth.dst = f0:00:00:01:02:04;' >> expout >>>>>>> echo 'output("ln-alice");' >> expout >>>>>>> -AT_CHECK_UNQUOTED([ovn_trace foo 'inport == "foo1" && eth.src == >>>>>>> f0:00:00:01:02:03 && eth.dst == 00:00:01:01:02:03 && ip4.src == >>>>>>> 192.168.1.2 >>>>>>> && ip4.dst == 172.16.1.3 && ip.ttl == 0xff'], [0], [expout]) >>>>>>> +AT_CHECK_UNQUOTED([ovn_trace --minimal foo 'inport == "foo1" && >>>>>>> eth.src >>>>>>> == f0:00:00:01:02:03 && eth.dst == 00:00:01:01:02:03 && ip4.src == >>>>>>> 192.168.1.2 && ip4.dst == 172.16.1.3 && ip.ttl == 0xff'], [0], >>>>>>> [expout]) >>>>>>> >>>>>>> # Create logical port alice1 in alice on hv1 >>>>>>> as hv1 ovs-vsctl -- add-port br-int hv1-vif2 -- \ >>>>>>> @@ -12601,8 +12580,7 @@ test_packet() { >>>>>>> if test $lout != drop; then >>>>>>> echo "output(\"$lout\");" >>>>>>> fi > expout >>>>>>> - AT_CAPTURE_FILE([trace]) >>>>>>> - AT_CHECK([ovn-trace --all ls1 "$uflow" | tee trace | sed >>>>>>> '1,/Minimal >>>>>>> trace/d'], [0], [expout]) >>>>>>> + AT_CHECK([ovn_trace --minimal ls1 "$uflow"], [0], [expout]) >>>>>>> >>>>>>> # Then actually send a packet, for an end-to-end test. >>>>>>> local packet=$(echo $dst$src | sed 's/://g')${eth} >>>>>>> @@ -20758,7 +20736,7 @@ AT_CHECK_UNQUOTED([ovn-sbctl get >>>>>>> controller_event >>>>>>> $uuid event_info:load_balancer >>>>>>> "$uuid_lb2" >>>>>>> ]) >>>>>>> >>>>>>> -AT_CHECK_UNQUOTED([ovn-trace sw0 'inport == "sw0-p11" && eth.src == >>>>>>> 00:00:00:00:00:11 && ip4.dst == 192.168.1.100 && tcp && tcp.dst == >>>>>>> 80' | >>>>>>> grep -q 'event = "empty_lb_backends"'], [0]) >>>>>>> +AT_CHECK_UNQUOTED([ovn_trace sw0 'inport == "sw0-p11" && eth.src == >>>>>>> 00:00:00:00:00:11 && ip4.dst == 192.168.1.100 && tcp && tcp.dst == >>>>>>> 80' | >>>>>>> grep -q 'event = "empty_lb_backends"'], [0]) >>>>>>> >>>>>>> OVN_CLEANUP([hv1], [hv2]) >>>>>>> AT_CLEANUP >>>>>>> @@ -24247,7 +24225,7 @@ wait_for_ports_up >>>>>>> check ovn-nbctl --wait=hv sync >>>>>>> >>>>>>> # Trace with --ovs should see ovs flow related to the ACL >>>>>>> -AT_CHECK([ovn-trace --ovs lsw0 'inport == "lp1" && eth.type == >>>>>>> 0x1234' | >>>>>>> grep "dl_type=0x1234" | grep "cookie"], [0], [ignore]) >>>>>>> +AT_CHECK([ovn_trace --ovs lsw0 'inport == "lp1" && eth.type == >>>>>>> 0x1234' | >>>>>>> grep "dl_type=0x1234" | grep "cookie"], [0], [ignore]) >>>>>>> >>>>>>> # Replace the ACL with same match but different action. >>>>>>> ovn-nbctl acl-del lsw0 -- \ >>>>>>> @@ -24257,7 +24235,7 @@ check ovn-nbctl --wait=hv sync >>>>>>> >>>>>>> # Trace with --ovs should still see the ovs flow related to the >>>>>>> ACL, which >>>>>>> # means the OVS flow is updated with new cookie corresponding to >>>>>>> the new >>>>>>> lflow. >>>>>>> -AT_CHECK([ovn-trace --ovs lsw0 'inport == "lp1" && eth.type == >>>>>>> 0x1234' | >>>>>>> grep "dl_type=0x1234 actions="], [0], [ignore]) >>>>>>> +AT_CHECK([ovn_trace --ovs lsw0 'inport == "lp1" && eth.type == >>>>>>> 0x1234' | >>>>>>> grep "dl_type=0x1234 actions="], [0], [ignore]) >>>>>>> >>>>>>> OVN_CLEANUP([hv1]) >>>>>>> AT_CLEANUP >>>>>>> @@ -24420,7 +24398,7 @@ for s_az in $(seq 1 $n_az); do >>>>>>> ip4 && ip.ttl==64 && ip4.src==$lsp_sip && >>>>>>> ip4.dst==$lsp_dip && >>>>>>> udp && udp.src==53 && udp.dst==4369" >>>>>>> echo "sending: $packet" >>>>>>> - AT_CHECK([ovn-trace --ovs "$packet" > >>>>>>> ${s_az}-${d_az}-$i.ovn-trace]) >>>>>>> + AT_CHECK([ovn_trace --ovs "$packet" > >>>>>>> ${s_az}-${d_az}-$i.ovn-trace]) >>>>>>> AT_CHECK([ovs-appctl -t ovn-controller inject-pkt >>>>>>> "$packet"]) >>>>>>> ovs_inport=$(ovs-vsctl --bare --columns=ofport find >>>>>>> Interface >>>>>>> external-ids:iface-id="$ovn_inport") >>>>>>> >>>>>>> -- >>>>>>> 2.31.1 >>>>>>> >>>>>>> >>>>>>> _______________________________________________ >>>>>>> dev mailing list >>>>>>> [email protected] >>>>>>> https://mail.openvswitch.org/mailman/listinfo/ovs-dev >>>>>>> >>>>>>> >>>>>> Hi Dumitru, >>>>>> >>>>>> looks good to me. >>>>>> >>>>>> Acked-by: Ales Musil <[email protected]> >>>>> >>>>> Oops. Sorry. I just applied the patch and missed your Acked-by. >>>>> >>>>> Thanks for the patch Dumitru. >>>>> >>>>> Numan >>>> >>>> I just backported this patch to branch-22.06 and branch-22.03 to fix >>>> some failing test cases there introduced by: >>>> >>>> * 68e0100236f1db0dfbfbd27e57495824293b7b23 (branch-22.03) >>>> * d6b59b35fb4c0bc174e9f1cace4a1b9b244f3c58 (branch-22.06) >>>> >>> >>> Hi Mark, >>> >>> I think it's fine to backport the test changes so no objection there. >>> >>> But I'm a bit confused about the failures you mentioned and I want to >>> make sure we don't miss anything. These are the CI runs on branches >>> 22.03 and 22.06, with the commits you mentioned applied and they both >>> succeeded: >>> >>> 22.06 https://github.com/ovn-org/ovn/actions/runs/3295861381 >>> 22.03 https://github.com/ovn-org/ovn/actions/runs/3295865279 >>> >>> Are you sure you're not testing locally with a newer version of OVS? >> >> The failures were actually found when I attempted a downstream build of >> ovn 22.06. The build consistently failed with 24 test failures. The >> reason the failures happened was because of the submodule bump in OVS. >> The test failures are the same as was seen upstream here: >> https://github.com/ovn-org/ovn/actions/runs/2810798237/jobs/4435469489 . >> > > Oh, I see what happened. We no longer run tests on the stable branches. > I must have forgotten to cherry pick something when backporting the OVS > submodule bump. > > Let me see if I can figure it out. > > Sorry for the mess. >
I pushed the following missing backports (branch-22.09 was fine): - branch-22.06: 728afe31a0 OVN-CI: Add test cases with monitor-all enabled. 03f1e2f0e8 OVN-CI: remove ddlog test cases. - branch-22.03: 1e2b088211 OVN-CI: Add test cases with monitor-all enabled. 91e1196d97 OVN-CI: remove ddlog test cases. 6c415389b4 Added test cases with ovn-northd parallelization enabled CI should be green and tests should actually be running now. Regards, Dumitru _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
