diff mbox series

[ovs-dev,v2,4/7] system-tests: Replace use of ADD_INT with ADD_VETH

Message ID 20230221123207.273514-5-amusil@redhat.com
State Superseded
Headers show
Series Enable system tests over userspace datapath in CI | 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

Ales Musil Feb. 21, 2023, 12:32 p.m. UTC
The ADD_INT does not work very well with userspace datapath.
To avoid any warnings that might fail the tests
use ADD_VETH instead. Also encourage this in
documentation for ADD_INT, because there should
be good reasoning behind using internal interface.

Signed-off-by: Ales Musil <amusil@redhat.com>
---
 tests/system-common-macros.at | 20 +-------------------
 tests/system-ovn.at           | 35 +++++++++++++++++++----------------
 2 files changed, 20 insertions(+), 35 deletions(-)

Comments

Simon Horman March 1, 2023, 3:30 p.m. UTC | #1
On Tue, Feb 21, 2023 at 01:32:04PM +0100, Ales Musil wrote:
> The ADD_INT does not work very well with userspace datapath.
> To avoid any warnings that might fail the tests
> use ADD_VETH instead. Also encourage this in
> documentation for ADD_INT, because there should
> be good reasoning behind using internal interface.

I verified that it doesn't work work well,
but I I think it would be good to expand on why.

> Signed-off-by: Ales Musil <amusil@redhat.com>
> ---
>  tests/system-common-macros.at | 20 +-------------------
>  tests/system-ovn.at           | 35 +++++++++++++++++++----------------
>  2 files changed, 20 insertions(+), 35 deletions(-)
> 
> diff --git a/tests/system-common-macros.at b/tests/system-common-macros.at
> index d65f359a6..2b23f89b0 100644
> --- a/tests/system-common-macros.at
> +++ b/tests/system-common-macros.at
> @@ -49,6 +49,7 @@ m4_define([ADD_BR], [ovs-vsctl _ADD_BR([$1]) -- $2])
>  # Add an internal port to 'ovs-br', then shift it into 'namespace' and
>  # configure it with 'ip_addr' (specified in CIDR notation).
>  # Optionally add an ipv6 address
> +# The ADD_VETH should be used instead if possible.

Likewise, here.
I think it would be good to explain why.
Or in which cases one may chose ADD_INT over ADD_VETH.

