mirror of
https://github.com/openvswitch/ovs
synced 2025-08-31 14:25:26 +00:00
netdev-dpdk: Clear inner packet marks if no inner offloads requested.
In some cases only outer offloads may be requested for a tunneled
packet. In this case there is no need to mark the type of an
inner packet. Clean these flags up to avoid potential confusion
of DPDK drivers.
Fixes: 084c808729
("userspace: Support VXLAN and GENEVE TSO.")
Acked-by: Mike Pattrick <mkp@redhat.com>
Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
This commit is contained in:
@@ -2607,6 +2607,15 @@ netdev_dpdk_prep_hwol_packet(struct netdev_dpdk *dev, struct rte_mbuf *mbuf)
|
||||
(char *) dp_packet_eth(pkt);
|
||||
mbuf->outer_l3_len = (char *) dp_packet_l4(pkt) -
|
||||
(char *) dp_packet_l3(pkt);
|
||||
|
||||
/* If neither inner checksums nor TSO is requested, inner marks
|
||||
* should not be set. */
|
||||
if (!(mbuf->ol_flags & (RTE_MBUF_F_TX_IP_CKSUM |
|
||||
RTE_MBUF_F_TX_L4_MASK |
|
||||
RTE_MBUF_F_TX_TCP_SEG))) {
|
||||
mbuf->ol_flags &= ~(RTE_MBUF_F_TX_IPV4 |
|
||||
RTE_MBUF_F_TX_IPV6);
|
||||
}
|
||||
} else {
|
||||
mbuf->l2_len = (char *) dp_packet_l3(pkt) -
|
||||
(char *) dp_packet_eth(pkt);
|
||||
|
Reference in New Issue
Block a user