Hi Sugesh and Darrell,
I reviewed this patchset v5 and it LGTM.

I've also tested it with 10 UDP flows, 64B packets and a firewall setup as 
below.
----
table=0, priority=100,ct_state=-trk,ip actions=ct(table=1)
table=0, priority=10,arp actions=NORMAL
table=0, priority=1 actions=drop
table=1, ct_state=+new+trk,ip,in_port=dpdk0 actions=ct(commit),output:dpdk1
table=1, ct_state=+new+trk,ip,in_port=dpdk1 actions=drop
table=1, ct_state=+est+trk,ip,in_port=dpdk0 actions=output:dpdk1
table=1, ct_state=+est+trk,ip,in_port=dpdk1 actions=output:dpdk0
----
PDM threads:  2
2 phy ports
Code was built with CFLAGS="-O2 -march=native -g".
----

The reason I used just a tens of flows is because this way the throughput
is enough high to make any performance changes more evident.

I ran a continuous bi-dir test, ie data were sent at the line-rate from
both sides, regardless of packet loss.
I saw a performance improvement, below my results with three different runs.
For each run I've reported the Rx pkt rates for both sides.

                                         
+---------------+--------------+--------------+
                                         |    Run #1     |   Run #2     |   Run 
#3     |
-----------------------------------------+---------------+--------------+--------------+
Latest master with commit id:            |               |              |       
       |
8a8c1b93b1723e022665950ec0b623dc6b57fbb0 |  (2.62, 2.67) | (2.43, 2.43) | 
(2.58, 2.61) |
-----------------------------------------+---------------+--------------+--------------+
Latest master + this patchset            |  (2.80, 2.86) | (2.67, 2.67) | 
(2.75, 2.79) |
-----------------------------------------+---------------+--------------+--------------+

Below the connections created by the 10 UDP streams.

udp,orig=(src=10.10.10.10,dst=20.20.20.27,sport=63,dport=63),reply=(src=20.20.20.27,dst=10.10.10.10,sport=63,dport=63)
udp,orig=(src=10.10.10.10,dst=20.20.20.26,sport=63,dport=63),reply=(src=20.20.20.26,dst=10.10.10.10,sport=63,dport=63)
udp,orig=(src=10.10.10.10,dst=20.20.20.20,sport=63,dport=63),reply=(src=20.20.20.20,dst=10.10.10.10,sport=63,dport=63)
udp,orig=(src=10.10.10.10,dst=20.20.20.22,sport=63,dport=63),reply=(src=20.20.20.22,dst=10.10.10.10,sport=63,dport=63)
udp,orig=(src=10.10.10.10,dst=20.20.20.25,sport=63,dport=63),reply=(src=20.20.20.25,dst=10.10.10.10,sport=63,dport=63)
udp,orig=(src=10.10.10.10,dst=20.20.20.28,sport=63,dport=63),reply=(src=20.20.20.28,dst=10.10.10.10,sport=63,dport=63)
udp,orig=(src=10.10.10.10,dst=20.20.20.23,sport=63,dport=63),reply=(src=20.20.20.23,dst=10.10.10.10,sport=63,dport=63)
udp,orig=(src=10.10.10.10,dst=20.20.20.21,sport=63,dport=63),reply=(src=20.20.20.21,dst=10.10.10.10,sport=63,dport=63)
udp,orig=(src=10.10.10.10,dst=20.20.20.24,sport=63,dport=63),reply=(src=20.20.20.24,dst=10.10.10.10,sport=63,dport=63)
udp,orig=(src=10.10.10.10,dst=20.20.20.29,sport=63,dport=63),reply=(src=20.20.20.29,dst=10.10.10.10,sport=63,dport=63)


-Antonio

> -----Original Message-----
> From: [email protected] [mailto:ovs-dev-
> [email protected]] On Behalf Of Sugesh Chandran
> Sent: Tuesday, July 11, 2017 5:00 PM
> To: [email protected]; [email protected]
> Subject: [ovs-dev] [PATCH v5 0/2] conntrack : Add support for rx checksum
> offload.
> 
> Conntrack need not verify the checksum of incoming packets if it is
> validated
> by DPDK physical NIC ports.
> Also make use the DPDK rx checksum mask bits along with flags while
> validating
> the reported hardware checksum state.
> 
> v4->v5
>  (No functional changes in this version)
>  - Rebased on latest master.
>  - Added Darrel as co-author and removed the 'suggested by' tag.
>  - Moved the bad checksum validate functions from patch-2 to patch-1.
> 
> v3->v4
>  - Rebased on latest master
>  - Invoke 'checksum_valid' function only when checksum is not validated in
>    hardware. Check the 'validate_checksum' flag first to invoke the
>    'checksum_valid' function accordingly.
> 
> v2->v3
>  - Rebased on latest master.
>  - Updated the existing DPDK checksum validation function to honor hw
> offload
>    masks along with checksum bits reported by hardware.
>  - As suggested by Darrel, Introduced new functions to validate bad
> checksum
>    reported by DPDK.
>  - As proposed by Darrel, modified the conntrack checksum validation to
> check
>    bad checksum first on received packets.
>  - Modified conntrack to validate checksum in software only when it failed
> to
>  - do in hardware. Changed the logic to validate bad and good checksum
> flags
>    reported by hardware.
>  - Added tag 'Suggested-by: Darrell Ball <[email protected]>'.
>  - Removed Acked, Tested by tags from Antonio as the changes has been
>    modified afterwards.
> 
> v1->v2
>  - Rebased on master
>  - Added acked-by and tested-by tags in commit message
> 
> Signed-off-by: Sugesh Chandran <[email protected]>
> Co-authored-by: Darrell Ball <[email protected]>
> Signed-off-by: Darrell Ball <[email protected]>
> 
> Sugesh Chandran (2):
>   dp-packet : Update DPDK rx checksum validation functions.
>   conntrack : Use Rx checksum offload feature on DPDK ports for
>     conntrack.
> 
>  lib/conntrack.c | 63 ++++++++++++++++++++++++++++++++++++----------------
> -----
>  lib/dp-packet.h | 28 +++++++++++++++++++++++--
>  2 files changed, 66 insertions(+), 25 deletions(-)
> 
> --
> 2.7.4
> 
> _______________________________________________
> dev mailing list
> [email protected]
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to