Hi,
I made some changes to the script above to make the use case work. I have
put access ports and fabric ports to on different bridges by
separating them into br0 and br-underlay. And this configuration works.
So my question is, do access ports and fabric ports have to be on separate
bridges(by design)? Why can't they be in single bridge as in my
earlier script?
-Vasu
====
OVS_TRAFFIC_VSWITCHD_START()
ADD_BR([br-underlay])
ADD_NAMESPACES(at_fp0, at_fp1, at_ap0, at_ap1)
dnl Set up underlay link from host into the namespace using veth pair.
ADD_VETH(fp0, at_fp0, br-underlay, "172.31.1.1/24", "00:00:00:00:01:02")
ADD_VETH(fp1, at_fp1, br-underlay, "172.31.2.1/24", "00:00:00:00:02:02")
ADD_VETH(ap0, at_ap0, br0, "10.1.1.100/24", "00:00:00:00:01:03")
ADD_VETH(ap1, at_ap1, br0, "10.1.2.100/24", "00:00:00:00:02:03")
AT_CHECK([ovs-vsctl set bridge br-underlay
other-config:hwaddr="00:00:00:00:00:01"])
AT_CHECK([ip addr add dev br-underlay "172.31.1.100/24"])
AT_CHECK([ip addr add dev br-underlay "172.31.2.100/24"])
AT_CHECK([ip link set dev br-underlay up])
AT_CHECK([ip link set dev br0 up])
ADD_NATIVE_TUNNEL([vxlan], [at_vxlan_fp0], [at_fp0], [172.31.1.100], [
10.1.1.1/24],
[id 0 dstport 4789])
ADD_NATIVE_TUNNEL([vxlan], [at_vxlan_fp1], [at_fp1], [172.31.2.100], [
10.1.2.1/24],
[id 0 dstport 4789])
AT_CHECK([ovs-vsctl add-port br0 at_vxlan_fp0 -- \
set int at_vxlan_fp0 type=vxlan options:remote_ip=172.31.1.1])
AT_CHECK([ovs-vsctl add-port br0 at_vxlan_fp1 -- \
set int at_vxlan_fp1 type=vxlan options:remote_ip=172.31.2.1])
AT_CHECK([ovs-ofctl add-flow br0 "actions=normal"])
AT_CHECK([ovs-ofctl add-flow br-underlay "actions=normal"])
NS_CHECK_EXEC([at_fp0], [ping -q -c 3 -i 0.3 -w 2 172.31.1.100|
FORMAT_PING], [0], [dnl
3 packets transmitted, 3 received, 0% packet loss, time 0ms
])
NS_CHECK_EXEC([at_fp1], [ping -q -c 3 -i 0.3 -w 2 172.31.2.100|
FORMAT_PING], [0], [dnl
3 packets transmitted, 3 received, 0% packet loss, time 0ms
])
NS_CHECK_EXEC([at_fp0], [ping -q -c 3 -i 0.3 -w 2 10.1.1.100 |
FORMAT_PING], [0], [dnl
3 packets transmitted, 3 received, 0% packet loss, time 0ms
])
NS_CHECK_EXEC([at_fp1], [ping -q -c 3 -i 0.3 -w 2 10.1.2.100 |
FORMAT_PING], [0], [dnl
3 packets transmitted, 3 received, 0% packet loss, time 0ms
])
OVS_TRAFFIC_VSWITCHD_STOP
AT_CLEANUP
*Vasu Dasari*
On Sun, May 3, 2020 at 11:12 PM Vasu Dasari <[email protected]> wrote:
> Hi,
>
> I am trying a userspace vxlan test case scenario as follows. ap0, fp0, ap1
> and fp1 are namespaces where in packets from ap0 are sent to fp0 over vxlan
> tunnel and packets from ap1 to fp1 are sent over second vxlan tunnel. And
> br0 for the bridge is handling ARP, route, etc. Note that br0 has two
> addresses on assigned to it.
>
> On executing the script with following command:
> sudo make -s -C _build-gcc/ check-system-userspace TESTSUITEFLAGS='-k
> "modified ping over vxlan tunnel"'
>
> I see that OVS times out and leaving behind br0 and ovs-netdev interfaces.
> But, if I comment out the one of the addresses on br0 at least the script
> will be successful but the ping on second tunnel will not be successful.
>
> My question is:
> 1. Is this use case supported in userspace OVS mode?
> 2. Am I missing something in configuration?
>
> Thanks
> -Vasu
>
>
> +------+
> +---+ | | +---+
> |ap0+------+ +------+fp0|
> +---+ | | +---+
> | ovs |
> +---+ | br0 | +---+
> |ap1+------+ +------+fp1|
> +---+ | | +---+
> +------+
>
>
>
>
> ======
> AT_SETUP([datapath - modified ping over vxlan tunnel])
> OVS_CHECK_VXLAN()
>
> OVS_TRAFFIC_VSWITCHD_START()
>
> ADD_NAMESPACES(at_fp0, at_fp1, at_ap0, at_ap1)
>
> dnl Set up underlay link from host into the namespace using veth pair.
> ADD_VETH(fp0, at_fp0, br0, "172.31.1.1/24", "00:00:00:00:01:02")
> ADD_VETH(ap0, at_ap0, br0, "10.1.1.100/24", "00:00:00:00:01:03")
> ADD_VETH(fp1, at_fp1, br0, "172.31.2.1/24", "00:00:00:00:02:02")
> ADD_VETH(ap1, at_ap1, br0, "10.1.2.100/24", "00:00:00:00:02:03")
>
> AT_CHECK([ovs-vsctl set bridge br0
> other-config:hwaddr="00:00:00:00:00:01"])
> AT_CHECK([ip addr add dev br0 "172.31.1.100/24"])
> AT_CHECK([ip addr add dev br0 "172.31.2.100/24"])
> AT_CHECK([ip link set dev br0 up])
>
> ADD_NATIVE_TUNNEL([vxlan], [at_vxlan_fp0], [at_fp0], [172.31.1.100], [
> 10.1.1.1/24],
> [id 0 dstport 4789])
> ADD_NATIVE_TUNNEL([vxlan], [at_vxlan_fp1], [at_fp1], [172.31.2.100], [
> 10.1.2.1/24],
> [id 0 dstport 4789])
>
> dnl AT_CHECK([ovs-appctl vlog/set tnl_ports:dbg dpif_netdev:dbg
> ofproto_dpif_upcall:dbg tunnel:dbg])
> dnl NS_CHECK_EXEC([at_fp1], [arp -s 172.31.2.100 00:00:00:00:00:01])
>
> AT_CHECK([ovs-vsctl add-port br0 at_vxlan_fp0 -- \
> set int at_vxlan_fp0 type=vxlan
> options:remote_ip=172.31.1.1])
> AT_CHECK([ovs-vsctl add-port br0 at_vxlan_fp1 -- \
> set int at_vxlan_fp1 type=vxlan
> options:remote_ip=172.31.2.1])
>
> AT_DATA([flows.txt], [dnl
> priority=0,actions=normal
> ])
>
> OVS_TRAFFIC_VSWITCHD_STOP
> AT_CLEANUP
> ================
>
> *Vasu Dasari*
>
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev