diff mbox series

[ovs-dev] system-traffic: Fix conntrack test cases which are failing with af_xdp.

Message ID 167871785943.1364140.2513248381359633486.stgit@ebuild.local
State Accepted
Commit 51778134d4c8a84801230b1e5a7d59e180d9e8b5
Headers show
Series [ovs-dev] system-traffic: Fix conntrack test cases which are failing with af_xdp. | expand

Checks

Context Check Description
ovsrobot/apply-robot success apply and check: success
ovsrobot/github-robot-_Build_and_Test success github build: passed
ovsrobot/intel-ovs-compilation success test: success

Commit Message

Eelco Chaudron March 13, 2023, 2:31 p.m. UTC
The recently added test cases below are not passing on the af_xdp
datapath due to tcpdump not working on the OVS ports with this datapath.

  conntrack - ICMP related NAT with single port
  conntrack - ICMPv6 related NAT with single port
  conntrack - ICMP from different source related with NAT

The tests are changed to attach tcpdump on the associated veth port in
the netns. Tests are now passing with all datapaths (afxdp, kernel, userspace,
and offloads).

Fixes: 8bd688063078 ("system-traffic.at: Add icmp error tests while dnatting address and port.")
Fixes: 0a7587034dc9 ("conntrack: Properly unNAT inner header of related traffic.")
Signed-off-by: Eelco Chaudron <echaudro@redhat.com>
---
 tests/system-traffic.at |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

Comments

Ales Musil March 13, 2023, 2:37 p.m. UTC | #1
On Mon, Mar 13, 2023 at 3:31 PM Eelco Chaudron <echaudro@redhat.com> wrote:

