From: Yong Wang <yongwang-pghWNbHTmq7QT0dZR+AlfA@public.gmane.org>
To: Stephen Hemminger
<stephen-OTpzqLSitTUnbdJkjeBofR2eb7JE58TQ@public.gmane.org>
Cc: "dev-VfR2kkLFssw@public.gmane.org"
<dev-VfR2kkLFssw@public.gmane.org>,
Stephen Hemminger
<shemming-43mecJUBy8ZBDgjK7y7TUQ@public.gmane.org>
Subject: Re: [PATCH v3 09/10] vmxnet3: add check for jumbo segment
Date: Fri, 6 Mar 2015 23:48:26 +0000 [thread overview]
Message-ID: <D11F77FC.3895A%yongwang@vmware.com> (raw)
In-Reply-To: <1425600635-20628-10-git-send-email-stephen-OTpzqLSitTUnbdJkjeBofR2eb7JE58TQ@public.gmane.org>
On 3/5/15, 4:10 PM, "Stephen Hemminger" <stephen@networkplumber.org> wrote:
>From: Stephen Hemminger <shemming@brocade.com>
>
>It is possible that some rogue application might pass a segment
>larger than 16K to the vmxnet3 transmit routine. In which case
>just drop it and increment counter.
>
>Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
One minor comment below. Otherwise looks good to me.
Acked-by: Yong Wang <yongwang@vmware.com>
>---
> lib/librte_pmd_vmxnet3/vmxnet3_ring.h | 1 +
> lib/librte_pmd_vmxnet3/vmxnet3_rxtx.c | 18 ++++++++++++++++++
> 2 files changed, 19 insertions(+)
>
>diff --git a/lib/librte_pmd_vmxnet3/vmxnet3_ring.h
>b/lib/librte_pmd_vmxnet3/vmxnet3_ring.h
>index 55ceadf..5cdcb23 100644
>--- a/lib/librte_pmd_vmxnet3/vmxnet3_ring.h
>+++ b/lib/librte_pmd_vmxnet3/vmxnet3_ring.h
>@@ -126,6 +126,7 @@ struct vmxnet3_txq_stats {
> * different reasons
> */
> uint64_t drop_too_many_segs;
>+ uint64_t drop_too_big;
> uint64_t drop_tso;
> uint64_t tx_ring_full;
> };
>diff --git a/lib/librte_pmd_vmxnet3/vmxnet3_rxtx.c
>b/lib/librte_pmd_vmxnet3/vmxnet3_rxtx.c
>index 3bd13ef..f6c3452 100644
>--- a/lib/librte_pmd_vmxnet3/vmxnet3_rxtx.c
>+++ b/lib/librte_pmd_vmxnet3/vmxnet3_rxtx.c
>@@ -327,6 +327,17 @@ vmxnet3_tq_tx_complete(vmxnet3_tx_queue_t *txq)
> PMD_TX_LOG(DEBUG, "Processed %d tx comps & command descs.", completed);
> }
>
>+static inline int
>+vmxnet3_seg_too_big(const struct rte_mbuf *m)
>+{
>+ do {
>+ if (m->data_len > VMXNET3_MAX_TX_BUF_SIZE)
>+ return 1;
>+ } while ((m = m->next) != NULL);
nit: extra space after "while”.
>+
>+ return 0;
>+}
>+
> uint16_t
> vmxnet3_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
> uint16_t nb_pkts)
>@@ -353,6 +364,13 @@ vmxnet3_xmit_pkts(void *tx_queue, struct rte_mbuf
>**tx_pkts,
> /* Is this packet execessively fragmented, then drop */
> if (unlikely(txm->nb_segs > VMXNET3_MAX_TXD_PER_PKT)) {
> ++txq->stats.drop_too_many_segs;
>+ goto drop;
>+ }
>+
>+ /* Check for case of monster segment */
>+ if (unlikely(vmxnet3_seg_too_big(txm))) {
>+ ++txq->stats.drop_too_big;
>+ drop:
> ++txq->stats.drop_total;
> rte_pktmbuf_free(txm);
> ++nb_tx;
>--
>2.1.4
>
next prev parent reply other threads:[~2015-03-06 23:48 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-03-06 0:10 [PATCH v3 00/10] vmxnet3: multisegment and bugfixes Stephen Hemminger
[not found] ` <1425600635-20628-1-git-send-email-stephen-OTpzqLSitTUnbdJkjeBofR2eb7JE58TQ@public.gmane.org>
2015-03-06 0:10 ` [PATCH v3 01/10] vmxnet3: fix link state handling Stephen Hemminger
[not found] ` <1425600635-20628-2-git-send-email-stephen-OTpzqLSitTUnbdJkjeBofR2eb7JE58TQ@public.gmane.org>
2015-03-06 17:21 ` Sanford, Robert
[not found] ` <0efb310c0ee54f9192eae95f6ee909e0@BRMWP-EXMB11.corp.brocade.com>
[not found] ` <0efb310c0ee54f9192eae95f6ee909e0-sI283RzA5cMA50eAn2D9H4CDckiq/fhJZeezCHUQhQ4@public.gmane.org>
2015-03-08 17:45 ` Stephen Hemminger
2015-03-06 0:10 ` [PATCH v3 02/10] vmxnet3: enable VLAN filtering Stephen Hemminger
[not found] ` <1425600635-20628-3-git-send-email-stephen-OTpzqLSitTUnbdJkjeBofR2eb7JE58TQ@public.gmane.org>
2015-03-06 21:54 ` Yong Wang
2015-03-06 0:10 ` [PATCH v3 03/10] vmxnet3: remove mtu check Stephen Hemminger
2015-03-06 0:10 ` [PATCH v3 04/10] vmxnet3: cleanup txq stats Stephen Hemminger
2015-03-06 0:10 ` [PATCH v3 05/10] vmxnet3: add support for multi-segment transmit Stephen Hemminger
2015-03-06 0:10 ` [PATCH v3 06/10] vmxnet3: support RSS and refactor offload Stephen Hemminger
2015-03-06 0:10 ` [PATCH v3 07/10] vmxnet3: support jumbo frames Stephen Hemminger
[not found] ` <1425600635-20628-8-git-send-email-stephen-OTpzqLSitTUnbdJkjeBofR2eb7JE58TQ@public.gmane.org>
2015-03-09 23:28 ` Yong Wang
[not found] ` <D1237604.39F07%yongwang-pghWNbHTmq7QT0dZR+AlfA@public.gmane.org>
2015-03-09 23:32 ` Yong Wang
[not found] ` <D1237B72.39F61%yongwang-pghWNbHTmq7QT0dZR+AlfA@public.gmane.org>
2015-03-10 18:35 ` Stephen Hemminger
2015-03-11 1:03 ` Yong Wang
[not found] ` <4ebc1312d5cb42d583fb8a204c353feb@BRMWP-EXMB11.corp.brocade.com>
[not found] ` <4ebc1312d5cb42d583fb8a204c353feb-sI283RzA5cMA50eAn2D9H4CDckiq/fhJZeezCHUQhQ4@public.gmane.org>
2015-03-11 6:54 ` Stephen Hemminger
[not found] ` <9bc742bd1778468a815da8070b584ee7@BRMWP-EXMB11.corp.brocade.com>
[not found] ` <9bc742bd1778468a815da8070b584ee7-sI283RzA5cMA50eAn2D9H4CDckiq/fhJZeezCHUQhQ4@public.gmane.org>
2015-03-10 4:18 ` Stephen Hemminger
2015-03-06 0:10 ` [PATCH v3 08/10] vmxnet3: get rid of DEBUG ifdefs Stephen Hemminger
[not found] ` <1425600635-20628-9-git-send-email-stephen-OTpzqLSitTUnbdJkjeBofR2eb7JE58TQ@public.gmane.org>
2015-03-06 21:59 ` Yong Wang
2015-03-06 0:10 ` [PATCH v3 09/10] vmxnet3: add check for jumbo segment Stephen Hemminger
[not found] ` <1425600635-20628-10-git-send-email-stephen-OTpzqLSitTUnbdJkjeBofR2eb7JE58TQ@public.gmane.org>
2015-03-06 23:48 ` Yong Wang [this message]
2015-03-06 0:10 ` [PATCH v3 10/10] vmxnet3: remove excess inlining Stephen Hemminger
[not found] ` <1425600635-20628-11-git-send-email-stephen-OTpzqLSitTUnbdJkjeBofR2eb7JE58TQ@public.gmane.org>
2015-03-06 23:54 ` Yong Wang
[not found] ` <D11F7D7A.389BD%yongwang-pghWNbHTmq7QT0dZR+AlfA@public.gmane.org>
2015-03-07 2:00 ` Stephen Hemminger
2015-03-10 13:42 ` [PATCH v3 00/10] vmxnet3: multisegment and bugfixes Thomas Monjalon
2015-06-22 12:22 ` Thomas Monjalon
2015-07-08 23:21 ` Thomas Monjalon
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=D11F77FC.3895A%yongwang@vmware.com \
--to=yongwang-pghwnbhtmq7qt0dzr+alfa@public.gmane.org \
--cc=dev-VfR2kkLFssw@public.gmane.org \
--cc=shemming-43mecJUBy8ZBDgjK7y7TUQ@public.gmane.org \
--cc=stephen-OTpzqLSitTUnbdJkjeBofR2eb7JE58TQ@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.