All of lore.kernel.org
 help / color / mirror / Atom feed
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
>


  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.