> The recently added test cases below are not passing on the af_xdp
> datapath due to tcpdump not working on the OVS ports with this datapath.
>
>   conntrack - ICMP related NAT with single port
>   conntrack - ICMPv6 related NAT with single port
>   conntrack - ICMP from different source related with NAT
>
> The tests are changed to attach tcpdump on the associated veth port in
> the netns. Tests are now passing with all datapaths (afxdp, kernel,
> userspace,
> and offloads).
>
> Fixes: 8bd688063078 ("system-traffic.at: Add icmp error tests while
> dnatting address and port.")
> Fixes: 0a7587034dc9 ("conntrack: Properly unNAT inner header of related
> traffic.")
> Signed-off-by: Eelco Chaudron <echaudro@redhat.com>
> ---
>  tests/system-traffic.at |    8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/tests/system-traffic.at b/tests/system-traffic.at
> index 380372430..2558f3b24 100644
> --- a/tests/system-traffic.at
> +++ b/tests/system-traffic.at
> @@ -3581,7 +3581,7 @@
> table=0,in_port=ovs-p1,ct_state=+trk+rel+rpl,icmp,actions=ovs-p0
>  AT_CHECK([ovs-ofctl --bundle add-flows br0 flows.txt])
>
>  rm p0.pcap
> -OVS_DAEMONIZE([tcpdump -l -U -i ovs-p0 -w p0.pcap 2> tcpdump0_err],
> [tcpdump0.pid])
> +NETNS_DAEMONIZE([at_ns0], [tcpdump -l -U -i p0 -w p0.pcap 2>
> tcpdump0_err], [tcpdump0.pid])
>  OVS_WAIT_UNTIL([grep "listening" tcpdump0_err])
>
>  dnl Send UDP packet from 10.1.1.1:1234 to 10.1.1.240:80
> @@ -6612,7 +6612,7 @@
> table=0,in_port=ovs-p1,ct_state=+trk+rel+rpl,icmp6,actions=ovs-p0
>  AT_CHECK([ovs-ofctl --bundle add-flows br0 flows.txt])
>
>  rm p0.pcap
> -OVS_DAEMONIZE([tcpdump -l -U -i ovs-p0 -w p0.pcap 2> tcpdump0_err],
> [tcpdump0.pid])
> +NETNS_DAEMONIZE([at_ns0], [tcpdump -l -U -i p0 -w p0.pcap 2>
> tcpdump0_err], [tcpdump0.pid])
>  OVS_WAIT_UNTIL([grep "listening" tcpdump0_err])
>
>  dnl Send UDP packet from [[fc00::1]]:1234 to [[fc00::240]]:80
> @@ -7303,7 +7303,7 @@
> table=2,in_port=ovs-server,ip,ct_state=+trk+rpl,actions=output:ovs-client
>  AT_CHECK([ovs-ofctl add-flows br0 flows.txt])
>
>  rm server.pcap
> -OVS_DAEMONIZE([tcpdump -l -U -i ovs-server -w server.pcap
> 2>tcpdump0_err], [tcpdump0.pid])
> +NETNS_DAEMONIZE([server], [tcpdump -l -U -i server -w server.pcap
> 2>tcpdump0_err], [tcpdump0.pid])
>  OVS_WAIT_UNTIL([grep "listening" tcpdump0_err])
>
>  dnl Send UDP client->server
> @@ -7345,7 +7345,7 @@ dnl Check the ICMP error in reply direction
>  AT_CHECK([ovs-appctl dpctl/flush-conntrack zone=42])
>
>  rm client.pcap
> -OVS_DAEMONIZE([tcpdump -l -U -i ovs-client -w client.pcap
> 2>tcpdump1_err], [tcpdump1.pid])
> +NETNS_DAEMONIZE([client], [tcpdump -l -U -i client -w client.pcap
> 2>tcpdump1_err], [tcpdump1.pid])
>  OVS_WAIT_UNTIL([grep "listening" tcpdump1_err])
>
>  dnl Send UDP client->server
>
>
Oops, thanks for fixing it.

Acked-by: Ales Musil <amusil@redhat.com>
Ilya Maximets March 13, 2023, 10:54 p.m. UTC | #2
On 3/13/23 15:37, Ales Musil wrote:
> On Mon, Mar 13, 2023 at 3:31 PM Eelco Chaudron <echaudro@redhat.com> wrote:
> 
>> The recently added test cases below are not passing on the af_xdp
>> datapath due to tcpdump not working on the OVS ports with this datapath.
>>
>>   conntrack - ICMP related NAT with single port
>>   conntrack - ICMPv6 related NAT with single port
>>   conntrack - ICMP from different source related with NAT
>>
>> The tests are changed to attach tcpdump on the associated veth port in
>> the netns. Tests are now passing with all datapaths (afxdp, kernel,
>> userspace,
>> and offloads).
>>
>> Fixes: 8bd688063078 ("system-traffic.at: Add icmp error tests while
>> dnatting address and port.")
>> Fixes: 0a7587034dc9 ("conntrack: Properly unNAT inner header of related
>> traffic.")
>> Signed-off-by: Eelco Chaudron <echaudro@redhat.com>
>> ---
>>  tests/system-traffic.at |    8 ++++----
>>  1 file changed, 4 insertions(+), 4 deletions(-)> Oops, thanks for fixing it.
> 
> Acked-by: Ales Musil <amusil@redhat.com>
> 

Thanks, Eelco and Ales!
Applied and backported down to 2.17.

Best regards, Ilya Maximets.
diff mbox series

Patch

diff --git a/tests/system-traffic.at b/tests/system-traffic.at
index 380372430..2558f3b24 100644
--- a/tests/system-traffic.at
+++ b/tests/system-traffic.at
@@ -3581,7 +3581,7 @@  table=0,in_port=ovs-p1,ct_state=+trk+rel+rpl,icmp,actions=ovs-p0
 AT_CHECK([ovs-ofctl --bundle add-flows br0 flows.txt])
 
 rm p0.pcap
-OVS_DAEMONIZE([tcpdump -l -U -i ovs-p0 -w p0.pcap 2> tcpdump0_err], [tcpdump0.pid])
+NETNS_DAEMONIZE([at_ns0], [tcpdump -l -U -i p0 -w p0.pcap 2> tcpdump0_err], [tcpdump0.pid])
 OVS_WAIT_UNTIL([grep "listening" tcpdump0_err])
 
 dnl Send UDP packet from 10.1.1.1:1234 to 10.1.1.240:80
@@ -6612,7 +6612,7 @@  table=0,in_port=ovs-p1,ct_state=+trk+rel+rpl,icmp6,actions=ovs-p0
 AT_CHECK([ovs-ofctl --bundle add-flows br0 flows.txt])
 
 rm p0.pcap
-OVS_DAEMONIZE([tcpdump -l -U -i ovs-p0 -w p0.pcap 2> tcpdump0_err], [tcpdump0.pid])
+NETNS_DAEMONIZE([at_ns0], [tcpdump -l -U -i p0 -w p0.pcap 2> tcpdump0_err], [tcpdump0.pid])
 OVS_WAIT_UNTIL([grep "listening" tcpdump0_err])
 
 dnl Send UDP packet from [[fc00::1]]:1234 to [[fc00::240]]:80
@@ -7303,7 +7303,7 @@  table=2,in_port=ovs-server,ip,ct_state=+trk+rpl,actions=output:ovs-client
 AT_CHECK([ovs-ofctl add-flows br0 flows.txt])
 
 rm server.pcap
-OVS_DAEMONIZE([tcpdump -l -U -i ovs-server -w server.pcap 2>tcpdump0_err], [tcpdump0.pid])
+NETNS_DAEMONIZE([server], [tcpdump -l -U -i server -w server.pcap 2>tcpdump0_err], [tcpdump0.pid])
 OVS_WAIT_UNTIL([grep "listening" tcpdump0_err])
 
 dnl Send UDP client->server
@@ -7345,7 +7345,7 @@  dnl Check the ICMP error in reply direction
 AT_CHECK([ovs-appctl dpctl/flush-conntrack zone=42])
 
 rm client.pcap
-OVS_DAEMONIZE([tcpdump -l -U -i ovs-client -w client.pcap 2>tcpdump1_err], [tcpdump1.pid])
+NETNS_DAEMONIZE([client], [tcpdump -l -U -i client -w client.pcap 2>tcpdump1_err], [tcpdump1.pid])
 OVS_WAIT_UNTIL([grep "listening" tcpdump1_err])
 
 dnl Send UDP client->server