Hi Mark, Mark Kavanagh <[email protected]> writes:
> TCP Segmentation Offload (TSO) is a feature which enables > the TCP/IP network stack to delegate segmentation of a TCP > segment to the NIC, thus saving compute resources. > > This commit adds support for TSO in the DPDK vHost-User backend, > to OvS v2.6.1; this enables a guest to offload segmentation of > TCP segments that it sends to OvS. > > This patch is not intended for upstreaming, but rather was produced > in response to requests for an updated version of the initial TSO RFC > patch posted here: > https://mail.openvswitch.org/pipermail/ovs-dev/2016-June/316414.html > > Signed-off-by: Mark Kavanagh <[email protected]> > --- ... > diff --git a/lib/packets.c b/lib/packets.c > index e4c29d5..2417ba2 100644 > --- a/lib/packets.c > +++ b/lib/packets.c > @@ -33,6 +33,10 @@ > #include "dp-packet.h" > #include "unaligned.h" > > +#ifdef DPDK_NETDEV > +#include "rte_ether.h" > +#endif > + > const struct in6_addr in6addr_exact = IN6ADDR_EXACT_INIT; > const struct in6_addr in6addr_all_hosts = IN6ADDR_ALL_HOSTS_INIT; > > @@ -204,6 +208,11 @@ eth_push_vlan(struct dp_packet *packet, ovs_be16 tpid, > ovs_be16 tci) > memmove(veh, (char *)veh + VLAN_HEADER_LEN, 2 * ETH_ADDR_LEN); > veh->veth_type = tpid; > veh->veth_tci = tci & htons(~VLAN_CFI); > + > +#ifdef DPDK_NETDEV > + struct rte_mbuf *pkt = &(packet->mbuf); > + pkt->l2_len += sizeof(struct vlan_hdr); > +#endif > } > > /* Removes outermost VLAN header (if any is present) from 'packet'. > @@ -221,6 +230,11 @@ eth_pop_vlan(struct dp_packet *packet) > memmove((char *)veh + VLAN_HEADER_LEN, veh, 2 * ETH_ADDR_LEN); > dp_packet_resize_l2(packet, -VLAN_HEADER_LEN); > } > + > +#ifdef DPDK_NETDEV > + struct rte_mbuf *pkt = &(packet->mbuf); > + pkt->l2_len -= sizeof(struct vlan_hdr); > +#endif > } > > /* Set ethertype of the packet. */ Would it be better to change the dp_packet_resize_l2 call? Are you worried about the mpls case? _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
