DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH] examples/ip_pipeline: check vlan and mpls params
@ 2017-01-06 12:05 Jyoti, Anand B
  0 siblings, 0 replies; 4+ messages in thread
From: Jyoti, Anand B @ 2017-01-06 12:05 UTC (permalink / raw)
  To: dev; +Cc: Jyoti, Anand B, Dumitrescu, Cristian

The attached patch checks VLAN IDs and MPLS label for max value and also checks the max number of supported MPLS labels to avoid array overflow in the CLI command line parameters.

Regards,
Anand B Jyoti

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [dpdk-dev] [PATCH] examples/ip_pipeline: check vlan and mpls params
  2017-01-06 17:21 Jyoti, Anand B
@ 2017-01-08 23:20 ` Stephen Hemminger
  0 siblings, 0 replies; 4+ messages in thread
From: Stephen Hemminger @ 2017-01-08 23:20 UTC (permalink / raw)
  To: Jyoti, Anand B; +Cc: dev

On Fri, 6 Jan 2017 17:21:46 +0000
"Jyoti, Anand B" <anand.b.jyoti@intel.com> wrote:

> +
> +			/* Max MPLS label value 20 bits */
> +			for (i = 0; i < data->l2.mpls.n_labels; i++)


What ever editor or mail system you are using is putting a unicode space in that statement,
not visible to normal mail client, but causes checkpatch failure.

> +
> +			/* Max MPLS label value 20 bits */
> +			for (i =3D 0; i < data->l2.mpls.n_labels; i++)

Please fix the patch and resubmit

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [dpdk-dev] [PATCH] examples/ip_pipeline: check vlan and mpls params
@ 2017-01-06 17:21 Jyoti, Anand B
  2017-01-08 23:20 ` Stephen Hemminger
  0 siblings, 1 reply; 4+ messages in thread
From: Jyoti, Anand B @ 2017-01-06 17:21 UTC (permalink / raw)
  To: dev

>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

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [dpdk-dev] [PATCH] examples/ip_pipeline: check vlan and mpls params
@ 2017-01-06 16:00 Jyoti, Anand B
  0 siblings, 0 replies; 4+ messages in thread
From: Jyoti, Anand B @ 2017-01-06 16:00 UTC (permalink / raw)
  To: dev; +Cc: Dumitrescu, Cristian

diff --git a/examples/ip_pipeline/pipeline/pipeline_routing.c b/examples/ip_pipeline/pipeline/pipeline_routing.c
index 3aadbf9..b7faf5b 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;

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2017-01-08 23:20 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-01-06 12:05 [dpdk-dev] [PATCH] examples/ip_pipeline: check vlan and mpls params Jyoti, Anand B
2017-01-06 16:00 Jyoti, Anand B
2017-01-06 17:21 Jyoti, Anand B
2017-01-08 23:20 ` Stephen Hemminger

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).