On Tue, Nov 14, 2023 at 12:02:00PM +0100, Paolo Abeni wrote:
> I personally would like sort of both :) e.g. lib function(s) to
> automatically create and dispose netns, and retain a script-
> specific/related name prefix. 
> 
> The library function could optionally set  the newly created namespaces
> name in global variables provided by the caller, e.g.:
> 
> # create 3 namespaces:
> netns_init 3 
> 
> # create 3 namespaces and set the global variables:
> # $remote, $local $me 
> # to their respective names
> netns_init 3 remote local me
> 
> The trick to do such assignment would be using the 'eval' statement,
> something alike
> 
> netns_init()
> {
>       # create the netns
> 
>       shift
>       while [ -n "$1" ]; do
>               eval $1=$NETNS_NAMES[0]
>               shift
>       done
> }
> 
> While at that, it would be useful to package some common helper e.g. to
> wait for a (tcp) listener to be created (available) on a given port.
> 
> WDYT?

Thanks, this is a good idea. I reviewed all the test cases and it should works
for most of them. Only the SRv6 tests are a little complex as they use 2 id
number for netns name. e.g. the setup_hs() in
srv6_end_dt46_l3vpn_test.sh. I plan to add the tmp string between the hs/rt and
ids. e.g. hs-xxxxxx-t100-1, rt-xxxxxx-1. I will have a try first.

Cheers
Hangbin

Reply via email to