>  m4_define([ADD_INT],
>      [ AT_CHECK([ovs-vsctl add-port $3 $1 -- set int $1 type=internal])
>        AT_CHECK([ip link set $1 netns $2])
> @@ -60,25 +61,6 @@ m4_define([ADD_INT],
>      ]
>  )
>  
> -# NS_ADD_INT([port], [namespace], [ovs-br], [ip_addr] [mac_addr] [ip6_addr] [default_gw] [default_ipv6_gw])
> -# Create a namespace
> -# Add an internal port to 'ovs-br', then shift it into 'namespace'.
> -# Configure it with 'ip_addr' (specified in CIDR notation) and ip6_addr.
> -# Set mac_addr
> -# Add default gw for ipv4 and ipv6
> -m4_define([NS_ADD_INT],
> -    [ AT_CHECK([ovs-vsctl add-port $3 $1 -- set int $1 type=internal  external_ids:iface-id=$1])
> -      ADD_NAMESPACES($2)
> -      AT_CHECK([ip link set $1 netns $2])
> -      NS_CHECK_EXEC([$2], [ip link set $1 address $5])
> -      NS_CHECK_EXEC([$2], [ip link set dev $1 up])
> -      NS_CHECK_EXEC([$2], [ip addr add $4 dev $1])
> -      NS_CHECK_EXEC([$2], [ip addr add $6 dev $1])
> -      NS_CHECK_EXEC([$2], [ip route add default via $7 dev $1])
> -      NS_CHECK_EXEC([$2], [ip -6 route add default via $8 dev $1])
> -    ]
> -)
> -

Perhaps I am missing something obvious, but
could this macro be changed / reimplemented / replaced...

>  # ADD_VETH([port], [namespace], [ovs-br], [ip_addr] [mac_addr], [gateway],
>  #          [ip_addr_flags])
>  #
> diff --git a/tests/system-ovn.at b/tests/system-ovn.at
> index 07884dfbe..01112f33e 100644
> --- a/tests/system-ovn.at
> +++ b/tests/system-ovn.at
> @@ -8482,11 +8482,22 @@ check ovn-nbctl lsp-set-addresses ln unknown
>  check ovn-nbctl lr-nat-add lr1 snat 172.16.1.10 192.168.1.0/24
>  check ovn-nbctl lr-nat-add lr1 snat 1711::10 2001::/64
>  
> -NS_ADD_INT(ls1p1, ls1p1, br-int, "192.168.1.1/24", "00:00:00:01:01:01", "2001::1/64", "192.168.1.254", "2001::a" )
> -NS_ADD_INT(ls1p2, ls1p2, br-int, "192.168.1.2/24", "00:00:00:01:01:02", "2001::2/64", "192.168.1.254", "2001::a" )
> +ADD_NAMESPACES(ls1p1)
> +ADD_VETH(ls1p1, ls1p1, br-int, "192.168.1.1/24", "00:00:00:01:01:01", \
> +         "192.168.1.254")
> +NS_CHECK_EXEC([ls1p1], [ip addr add 2001::1/64 dev ls1p1], [0])
> +NS_CHECK_EXEC([ls1p1], [ip route add default via 2001::a dev ls1p1], [0])
> +
> +ADD_NAMESPACES(ls1p2)
> +ADD_VETH(ls1p2, ls1p2, br-int, "192.168.1.2/24", "00:00:00:01:01:02", \
> +         "192.168.1.254")
> +NS_CHECK_EXEC([ls1p2], [ip addr add 2001::2/64 dev ls1p2], [0])
> +NS_CHECK_EXEC([ls1p2], [ip route add default via 2001::a dev ls1p2], [0])

... because this seems a little verbose.
OTOH, maybe its better to open code something that only happens twice.

>  ADD_NAMESPACES(ext1)
> -ADD_INT(ext1, ext1, br0, 172.16.1.1/24, 1711::1/64)
> +ADD_VETH(ext1, ext1, br0, "172.16.1.1/24", "00:ee:00:01:01:01")
> +NS_CHECK_EXEC([ext1], [ip addr add 1711::1/64 dev ext1], [0])

Perhaps not for this patch, but I wonder if there
is a value in allowing ADD_VETH to add multiple addresses.
Or at least 2, for the dual stack situation.

> +
>  check ovn-nbctl --wait=hv sync
>  wait_for_ports_up
>  OVS_WAIT_UNTIL([test "$(ip netns exec ls1p1 ip a | grep 2001::1 | grep tentative)" = ""])
> @@ -8548,25 +8559,17 @@ wait_igmp_flows_installed()
>  }
>  
>  ADD_NAMESPACES(vm1)
> -ADD_INT([vm1], [vm1], [br-int], [42.42.42.1/24])
> -NS_CHECK_EXEC([vm1], [ip link set vm1 address 00:00:00:00:00:01], [0])
> -NS_CHECK_EXEC([vm1], [ip route add default via 42.42.42.5], [0])
> -check ovs-vsctl set Interface vm1 external_ids:iface-id=vm1
> +ADD_VETH(vm1, vm1, br-int, "42.42.42.1/24", "00:00:00:00:00:01", \
> +         "42.42.42.5")
>  
>  ADD_NAMESPACES(vm2)
> -ADD_INT([vm2], [vm2], [br-int], [42.42.42.2/24])
> -NS_CHECK_EXEC([vm2], [ip link set vm2 address 00:00:00:00:00:02], [0])
> -NS_CHECK_EXEC([vm2], [ip link set lo up], [0])
> -check ovs-vsctl set Interface vm2 external_ids:iface-id=vm2
> +ADD_VETH(vm2, vm2, br-int, "42.42.42.2/24", "00:00:00:00:00:02")
>  
>  ADD_NAMESPACES(vm3)
>  NETNS_DAEMONIZE([vm3], [tcpdump -n -i any -nnleX > vm3.pcap 2>/dev/null], [tcpdump3.pid])
>  
> -ADD_INT([vm3], [vm3], [br-int], [42.42.42.3/24])
> -NS_CHECK_EXEC([vm3], [ip link set vm3 address 00:00:00:00:00:03], [0])
> -NS_CHECK_EXEC([vm3], [ip link set lo up], [0])
> -NS_CHECK_EXEC([vm3], [ip route add default via 42.42.42.5], [0])
> -check ovs-vsctl set Interface vm3 external_ids:iface-id=vm3
> +ADD_VETH(vm3, vm3, br-int, "42.42.42.3/24", "00:00:00:00:00:03", \
> +         "42.42.42.5")
>  
>  NS_CHECK_EXEC([vm2], [sysctl -w net.ipv4.igmp_max_memberships=100], [ignore], [ignore])
>  NS_CHECK_EXEC([vm3], [sysctl -w net.ipv4.igmp_max_memberships=100], [ignore], [ignore])
Ales Musil March 1, 2023, 4 p.m. UTC | #2
On Wed, Mar 1, 2023 at 4:30 PM Simon Horman <simon.horman@corigine.com>
wrote:

