# DEL_NAMESPACES(ns [, ns ... ]) # # Delete namespaces from the running OS m4_define([DEL_NAMESPACES], [m4_foreach([ns], [$@], [ip netns del ns ]) ] ) # # ADD_NAMESPACES(ns [, ns ... ]) # # Add new namespaces, if ns exists, the old one # will be remove before new ones are installed. m4_define([ADD_NAMESPACES], [m4_foreach([ns], [$@], [DEL_NAMESPACES(ns) AT_CHECK([ip netns add ns]) ON_EXIT(DEL_NAMESPACES(ns)) ]) ] ) # ADD_VETH([port], [namespace], [ovs-br], [ip_addr]) # # Add a pair of veth ports. 'port' will be added to name space 'namespace', # and "ovs-'port'" will be added to ovs bridge 'ovs-br'. # # The 'port' in 'namespace' will be brought up with static IP address # with 'ip_addr' in CIDR notation. # # The existing 'port' or 'ovs-port' will be removed before new ones are added. # m4_define([ADD_VETH], [ AT_CHECK([ip link add $1 type veth peer name ovs-$1]) AT_CHECK([ip link set $1 netns $2]) AT_CHECK([ovs-vsctl add-port $3 ovs-$1]) AT_CHECK([ip link set dev ovs-$1 up]) AT_CHECK([ip netns exec $2 ip addr add $4 dev $1]) AT_CHECK([ip netns exec $2 ip link set dev $1 up]) ] ) # ADD_VLAN([port], [namespace], [vlan-id], [ip-addr]) # # Add a VLAN device named 'port' within 'namespace'. It will be configured # with the ID 'vlan-id' and the address 'ip-addr'. m4_define([ADD_VLAN], [ AT_CHECK([ip netns exec $2 ip link add link $1 name $1.$3 type vlan id $3]) AT_CHECK([ip netns exec $2 ip link set dev $1.$3 up]) AT_CHECK([ip netns exec $2 ip addr add dev $1.$3 $4]) ] )