diff options
author | Ido Barnea <ibarnea@cisco.com> | 2017-02-08 12:24:23 +0200 |
---|---|---|
committer | Ido Barnea <ibarnea@cisco.com> | 2017-02-13 12:32:26 +0200 |
commit | 93f15e3020f641feaa187ce3b7beb62c4cacae6b (patch) | |
tree | 8d8399925fc2d1fd9b7b2a496a89888878e2edaf /src/dpdk/drivers/net/enic/enic_rxtx.c | |
parent | 984a76ad385760ddd045e8a6c8d71fb07f5c3f78 (diff) |
dpdk1702-rc3 upstream changes
Signed-off-by: Ido Barnea <ibarnea@cisco.com>
Diffstat (limited to 'src/dpdk/drivers/net/enic/enic_rxtx.c')
-rw-r--r-- | src/dpdk/drivers/net/enic/enic_rxtx.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/dpdk/drivers/net/enic/enic_rxtx.c b/src/dpdk/drivers/net/enic/enic_rxtx.c index 26b83ae9..343dabc6 100644 --- a/src/dpdk/drivers/net/enic/enic_rxtx.c +++ b/src/dpdk/drivers/net/enic/enic_rxtx.c @@ -546,16 +546,23 @@ uint16_t enic_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, for (index = 0; index < nb_pkts; index++) { tx_pkt = *tx_pkts++; + pkt_len = tx_pkt->pkt_len; + data_len = tx_pkt->data_len; + ol_flags = tx_pkt->ol_flags; nb_segs = tx_pkt->nb_segs; + + if (pkt_len > ENIC_TX_MAX_PKT_SIZE) { + rte_pktmbuf_free(tx_pkt); + rte_atomic64_inc(&enic->soft_stats.tx_oversized); + continue; + } + if (nb_segs > wq_desc_avail) { if (index > 0) goto post; goto done; } - pkt_len = tx_pkt->pkt_len; - data_len = tx_pkt->data_len; - ol_flags = tx_pkt->ol_flags; mss = 0; vlan_id = 0; vlan_tag_insert = 0; |