DPDK patches and discussions
 help / color / mirror / Atom feed
From: "Jyoti, Anand B" <anand.b.jyoti@intel.com>
To: "dev@dpdk.org" <dev@dpdk.org>
Subject: [dpdk-dev] [PATCH] examples/ip_pipeline: check vlan and mpls params
Date: Fri, 6 Jan 2017 17:21:46 +0000	[thread overview]
Message-ID: <A1F25702B3CE3F4F8D3936A55AD1FF37925DB5F9@BGSMSX108.gar.corp.intel.com> (raw)

>From e346e359ed9c5e8261f09f93629bff56d7c10a11 Mon Sep 17 00:00:00 2001
From: "Jyoti, Anand B" <anand.b.jyoti@intel.com>
Date: Fri, 6 Jan 2017 08:40:55 +0530
Subject: [PATCH] examples/ip_pipeline: check vlan and mpls params

This commit add to CLI command check for the following errors
1. svlan and cvlan IDs greater than 12 bits
2. mpls ID greater than 20 bits
3. max number of supported mpls labels to avoid array overflow

It prevents running CLI commands with invalid parameters.

Signed-off-by: Jyoti, Anand B <anand.b.jyoti@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
---
 examples/ip_pipeline/pipeline/pipeline_routing.c | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/examples/ip_pipeline/pipeline/pipeline_routing.c b/examples/ip_pipeline/pipeline/pipeline_routing.c
index 3aadbf9..3deaff9 100644
--- a/examples/ip_pipeline/pipeline/pipeline_routing.c
+++ b/examples/ip_pipeline/pipeline/pipeline_routing.c
@@ -494,6 +494,26 @@ app_pipeline_routing_add_route(struct app_params *app,
 		/* data */
 		if (data->port_id >= p->n_ports_out)
 			return -1;
+
+		/* Valid range of VLAN tags 12 bits */
+		if (data->flags & PIPELINE_ROUTING_ROUTE_QINQ)
+			if ((data->l2.qinq.svlan & 0xF000) ||
+					(data->l2.qinq.cvlan & 0xF000))
+				return -1;
+
+		/* Max number of MPLS labels supported */
+		if (data->flags & PIPELINE_ROUTING_ROUTE_MPLS) {
+			uint32_t i;
+
+			if (data->l2.mpls.n_labels >
+					PIPELINE_ROUTING_MPLS_LABELS_MAX)
+				return -1;
+
+			/* Max MPLS label value 20 bits */
+			for (i = 0; i < data->l2.mpls.n_labels; i++)
+				if (data->l2.mpls.labels[i] & 0xFFF00000)
+					return -1;
+		}
 	}
 	break;
 
-- 
2.7.4

             reply	other threads:[~2017-01-06 17:21 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-06 17:21 Jyoti, Anand B [this message]
2017-01-08 21:55 ` [dpdk-dev] [PATCH v2] examples/ip_pipeline: check VLAN and MPLS params Jyoti, Anand B
2017-01-17 17:27   ` Thomas Monjalon
2017-01-08 23:20 ` [dpdk-dev] [PATCH] examples/ip_pipeline: check vlan and mpls params Stephen Hemminger
2017-06-02  6:29 ` [dpdk-dev] [PATCH v1] ring: fix return value for sc and mc dequeue Anand B Jyoti
2017-06-23  8:43   ` Olivier Matz
2017-06-23 12:43     ` Thomas Monjalon
  -- strict thread matches above, loose matches on Subject: below --
2017-01-06 16:00 [dpdk-dev] [PATCH] examples/ip_pipeline: check vlan and mpls params Jyoti, Anand B
2017-01-06 12:05 Jyoti, Anand B

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=A1F25702B3CE3F4F8D3936A55AD1FF37925DB5F9@BGSMSX108.gar.corp.intel.com \
    --to=anand.b.jyoti@intel.com \
    --cc=dev@dpdk.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).