> On Tue, Feb 21, 2023 at 01:32:04PM +0100, Ales Musil wrote:
> > The ADD_INT does not work very well with userspace datapath.
> > To avoid any warnings that might fail the tests
> > use ADD_VETH instead. Also encourage this in
> > documentation for ADD_INT, because there should
> > be good reasoning behind using internal interface.
>
> I verified that it doesn't work work well,
> but I I think it would be good to expand on why.
>

I'll update the commit message in v3 to reflect that.


>
> > Signed-off-by: Ales Musil <amusil@redhat.com>
> > ---
> >  tests/system-common-macros.at | 20 +-------------------
> >  tests/system-ovn.at           | 35 +++++++++++++++++++----------------
> >  2 files changed, 20 insertions(+), 35 deletions(-)
> >
> > diff --git a/tests/system-common-macros.at b/tests/
> system-common-macros.at
> > index d65f359a6..2b23f89b0 100644
> > --- a/tests/system-common-macros.at
> > +++ b/tests/system-common-macros.at
> > @@ -49,6 +49,7 @@ m4_define([ADD_BR], [ovs-vsctl _ADD_BR([$1]) -- $2])
> >  # Add an internal port to 'ovs-br', then shift it into 'namespace' and
> >  # configure it with 'ip_addr' (specified in CIDR notation).
> >  # Optionally add an ipv6 address
> > +# The ADD_VETH should be used instead if possible.
>
> Likewise, here.
> I think it would be good to explain why.
> Or in which cases one may chose ADD_INT over ADD_VETH.
>

Same here.


>
> >  m4_define([ADD_INT],
> >      [ AT_CHECK([ovs-vsctl add-port $3 $1 -- set int $1 type=internal])
> >        AT_CHECK([ip link set $1 netns $2])
> > @@ -60,25 +61,6 @@ m4_define([ADD_INT],
> >      ]
> >  )
> >
> > -# NS_ADD_INT([port], [namespace], [ovs-br], [ip_addr] [mac_addr]
> [ip6_addr] [default_gw] [default_ipv6_gw])
> > -# Create a namespace
> > -# Add an internal port to 'ovs-br', then shift it into 'namespace'.
> > -# Configure it with 'ip_addr' (specified in CIDR notation) and ip6_addr.
> > -# Set mac_addr
> > -# Add default gw for ipv4 and ipv6
> > -m4_define([NS_ADD_INT],
> > -    [ AT_CHECK([ovs-vsctl add-port $3 $1 -- set int $1 type=internal
> external_ids:iface-id=$1])
> > -      ADD_NAMESPACES($2)
> > -      AT_CHECK([ip link set $1 netns $2])
> > -      NS_CHECK_EXEC([$2], [ip link set $1 address $5])
> > -      NS_CHECK_EXEC([$2], [ip link set dev $1 up])
> > -      NS_CHECK_EXEC([$2], [ip addr add $4 dev $1])
> > -      NS_CHECK_EXEC([$2], [ip addr add $6 dev $1])
> > -      NS_CHECK_EXEC([$2], [ip route add default via $7 dev $1])
> > -      NS_CHECK_EXEC([$2], [ip -6 route add default via $8 dev $1])
> > -    ]
> > -)
> > -
>
> Perhaps I am missing something obvious, but
> could this macro be changed / reimplemented / replaced...
>

