Hi, all

When I self-compiled the OVS-2.6 from commit:

commit 7a0f907b2393626dac1387617355990eab69aef7
Author: Justin Pettit <jpet...@ovn.org>
Date:   Tue Sep 27 10:13:42 2016 -0700

    Set release date for 2.6.0.

    Signed-off-by: Justin Pettit <jpet...@ovn.org>
    Acked-by: Ben Pfaff <b...@ovn.org>

I found that when I using "action=normal", the fdb table will never learn the mac addr in the packets from the patch port, is it a bug?


This issue lead other problems, all packets to patch port will flooding to all ports with the same vlan in the bridge, and I see lots of packet copy.


See below:


# ovs-ofctl show br-int
OFPT_FEATURES_REPLY (xid=0x2): dpid:000072fe77bb5849
n_tables:254, n_buffers:256
capabilities: FLOW_STATS TABLE_STATS PORT_STATS QUEUE_STATS ARP_MATCH_IP
actions: output enqueue set_vlan_vid set_vlan_pcp strip_vlan mod_dl_src mod_dl_dst mod_nw_src mod_nw_dst mod_nw_tos mod_tp_src mod_tp_dst
 1(vhuffc5b772-c6): addr:00:00:00:00:00:00
     config:     0
     state:      LINK_DOWN
     speed: 0 Mbps now, 0 Mbps max
 2(patch-tun): addr:7a:85:c5:7d:2f:da
     config:     0
     state:      0
     speed: 0 Mbps now, 0 Mbps max
 3(vhu88dab7aa-ae): addr:00:00:00:00:00:00
     config:     0
     state:      LINK_DOWN
     speed: 0 Mbps now, 0 Mbps max
 8(vhu29e6e817-63): addr:00:00:00:00:00:00
     config:     0
     state:      0
     speed: 0 Mbps now, 0 Mbps max
 LOCAL(br-int): addr:72:fe:77:bb:58:49
     config:     PORT_DOWN
     state:      LINK_DOWN
     current:    10MB-FD COPPER
     speed: 10 Mbps now, 0 Mbps max
OFPT_GET_CONFIG_REPLY (xid=0x4): frags=normal miss_send_len=0


# ovs-ofctl show br-tun
OFPT_FEATURES_REPLY (xid=0x2): dpid:00007e58c1f5b141
n_tables:254, n_buffers:256
capabilities: FLOW_STATS TABLE_STATS PORT_STATS QUEUE_STATS ARP_MATCH_IP
actions: output enqueue set_vlan_vid set_vlan_pcp strip_vlan mod_dl_src mod_dl_dst mod_nw_src mod_nw_dst mod_nw_tos mod_tp_src mod_tp_dst
 1(patch-int): addr:56:36:bb:1e:ec:c7
     config:     0
     state:      0
     speed: 0 Mbps now, 0 Mbps max
 5(vxlan-c0a8c80b): addr:26:e9:2b:31:62:8b
     config:     0
     state:      0
     speed: 0 Mbps now, 0 Mbps max
 6(vxlan-c0a8c80c): addr:2a:07:0e:84:fd:8e
     config:     0
     state:      0
     speed: 0 Mbps now, 0 Mbps max
 LOCAL(br-tun): addr:7e:58:c1:f5:b1:41
     config:     PORT_DOWN
     state:      LINK_DOWN
     current:    10MB-FD COPPER
     speed: 10 Mbps now, 0 Mbps max
OFPT_GET_CONFIG_REPLY (xid=0x4): frags=normal miss_send_len=0



# ovs-vsctl show
57863254-3c79-4dc7-a6a0-277eb8c741f4
    Bridge br-dpdk
        Port br-dpdk
            Interface br-dpdk
                type: internal
        Port "dpdk0"
            Interface "dpdk0"
                type: dpdk
    Bridge br-int
        fail_mode: secure
        Port patch-tun
            Interface patch-tun
                type: patch
                options: {peer=patch-int}
        Port "vhu29e6e817-63"
            tag: 1
            Interface "vhu29e6e817-63"
                type: dpdkvhostuser
        Port "vhuffc5b772-c6"
            tag: 2
            Interface "vhuffc5b772-c6"
                type: dpdkvhostuser
        Port "vhu88dab7aa-ae"
            tag: 1
            Interface "vhu88dab7aa-ae"
                type: dpdkvhostuser
        Port br-int
            Interface br-int
                type: internal

    Bridge br-tun
        fail_mode: secure
        Port br-tun
            Interface br-tun
                type: internal
        Port "vxlan-c0a8c80b"
            Interface "vxlan-c0a8c80b"
                type: vxlan
options: {df_default="true", in_key=flow, local_ip="192.168.200.14", out_key=flow, remote_ip="192.168.200.11"}
        Port "vxlan-c0a8c80c"
            Interface "vxlan-c0a8c80c"
                type: vxlan
options: {df_default="true", in_key=flow, local_ip="192.168.200.14", out_key=flow, remote_ip="192.168.200.12"}
        Port patch-int
            Interface patch-int
                type: patch
                options: {peer=patch-tun}
    ovs_version: "2.6.0"


Flow Table:

br-int:

ovs-ofctl add-flow br-int "in_port=2,action=output:8"

ovs-ofctl add-flow br-int "in_port=8,action=output:normal"


br-tun

ovs-ofctl add-flow br-tun "in_port=1,action=set_tunnel:0x46,strip_vlan,output:6"

ovs-ofctl add-flow br-tun "in_port=6,action=output:1"


VM using port 8(vhu29e6e817-63)  as vhost-user port:

(creat hugepage first)

/usr/libexec/qemu-kvm -machine pc,accel=kvm,usb=off -cpu host -m 2048 -smp 2,sockets=2,cores=1,threads=1 -drive file=/var/lib/nova/instances/_base/0fc2479281ab0a4ca901b7981122a180f843b2bf -chardev socket,id=charnet0,path=/var/run/openvswitch/vhu29e6e817-63 -netdev type=vhost-user,id=hostnet0,chardev=charnet0 -device virtio-net-pci,netdev=hostnet0,id=net0,mac=fa:16:3e:61:23:ed,bus=pci.0,addr=0x3 -object memory-backend-file,id=ram-node0,prealloc=yes,mem-path=/dev/hugepages/libvirt/qemu,share=yes,size=2147483648,host-nodes=0,policy=bind -numa node,nodeid=0,cpus=0-1,memdev=ram-node0 -vnc 0.0.0.0:0 -k en-us -device cirrus-vga,id=video0,bus=pci.0,addr=0x2


In VM ping another VM in other hosts, which  using native OVS.

Then find in OVS-DPDK:

# ovs-appctl fdb/show br-int
 port  VLAN  MAC                Age
    8     1       fa:16:3e:61:23:ed    1


In OVS(another host, port 4 is patch port.):

 ovs-appctl fdb/show br-int
 port  VLAN  MAC                Age
    6     2       fa:16:3e:09:9d:bc    0
    4     2       fa:16:3e:61:23:ed    0


This issue will cause packets flooding in br-int.

Any sulotions?


--
Thanks,
Michael


_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to