[ovs-dev] [PATCH] dpif-netdev: Avoid reordering of packets in a batch with same megaflow

Vishal Deep Ajmera vishal.deep.ajmera at ericsson.com
Tue Jun 19 08:45:01 UTC 2018

> I looked into the code and the logic seems good to me.

> But reordering in dataplane also has performance implications especially considering non-TCP traffic. Also, the packets came to OvS may already been out-of-ordered.  Could you provide some performance data points showing  when all EMC hit and mix of EMC-hit and EMC-miss cases, and how is the throughput affected? Also maybe considering only do it for TCP traffic?

Thanks Yipeng for reviewing the patch.

The patch is for *preventing* OVS to do any reordering of packets received in a batch which belongs to same megaflow. OVS should send all packets for a given megaflow in the same order as it receives in the batch.

However if a packet is already received out-of-order from the network itself, OVS cannot put it back in order.

Regarding performance it also depends on application how it treats any out-of-order packet. For e.g. if a TCP application does not use SACK then end point may request retransmissions of packets which are received out-of-order thereby reducing effective throughput. Similarly any delayed (out-of-order) ACK can also cause fast-retransmits from sender side.

As per my understanding in principle if OVS is acting as a L2 switch (NORMAL flow) then it should not change the order of received packets for a given flow since we don't know how an application (Virtual Machine) will react to out-of-order packets.

Warm Regards,
Vishal Ajmera

More information about the dev mailing list