X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;ds=inline;f=examples%2Ftep_termination%2Fvxlan_setup.c;h=51ad133b78cbd6ed430f5f1f945fa26ceca75b11;hb=bdb3bf9246ff614029a41e6432fe7696e21f607f;hp=a1cd218c0349230d5d1762729525f617c97cc240;hpb=2bb43bd4350a6f5060add5436b1f44e08b936508;p=dpdk.git diff --git a/examples/tep_termination/vxlan_setup.c b/examples/tep_termination/vxlan_setup.c index a1cd218c03..51ad133b78 100644 --- a/examples/tep_termination/vxlan_setup.c +++ b/examples/tep_termination/vxlan_setup.c @@ -218,13 +218,20 @@ vxlan_port_init(uint8_t port, struct rte_mempool *mbuf_pool) static int vxlan_rx_process(struct rte_mbuf *pkt) { - return decapsulation(pkt); + int ret = 0; + + if (rx_decap) + ret = decapsulation(pkt); + + return ret; } static void vxlan_tx_process(uint8_t queue_id, struct rte_mbuf *pkt) { - encapsulation(pkt, queue_id); + if (tx_encap) + encapsulation(pkt, queue_id); + return; } @@ -427,6 +434,16 @@ vxlan_rx_pkts(struct virtio_net *dev, struct rte_mbuf **pkts_burst, struct rte_mbuf *pkts_valid[rx_count]; for (i = 0; i < rx_count; i++) { + if (enable_stats) { + rte_atomic64_add( + &dev_statistics[dev->device_fh].rx_bad_ip_csum, + (pkts_burst[i]->ol_flags & PKT_RX_IP_CKSUM_BAD) + != 0); + rte_atomic64_add( + &dev_statistics[dev->device_fh].rx_bad_ip_csum, + (pkts_burst[i]->ol_flags & PKT_RX_L4_CKSUM_BAD) + != 0); + } ret = vxlan_rx_process(pkts_burst[i]); if (unlikely(ret < 0)) continue;