[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.
More information about the dev