Hello Charlie,

On 08/04/2016 09:22 PM, Charlie Li wrote:
Hi All,

I set up a bridge with 2 dpdk ports and 2 dpdkvhostuser ports. And 4 flows are configured as the follows

PHY0 -> dpdk port0 -> dpdkvhostuser port0 -> VM eth-ens3
PHY0 <- dpdk port0 <- dpdkvhostuser port0 <- VM eth-ens3
----------------------------------------------------------------------------------------------------------
PHY1 -> dpdk port1 -> dpdkvhostuser port1 -> VM eth-ens4
PHY1 <- dpdk port1 <- dpdkvhostuser port1 <- VM eth-ens4

All of the packets from the VM are passed to the PHY. No problem.

But all of the packets from the PHY are dropped at the dpdkvhostuser port, and cannot be passed to the VM.

Why one direction does not work while the other direction works fine?

Any help is appreciated!

Thanks,

Charlie

-------------------------------------------------------------------------------------------------------
More details
-------------------------------------------------------------------------------------------------------
DPDK 2.2.0; OVS 2.5.0; Both host and VM is Fedora 23


It is a known problem in OVS 2.5.0, please refer to:
http://openvswitch.org/pipermail/dev/2016-March/068282.html

The possible solutions are:
- Use a newer version of OVS (If you use master you have to use DPDK 16.07)
- Apply this patch to ovs 2.5.0: https://patchwork.ozlabs.org/patch/602752/
- Use a qemu version greater or equal to 2.5

#### Bridge and port config

$ sudo ./ovs-vsctl show
fa6781bf-0204-4593-ad99-bf6a3843c6c8
    Bridge "br0"
        Port "vhost0"
            Interface "vhost0"
                type: dpdkvhostuser
        Port "vhost1"
            Interface "vhost1"
                type: dpdkvhostuser
        Port "br0"
            Interface "br0"
                type: internal
        Port "dpdk0"
            Interface "dpdk0"
                type: dpdk
        Port "dpdk1"
            Interface "dpdk1"
                type: dpdk

$ sudo ./ovs-vsctl list-ports br0
dpdk0
dpdk1
vhost0
vhost1

#### Before sending traffic to PHY

$ sudo ./ovs-ofctl dump-flows br0
NXST_FLOW reply (xid=0x4):
cookie=0x0, duration=260.837s, table=0, n_packets=0, n_bytes=0, idle_age=260, in_port=1 actions=output:3 cookie=0x0, duration=260.817s, table=0, n_packets=0, n_bytes=0, idle_age=260, in_port=2 actions=output:4 cookie=0x0, duration=260.799s, table=0, n_packets=48, n_bytes=7968, idle_age=6, in_port=3 actions=output:1 cookie=0x0, duration=260.781s, table=0, n_packets=48, n_bytes=7968, idle_age=7, in_port=4 actions=output:2

$ sudo ./ovs-ofctl dump-ports br0
OFPST_PORT reply (xid=0x2): 5 ports
  port  4: rx pkts=48, bytes=7968, drop=?, errs=0, frame=?, over=?, crc=?
           tx pkts=0, bytes=0, drop=0, errs=?, coll=?
  port  2: rx pkts=0, bytes=0, drop=0, errs=0, frame=?, over=?, crc=?
           tx pkts=48, bytes=7968, drop=0, errs=0, coll=?
  port  1: rx pkts=0, bytes=0, drop=0, errs=0, frame=?, over=?, crc=?
           tx pkts=48, bytes=7968, drop=0, errs=0, coll=?
  port  3: rx pkts=48, bytes=7968, drop=?, errs=0, frame=?, over=?, crc=?
           tx pkts=0, bytes=0, drop=0, errs=?, coll=?
  port LOCAL: rx pkts=0, bytes=0, drop=0, errs=0, frame=0, over=0, crc=0
           tx pkts=0, bytes=0, drop=0, errs=0, coll=0


#### After sending traffic to PHY

$ sudo ./ovs-ofctl dump-flows br0
NXST_FLOW reply (xid=0x4):
cookie=0x0, duration=330.842s, table=0, n_packets=29069777, n_bytes=1802326154, idle_age=32, in_port=1 actions=output:3 cookie=0x0, duration=330.822s, table=0, n_packets=29069777, n_bytes=1802326154, idle_age=32, in_port=2 actions=output:4 cookie=0x0, duration=330.804s, table=0, n_packets=50, n_bytes=8652, idle_age=56, in_port=3 actions=output:1 cookie=0x0, duration=330.786s, table=0, n_packets=50, n_bytes=8652, idle_age=52, in_port=4 actions=output:2

$ sudo ./ovs-ofctl dump-ports br0
OFPST_PORT reply (xid=0x2): 5 ports
  port  4: rx pkts=50, bytes=8652, drop=?, errs=0, frame=?, over=?, crc=?
           tx pkts=0, bytes=0, drop=29069777, errs=?, coll=?
port 2: rx pkts=29069777, bytes=1802326154, drop=0, errs=0, frame=?, over=?, crc=?
           tx pkts=50, bytes=8652, drop=0, errs=0, coll=?
port 1: rx pkts=29069777, bytes=1802326154, drop=0, errs=0, frame=?, over=?, crc=?
           tx pkts=50, bytes=8652, drop=0, errs=0, coll=?
  port  3: rx pkts=50, bytes=8652, drop=?, errs=0, frame=?, over=?, crc=?
           tx pkts=0, bytes=0, drop=29069777, errs=?, coll=?
  port LOCAL: rx pkts=0, bytes=0, drop=0, errs=0, frame=0, over=0, crc=0
           tx pkts=0, bytes=0, drop=0, errs=0, coll=0



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

Best Regards,

Mauricio V
_______________________________________________
discuss mailing list
discuss@openvswitch.org
http://openvswitch.org/mailman/listinfo/discuss

Reply via email to