diff mbox series

[ovs-dev] multinode tests: Bring down and up the eth1 before each test.

Message ID 20260713224505.417851-1-numans@ovn.org
State Accepted
Delegated to: Dumitru Ceara
Headers show
Series [ovs-dev] multinode tests: Bring down and up the eth1 before each test. | expand

Checks

Context Check Description
ovsrobot/apply-robot success apply and check: success
ovsrobot/github-robot-_Build_and_Test success github build: passed
ovsrobot/github-robot-_ovn-kubernetes success github build: passed

Commit Message

Numan Siddique July 13, 2026, 10:45 p.m. UTC
From: Numan Siddique <numans@ovn.org>

Recently added multinode test - "ovn multinode stateless NAT - icmp4
PMTUD inner src un-NAT" is failing in CI.  During debugging found that when
1100 size packet is sent out, the namespace 'sw0p1' receives the below
frag needed icmp error message

[root@ovn-chassis-1 /]# ip netns exec sw0p1 ping -c 10 -i 0.5 -s 1100 -M do 172.20.1.2
PING 172.20.1.2 (172.20.1.2) 1100(1128) bytes of data.
From 172.20.1.2 icmp_seq=1 Frag needed and DF set (mtu = 942)
...

Where as the test expects (mtu = 1100) message. Further debugging found
that this frag needed is sent by 'ovn-chassis-1' itself.  Where as
I was expecting the packet to be tunnelled to 'ovn-gw-1' and the external
interface 'ovn-ext0' namespace networking stack to generate the
icmp error msg.

Looks like some previously generated icmp need frag is learnt
(from an earlier test) and the host kernel in ovn-chassis-1 is
probably adding a route exception with mtu 942.

Bringing down and then up of the interface eth1 fixes the
issue.

The test failure can also be reproduced locally by runing
the same test twice. The test fails the second time.

Fixes: e44e18f46ace ("northd: Emit inner-IP rewrite flow for stateless DNAT.")

Signed-off-by: Numan Siddique <numans@ovn.org>
---
 tests/multinode-macros.at | 6 ++++++
 1 file changed, 6 insertions(+)

Comments

Dumitru Ceara July 16, 2026, 6:50 p.m. UTC | #1
On 7/14/26 12:45 AM, numans@ovn.org wrote:
> From: Numan Siddique <numans@ovn.org>
> 
> Recently added multinode test - "ovn multinode stateless NAT - icmp4
> PMTUD inner src un-NAT" is failing in CI.  During debugging found that when
> 1100 size packet is sent out, the namespace 'sw0p1' receives the below
> frag needed icmp error message
> 
> [root@ovn-chassis-1 /]# ip netns exec sw0p1 ping -c 10 -i 0.5 -s 1100 -M do 172.20.1.2
> PING 172.20.1.2 (172.20.1.2) 1100(1128) bytes of data.
> From 172.20.1.2 icmp_seq=1 Frag needed and DF set (mtu = 942)
> ...
> 
> Where as the test expects (mtu = 1100) message. Further debugging found
> that this frag needed is sent by 'ovn-chassis-1' itself.  Where as
> I was expecting the packet to be tunnelled to 'ovn-gw-1' and the external
> interface 'ovn-ext0' namespace networking stack to generate the
> icmp error msg.
> 
> Looks like some previously generated icmp need frag is learnt
> (from an earlier test) and the host kernel in ovn-chassis-1 is
> probably adding a route exception with mtu 942.
> 
> Bringing down and then up of the interface eth1 fixes the
> issue.
> 
> The test failure can also be reproduced locally by runing
> the same test twice. The test fails the second time.
> 
> Fixes: e44e18f46ace ("northd: Emit inner-IP rewrite flow for stateless DNAT.")
> 
> Signed-off-by: Numan Siddique <numans@ovn.org>
> ---

Hi Numan,

Thanks for the fix, applied to main!

>  tests/multinode-macros.at | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/tests/multinode-macros.at b/tests/multinode-macros.at
> index 4a74d51277..96dba4ff5e 100644
> --- a/tests/multinode-macros.at
> +++ b/tests/multinode-macros.at
> @@ -234,6 +234,12 @@ cleanup_multinode_resources_by_nodes() {
>          for i in $(m_as $c ovs-vsctl --bare --columns name list port | grep patch); do
>              m_as $c ovs-vsctl del-port $i;
>          done
> +
> +        # Bring down and then up the eth1 interface.
> +        # Its possible that previous test runs may have some cached routes

Typo: s/Its/It's/

> +        # which could affect the other tests.
> +        m_as $c ip link set eth1 down
> +        m_as $c ip link set eth1 up
>      done
>  }
>  

Regards,
Dumitru
diff mbox series

Patch

diff --git a/tests/multinode-macros.at b/tests/multinode-macros.at
index 4a74d51277..96dba4ff5e 100644
--- a/tests/multinode-macros.at
+++ b/tests/multinode-macros.at
@@ -234,6 +234,12 @@  cleanup_multinode_resources_by_nodes() {
         for i in $(m_as $c ovs-vsctl --bare --columns name list port | grep patch); do
             m_as $c ovs-vsctl del-port $i;
         done
+
+        # Bring down and then up the eth1 interface.
+        # Its possible that previous test runs may have some cached routes
+        # which could affect the other tests.
+        m_as $c ip link set eth1 down
+        m_as $c ip link set eth1 up
     done
 }