Probably not needed at all if we extend the ADD_VETH.


>
> >  # ADD_VETH([port], [namespace], [ovs-br], [ip_addr] [mac_addr],
> [gateway],
> >  #          [ip_addr_flags])
> >  #
> > diff --git a/tests/system-ovn.at b/tests/system-ovn.at
> > index 07884dfbe..01112f33e 100644
> > --- a/tests/system-ovn.at
> > +++ b/tests/system-ovn.at
> > @@ -8482,11 +8482,22 @@ check ovn-nbctl lsp-set-addresses ln unknown
> >  check ovn-nbctl lr-nat-add lr1 snat 172.16.1.10 192.168.1.0/24
> >  check ovn-nbctl lr-nat-add lr1 snat 1711::10 2001::/64
> >
> > -NS_ADD_INT(ls1p1, ls1p1, br-int, "192.168.1.1/24",
> "00:00:00:01:01:01", "2001::1/64", "192.168.1.254", "2001::a" )
> > -NS_ADD_INT(ls1p2, ls1p2, br-int, "192.168.1.2/24",
> "00:00:00:01:01:02", "2001::2/64", "192.168.1.254", "2001::a" )
> > +ADD_NAMESPACES(ls1p1)
> > +ADD_VETH(ls1p1, ls1p1, br-int, "192.168.1.1/24", "00:00:00:01:01:01", \
> > +         "192.168.1.254")
> > +NS_CHECK_EXEC([ls1p1], [ip addr add 2001::1/64 dev ls1p1], [0])
> > +NS_CHECK_EXEC([ls1p1], [ip route add default via 2001::a dev ls1p1],
> [0])
> > +
> > +ADD_NAMESPACES(ls1p2)
> > +ADD_VETH(ls1p2, ls1p2, br-int, "192.168.1.2/24", "00:00:00:01:01:02", \
> > +         "192.168.1.254")
> > +NS_CHECK_EXEC([ls1p2], [ip addr add 2001::2/64 dev ls1p2], [0])
> > +NS_CHECK_EXEC([ls1p2], [ip route add default via 2001::a dev ls1p2],
> [0])
>
> ... because this seems a little verbose.
> OTOH, maybe its better to open code something that only happens twice.
>
> >  ADD_NAMESPACES(ext1)
> > -ADD_INT(ext1, ext1, br0, 172.16.1.1/24, 1711::1/64)
> > +ADD_VETH(ext1, ext1, br0, "172.16.1.1/24", "00:ee:00:01:01:01")
> > +NS_CHECK_EXEC([ext1], [ip addr add 1711::1/64 dev ext1], [0])
>
> Perhaps not for this patch, but I wonder if there
> is a value in allowing ADD_VETH to add multiple addresses.
> Or at least 2, for the dual stack situation.
>

Yeah it might be a good idea to add this. I'll update it in v3.


