From: Vipin Varghese Date: Fri, 13 Apr 2018 05:58:47 +0000 (+0530) Subject: net/tap: fix protocol field for non-IP X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=8055b534d69063131f94cec6644f30dcaa9bc4e4;p=dpdk.git net/tap: fix protocol field for non-IP When non IP packets are sent on TUN interface, the logic put Ipv6 as protocol field in header. With the current patch, the check is modified for ipv4, ipv6 and non ip. Fixes: 204d026a3922 ("net/tap: support tun") Suggested-by: Ophir Munk Signed-off-by: Vipin Varghese Reviewed-by: Ferruh Yigit --- diff --git a/drivers/net/tap/rte_eth_tap.c b/drivers/net/tap/rte_eth_tap.c index cca5852cc3..8bea2662ce 100644 --- a/drivers/net/tap/rte_eth_tap.c +++ b/drivers/net/tap/rte_eth_tap.c @@ -526,8 +526,8 @@ pmd_tx_burst(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts) */ char *buff_data = rte_pktmbuf_mtod(seg, void *); j = (*buff_data & 0xf0); - if (j & (0x40 | 0x60)) - pi.proto = (j == 0x40) ? 0x0008 : 0xdd86; + pi.proto = (j == 0x40) ? 0x0008 : + (j == 0x60) ? 0xdd86 : 0x00; iovecs[0].iov_base = π iovecs[0].iov_len = sizeof(pi);