On Thu, May 14, 2020 at 01:42:21PM +0200, Ilya Maximets wrote: > On 3/24/20 11:10 PM, William Tu wrote: > > This patch enables TSO support for non-DPDK use cases, and > > also add check-system-tso testsuite. Before TSO, we have to > > disable checksum offload, allowing the kernel to calculate the > > TCP/UDP packet checsum. With TSO, we can skip the checksum > > validation by enabling checksum offload, and with large packet > > size, we see better performance. > > > > Consider container to container use cases: > > iperf3 -c (ns0) -> veth peer -> OVS -> veth peer -> iperf3 -s (ns1) > > And I got around 6Gbps, similar to TSO with DPDK-enabled. > > > > Signed-off-by: William Tu <[email protected]> > > Acked-by: Flavio Leitner <[email protected]> > > > > This version looks good except the '(DPDK doesn't support)' comment. > It's misleading. DPDK supports partial offloading. > > And a couple of minor style/grammar suggestions: > --- > diff --git a/lib/dp-packet.h b/lib/dp-packet.h > index 4c127e759..0430cca8e 100644 > --- a/lib/dp-packet.h > +++ b/lib/dp-packet.h > @@ -47,6 +47,7 @@ enum OVS_PACKED_ENUM dp_packet_source { > }; > > #define DP_PACKET_CONTEXT_SIZE 64 > + > #ifdef DPDK_NETDEV > #define DEF_OL_FLAG(NAME, DPDK_DEF, GENERIC_DEF) NAME = DPDK_DEF > #else > @@ -58,7 +59,7 @@ enum dp_packet_offload_mask { > /* Value 0 is not used. */ > /* Is the 'rss_hash' valid? */ > DEF_OL_FLAG(DP_PACKET_OL_RSS_HASH, PKT_RX_RSS_HASH, 0x1), > - /* Is the 'flow_mark' valid? (DPDK does not support) */ > + /* Is the 'flow_mark' valid? */ > DEF_OL_FLAG(DP_PACKET_OL_FLOW_MARK, PKT_RX_FDIR_ID, 0x2), > /* Bad L4 checksum in the packet. */ > DEF_OL_FLAG(DP_PACKET_OL_RX_L4_CKSUM_BAD, PKT_RX_L4_CKSUM_BAD, 0x4), > @@ -80,20 +81,20 @@ enum dp_packet_offload_mask { > DEF_OL_FLAG(DP_PACKET_OL_TX_UDP_CKSUM, PKT_TX_UDP_CKSUM, 0x400), > /* Offload SCTP checksum. */ > DEF_OL_FLAG(DP_PACKET_OL_TX_SCTP_CKSUM, PKT_TX_SCTP_CKSUM, 0x800), > - /* Adding new field requres adding to DP_PACKET_OL_SUPPORTED_MASK */ > + /* Adding new field requires adding to DP_PACKET_OL_SUPPORTED_MASK. */ > }; > > -#define DP_PACKET_OL_SUPPORTED_MASK (DP_PACKET_OL_RSS_HASH | \ > - DP_PACKET_OL_FLOW_MARK | \ > - DP_PACKET_OL_RX_L4_CKSUM_BAD | \ > - DP_PACKET_OL_RX_IP_CKSUM_BAD | \ > - DP_PACKET_OL_RX_L4_CKSUM_GOOD| \ > - DP_PACKET_OL_RX_IP_CKSUM_GOOD| \ > - DP_PACKET_OL_TX_TCP_SEG | \ > - DP_PACKET_OL_TX_IPV4 | \ > - DP_PACKET_OL_TX_IPV6 | \ > - DP_PACKET_OL_TX_TCP_CKSUM | \ > - DP_PACKET_OL_TX_UDP_CKSUM | \ > +#define DP_PACKET_OL_SUPPORTED_MASK (DP_PACKET_OL_RSS_HASH | \ > + DP_PACKET_OL_FLOW_MARK | \ > + DP_PACKET_OL_RX_L4_CKSUM_BAD | \ > + DP_PACKET_OL_RX_IP_CKSUM_BAD | \ > + DP_PACKET_OL_RX_L4_CKSUM_GOOD | \ > + DP_PACKET_OL_RX_IP_CKSUM_GOOD | \ > + DP_PACKET_OL_TX_TCP_SEG | \ > + DP_PACKET_OL_TX_IPV4 | \ > + DP_PACKET_OL_TX_IPV6 | \ > + DP_PACKET_OL_TX_TCP_CKSUM | \ > + DP_PACKET_OL_TX_UDP_CKSUM | \ > DP_PACKET_OL_TX_SCTP_CKSUM) > > #define DP_PACKET_OL_TX_L4_MASK (DP_PACKET_OL_TX_TCP_CKSUM | \ > @@ -888,7 +889,7 @@ dp_packet_batch_reset_cutlen(struct dp_packet_batch > *batch) > } > > /* Returns the RSS hash of the packet 'p'. Note that the returned value is > - * correct only if 'dp_packet_rss_valid(p)' returns true */ > + * correct only if 'dp_packet_rss_valid(p)' returns 'true'. */ > static inline uint32_t > dp_packet_get_rss_hash(const struct dp_packet *p) > { > --- > > > With above diff applied for the series: > Acked-by: Ilya Maximets <[email protected]>
Applied to master, thanks! _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