>
> > +
> >  check ovn-nbctl --wait=hv sync
> >  wait_for_ports_up
> >  OVS_WAIT_UNTIL([test "$(ip netns exec ls1p1 ip a | grep 2001::1 | grep
> tentative)" = ""])
> > @@ -8548,25 +8559,17 @@ wait_igmp_flows_installed()
> >  }
> >
> >  ADD_NAMESPACES(vm1)
> > -ADD_INT([vm1], [vm1], [br-int], [42.42.42.1/24])
> > -NS_CHECK_EXEC([vm1], [ip link set vm1 address 00:00:00:00:00:01], [0])
> > -NS_CHECK_EXEC([vm1], [ip route add default via 42.42.42.5], [0])
> > -check ovs-vsctl set Interface vm1 external_ids:iface-id=vm1
> > +ADD_VETH(vm1, vm1, br-int, "42.42.42.1/24", "00:00:00:00:00:01", \
> > +         "42.42.42.5")
> >
> >  ADD_NAMESPACES(vm2)
> > -ADD_INT([vm2], [vm2], [br-int], [42.42.42.2/24])
> > -NS_CHECK_EXEC([vm2], [ip link set vm2 address 00:00:00:00:00:02], [0])
> > -NS_CHECK_EXEC([vm2], [ip link set lo up], [0])
> > -check ovs-vsctl set Interface vm2 external_ids:iface-id=vm2
> > +ADD_VETH(vm2, vm2, br-int, "42.42.42.2/24", "00:00:00:00:00:02")
> >
> >  ADD_NAMESPACES(vm3)
> >  NETNS_DAEMONIZE([vm3], [tcpdump -n -i any -nnleX > vm3.pcap
> 2>/dev/null], [tcpdump3.pid])
> >
> > -ADD_INT([vm3], [vm3], [br-int], [42.42.42.3/24])
> > -NS_CHECK_EXEC([vm3], [ip link set vm3 address 00:00:00:00:00:03], [0])
> > -NS_CHECK_EXEC([vm3], [ip link set lo up], [0])
> > -NS_CHECK_EXEC([vm3], [ip route add default via 42.42.42.5], [0])
> > -check ovs-vsctl set Interface vm3 external_ids:iface-id=vm3
> > +ADD_VETH(vm3, vm3, br-int, "42.42.42.3/24", "00:00:00:00:00:03", \
> > +         "42.42.42.5")
> >
> >  NS_CHECK_EXEC([vm2], [sysctl -w net.ipv4.igmp_max_memberships=100],
> [ignore], [ignore])
> >  NS_CHECK_EXEC([vm3], [sysctl -w net.ipv4.igmp_max_memberships=100],
> [ignore], [ignore])
>
>
Thanks,
Ales
Simon Horman March 1, 2023, 8:15 p.m. UTC | #3
On Wed, Mar 01, 2023 at 05:00:24PM +0100, Ales Musil wrote:
> On Wed, Mar 1, 2023 at 4:30 PM Simon Horman <simon.horman@corigine.com>
> wrote:
> 
> > On Tue, Feb 21, 2023 at 01:32:04PM +0100, Ales Musil wrote:
> > > The ADD_INT does not work very well with userspace datapath.
> > > To avoid any warnings that might fail the tests
> > > use ADD_VETH instead. Also encourage this in
> > > documentation for ADD_INT, because there should
> > > be good reasoning behind using internal interface.
> >
> > I verified that it doesn't work work well,
> > but I I think it would be good to expand on why.
> >
> 
> I'll update the commit message in v3 to reflect that.
> 
> 
> >
> > > Signed-off-by: Ales Musil <amusil@redhat.com>
> > > ---
> > >  tests/system-common-macros.at | 20 +-------------------
> > >  tests/system-ovn.at           | 35 +++++++++++++++++++----------------
> > >  2 files changed, 20 insertions(+), 35 deletions(-)
> > >
> > > diff --git a/tests/system-common-macros.at b/tests/
> > system-common-macros.at
> > > index d65f359a6..2b23f89b0 100644
> > > --- a/tests/system-common-macros.at
> > > +++ b/tests/system-common-macros.at
> > > @@ -49,6 +49,7 @@ m4_define([ADD_BR], [ovs-vsctl _ADD_BR([$1]) -- $2])
> > >  # Add an internal port to 'ovs-br', then shift it into 'namespace' and
> > >  # configure it with 'ip_addr' (specified in CIDR notation).
> > >  # Optionally add an ipv6 address
> > > +# The ADD_VETH should be used instead if possible.
> >
> > Likewise, here.
> > I think it would be good to explain why.
> > Or in which cases one may chose ADD_INT over ADD_VETH.
> >
> 
> Same here.

