summaryrefslogtreecommitdiffstats
path: root/src/dpdk/drivers/net/enic/enic_rxtx.c
diff options
context:
space:
mode:
authorIdo Barnea <ibarnea@cisco.com>2017-02-08 12:24:23 +0200
committerIdo Barnea <ibarnea@cisco.com>2017-02-13 12:32:26 +0200
commit93f15e3020f641feaa187ce3b7beb62c4cacae6b (patch)
tree8d8399925fc2d1fd9b7b2a496a89888878e2edaf /src/dpdk/drivers/net/enic/enic_rxtx.c
parent984a76ad385760ddd045e8a6c8d71fb07f5c3f78 (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.c13
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;