[ovs-discuss] Why all of the packets are dropped at the dpdkvhostuser port?

Charlie Li charlie.li at gmail.com
Mon Aug 8 21:51:44 UTC 2016


Hi Mauricio,

After applying the patch, the packets are flowing to the VM now.

However, even at lower bandwidth, it always has a small percentage of frame
loss.

Is this expected behavior?

Thanks,
Charlie


On Fri, Aug 5, 2016 at 9:22 AM, Charlie Li <charlie.li at gmail.com> wrote:

> Thanks Mauricio,
>
> I will try the patch first.
>
> Regards,
> Charlie
>
> On Fri, Aug 5, 2016 at 4:56 AM, Mauricio Vasquez <
> mauricio.vasquez at polito.it> wrote:
>
>> 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/p
>> atch/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 listdiscuss at openvswitch.orghttp://openvswitch.org/mailman/listinfo/discuss
>>
>>
>> Best Regards,
>>
>> Mauricio V
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://openvswitch.org/pipermail/ovs-discuss/attachments/20160808/dcaf4ee8/attachment-0002.html>


More information about the discuss mailing list