Thanks.

> > >  m4_define([ADD_INT],
> > >      [ AT_CHECK([ovs-vsctl add-port $3 $1 -- set int $1 type=internal])
> > >        AT_CHECK([ip link set $1 netns $2])
> > > @@ -60,25 +61,6 @@ m4_define([ADD_INT],
> > >      ]
> > >  )
> > >
> > > -# NS_ADD_INT([port], [namespace], [ovs-br], [ip_addr] [mac_addr]
> > [ip6_addr] [default_gw] [default_ipv6_gw])
> > > -# Create a namespace
> > > -# Add an internal port to 'ovs-br', then shift it into 'namespace'.
> > > -# Configure it with 'ip_addr' (specified in CIDR notation) and ip6_addr.
> > > -# Set mac_addr
> > > -# Add default gw for ipv4 and ipv6
> > > -m4_define([NS_ADD_INT],
> > > -    [ AT_CHECK([ovs-vsctl add-port $3 $1 -- set int $1 type=internal
> > external_ids:iface-id=$1])
> > > -      ADD_NAMESPACES($2)
> > > -      AT_CHECK([ip link set $1 netns $2])
> > > -      NS_CHECK_EXEC([$2], [ip link set $1 address $5])
> > > -      NS_CHECK_EXEC([$2], [ip link set dev $1 up])
> > > -      NS_CHECK_EXEC([$2], [ip addr add $4 dev $1])
> > > -      NS_CHECK_EXEC([$2], [ip addr add $6 dev $1])
> > > -      NS_CHECK_EXEC([$2], [ip route add default via $7 dev $1])
> > > -      NS_CHECK_EXEC([$2], [ip -6 route add default via $8 dev $1])
> > > -    ]
> > > -)
> > > -
> >
> > Perhaps I am missing something obvious, but
> > could this macro be changed / reimplemented / replaced...
> >
> 
> Probably not needed at all if we extend the ADD_VETH.

Yeah, maybe not.

> > >  # ADD_VETH([port], [namespace], [ovs-br], [ip_addr] [mac_addr],
> > [gateway],
> > >  #          [ip_addr_flags])
> > >  #
> > > diff --git a/tests/system-ovn.at b/tests/system-ovn.at
> > > index 07884dfbe..01112f33e 100644
> > > --- a/tests/system-ovn.at
> > > +++ b/tests/system-ovn.at
> > > @@ -8482,11 +8482,22 @@ check ovn-nbctl lsp-set-addresses ln unknown
> > >  check ovn-nbctl lr-nat-add lr1 snat 172.16.1.10 192.168.1.0/24
> > >  check ovn-nbctl lr-nat-add lr1 snat 1711::10 2001::/64
> > >
> > > -NS_ADD_INT(ls1p1, ls1p1, br-int, "192.168.1.1/24",
> > "00:00:00:01:01:01", "2001::1/64", "192.168.1.254", "2001::a" )
> > > -NS_ADD_INT(ls1p2, ls1p2, br-int, "192.168.1.2/24",
> > "00:00:00:01:01:02", "2001::2/64", "192.168.1.254", "2001::a" )
> > > +ADD_NAMESPACES(ls1p1)
> > > +ADD_VETH(ls1p1, ls1p1, br-int, "192.168.1.1/24", "00:00:00:01:01:01", \
> > > +         "192.168.1.254")
> > > +NS_CHECK_EXEC([ls1p1], [ip addr add 2001::1/64 dev ls1p1], [0])
> > > +NS_CHECK_EXEC([ls1p1], [ip route add default via 2001::a dev ls1p1],
> > [0])
> > > +
> > > +ADD_NAMESPACES(ls1p2)
> > > +ADD_VETH(ls1p2, ls1p2, br-int, "192.168.1.2/24", "00:00:00:01:01:02", \
> > > +         "192.168.1.254")
> > > +NS_CHECK_EXEC([ls1p2], [ip addr add 2001::2/64 dev ls1p2], [0])
> > > +NS_CHECK_EXEC([ls1p2], [ip route add default via 2001::a dev ls1p2],
> > [0])
> >
> > ... because this seems a little verbose.
> > OTOH, maybe its better to open code something that only happens twice.
> >
> > >  ADD_NAMESPACES(ext1)
> > > -ADD_INT(ext1, ext1, br0, 172.16.1.1/24, 1711::1/64)
> > > +ADD_VETH(ext1, ext1, br0, "172.16.1.1/24", "00:ee:00:01:01:01")
> > > +NS_CHECK_EXEC([ext1], [ip addr add 1711::1/64 dev ext1], [0])
> >
> > Perhaps not for this patch, but I wonder if there
> > is a value in allowing ADD_VETH to add multiple addresses.
> > Or at least 2, for the dual stack situation.
> >
> 
> Yeah it might be a good idea to add this. I'll update it in v3.

Great, thanks.
diff mbox series

Patch

diff --git a/tests/system-common-macros.at b/tests/system-common-macros.at
index d65f359a6..2b23f89b0 100644
--- a/tests/system-common-macros.at
+++ b/tests/system-common-macros.at
@@ -49,6 +49,7 @@  m4_define([ADD_BR], [ovs-vsctl _ADD_BR([$1]) -- $2])
 # Add an internal port to 'ovs-br', then shift it into 'namespace' and
 # configure it with 'ip_addr' (specified in CIDR notation).
 # Optionally add an ipv6 address
+# The ADD_VETH should be used instead if possible.
 m4_define([ADD_INT],
     [ AT_CHECK([ovs-vsctl add-port $3 $1 -- set int $1 type=internal])
       AT_CHECK([ip link set $1 netns $2])
@@ -60,25 +61,6 @@  m4_define([ADD_INT],
     ]
 )
 
-# NS_ADD_INT([port], [namespace], [ovs-br], [ip_addr] [mac_addr] [ip6_addr] [default_gw] [default_ipv6_gw])
-# Create a namespace
-# Add an internal port to 'ovs-br', then shift it into 'namespace'.
-# Configure it with 'ip_addr' (specified in CIDR notation) and ip6_addr.
-# Set mac_addr
-# Add default gw for ipv4 and ipv6
-m4_define([NS_ADD_INT],
-    [ AT_CHECK([ovs-vsctl add-port $3 $1 -- set int $1 type=internal  external_ids:iface-id=$1])
-      ADD_NAMESPACES($2)
-      AT_CHECK([ip link set $1 netns $2])
-      NS_CHECK_EXEC([$2], [ip link set $1 address $5])
-      NS_CHECK_EXEC([$2], [ip link set dev $1 up])
-      NS_CHECK_EXEC([$2], [ip addr add $4 dev $1])
-      NS_CHECK_EXEC([$2], [ip addr add $6 dev $1])
-      NS_CHECK_EXEC([$2], [ip route add default via $7 dev $1])
-      NS_CHECK_EXEC([$2], [ip -6 route add default via $8 dev $1])
-    ]
-)
-
 # ADD_VETH([port], [namespace], [ovs-br], [ip_addr] [mac_addr], [gateway],
 #          [ip_addr_flags])
 #
diff --git a/tests/system-ovn.at b/tests/system-ovn.at
index 07884dfbe..01112f33e 100644
--- a/tests/system-ovn.at
+++ b/tests/system-ovn.at
@@ -8482,11 +8482,22 @@  check ovn-nbctl lsp-set-addresses ln unknown
 check ovn-nbctl lr-nat-add lr1 snat 172.16.1.10 192.168.1.0/24
 check ovn-nbctl lr-nat-add lr1 snat 1711::10 2001::/64
 
-NS_ADD_INT(ls1p1, ls1p1, br-int, "192.168.1.1/24", "00:00:00:01:01:01", "2001::1/64", "192.168.1.254", "2001::a" )
-NS_ADD_INT(ls1p2, ls1p2, br-int, "192.168.1.2/24", "00:00:00:01:01:02", "2001::2/64", "192.168.1.254", "2001::a" )
+ADD_NAMESPACES(ls1p1)
+ADD_VETH(ls1p1, ls1p1, br-int, "192.168.1.1/24", "00:00:00:01:01:01", \
+         "192.168.1.254")
+NS_CHECK_EXEC([ls1p1], [ip addr add 2001::1/64 dev ls1p1], [0])
+NS_CHECK_EXEC([ls1p1], [ip route add default via 2001::a dev ls1p1], [0])
+
+ADD_NAMESPACES(ls1p2)
+ADD_VETH(ls1p2, ls1p2, br-int, "192.168.1.2/24", "00:00:00:01:01:02", \
+         "192.168.1.254")
+NS_CHECK_EXEC([ls1p2], [ip addr add 2001::2/64 dev ls1p2], [0])
+NS_CHECK_EXEC([ls1p2], [ip route add default via 2001::a dev ls1p2], [0])
 
 ADD_NAMESPACES(ext1)
-ADD_INT(ext1, ext1, br0, 172.16.1.1/24, 1711::1/64)
+ADD_VETH(ext1, ext1, br0, "172.16.1.1/24", "00:ee:00:01:01:01")
+NS_CHECK_EXEC([ext1], [ip addr add 1711::1/64 dev ext1], [0])
+
 check ovn-nbctl --wait=hv sync
 wait_for_ports_up
 OVS_WAIT_UNTIL([test "$(ip netns exec ls1p1 ip a | grep 2001::1 | grep tentative)" = ""])
@@ -8548,25 +8559,17 @@  wait_igmp_flows_installed()
 }
 
 ADD_NAMESPACES(vm1)
-ADD_INT([vm1], [vm1], [br-int], [42.42.42.1/24])
-NS_CHECK_EXEC([vm1], [ip link set vm1 address 00:00:00:00:00:01], [0])
-NS_CHECK_EXEC([vm1], [ip route add default via 42.42.42.5], [0])
-check ovs-vsctl set Interface vm1 external_ids:iface-id=vm1
+ADD_VETH(vm1, vm1, br-int, "42.42.42.1/24", "00:00:00:00:00:01", \
+         "42.42.42.5")
 
 ADD_NAMESPACES(vm2)
-ADD_INT([vm2], [vm2], [br-int], [42.42.42.2/24])
-NS_CHECK_EXEC([vm2], [ip link set vm2 address 00:00:00:00:00:02], [0])
-NS_CHECK_EXEC([vm2], [ip link set lo up], [0])
-check ovs-vsctl set Interface vm2 external_ids:iface-id=vm2
+ADD_VETH(vm2, vm2, br-int, "42.42.42.2/24", "00:00:00:00:00:02")
 
 ADD_NAMESPACES(vm3)
 NETNS_DAEMONIZE([vm3], [tcpdump -n -i any -nnleX > vm3.pcap 2>/dev/null], [tcpdump3.pid])
 
-ADD_INT([vm3], [vm3], [br-int], [42.42.42.3/24])
-NS_CHECK_EXEC([vm3], [ip link set vm3 address 00:00:00:00:00:03], [0])
-NS_CHECK_EXEC([vm3], [ip link set lo up], [0])
-NS_CHECK_EXEC([vm3], [ip route add default via 42.42.42.5], [0])
-check ovs-vsctl set Interface vm3 external_ids:iface-id=vm3
+ADD_VETH(vm3, vm3, br-int, "42.42.42.3/24", "00:00:00:00:00:03", \
+         "42.42.42.5")
 
 NS_CHECK_EXEC([vm2], [sysctl -w net.ipv4.igmp_max_memberships=100], [ignore], [ignore])
 NS_CHECK_EXEC([vm3], [sysctl -w net.ipv4.igmp_max_memberships=100], [ignore], [ignore])