Thread (195 messages) 195 messages, 4 authors, 2021-01-28

Re: [dpdk-dev] [EXT] Re: [PATCH v1 22/38] net/mvpp2: flow: add support for RAW type

From: Liron Himi <hidden>
Date: 2021-01-19 10:44:31

-----Original Message-----
From: Jerin Jacob <redacted> 
Sent: Monday, 11 January 2021 18:18
To: Michael Shamis <redacted>
Cc: Liron Himi <redacted>; Jerin Jacob Kollanukkaran <redacted>; dev@dpdk.org
Subject: [EXT] Re: [dpdk-dev] [PATCH v1 22/38] net/mvpp2: flow: add support for RAW type

External Email

----------------------------------------------------------------------
On Wed, Dec 23, 2020 at 2:58 PM Michael Shamis [off-list ref] wrote:
quoted hunk ↗ jump to hunk
Reviewed-by: Michael Shamis <redacted>

-----Original Message-----
From: dev <redacted> On Behalf Of lironh@marvell.com
Sent: Wednesday, December 2, 2020 12:12 PM
To: Jerin Jacob Kollanukkaran <redacted>
Cc: dev@dpdk.org; Liron Himi <redacted>
Subject: [dpdk-dev] [PATCH v1 22/38] net/mvpp2: flow: add support for 
RAW type

From: Liron Himi <redacted>

add support for RAW type and connect it to MUSDK UDF

Signed-off-by: Liron Himi <redacted>
Reviewed-by: Liron Himi <redacted>
---
 drivers/net/mvpp2/mrvl_ethdev.h |   1 +
 drivers/net/mvpp2/mrvl_flow.c   | 141 ++++++++++++++++++++++++++++++++
 2 files changed, 142 insertions(+)
diff --git a/drivers/net/mvpp2/mrvl_ethdev.h 
b/drivers/net/mvpp2/mrvl_ethdev.h index e7f75067f..be5e5a51b 100644
--- a/drivers/net/mvpp2/mrvl_ethdev.h
+++ b/drivers/net/mvpp2/mrvl_ethdev.h
@@ -92,6 +92,7 @@ struct rte_flow {
        struct pp2_cls_tbl_rule rule;
        struct pp2_cls_cos_desc cos;
        struct pp2_cls_tbl_action action;
+       uint8_t next_udf_id;
 };

 struct mrvl_mtr_profile {
diff --git a/drivers/net/mvpp2/mrvl_flow.c 
b/drivers/net/mvpp2/mrvl_flow.c index ffa47a12e..3c8052f06 100644
--- a/drivers/net/mvpp2/mrvl_flow.c
+++ b/drivers/net/mvpp2/mrvl_flow.c
@@ -1196,6 +1196,146 @@ mrvl_parse_udp(const struct rte_flow_item *item,
        return -rte_errno;
 }

+static int
+mrvl_string_to_hex_values(const uint8_t *input_string,
+                         uint8_t *hex_key,
+                         uint8_t *length) {
+       char tmp_arr[3], tmp_string[MRVL_CLS_STR_SIZE_MAX], *string_iter;
+       int i;
+
+       strcpy(tmp_string, (const char *)input_string);
+       string_iter = tmp_string;
+
+       string_iter += 2; /* skip the '0x' */
+       *length = ((*length - 2) + 1) / 2;
+
+       for (i = 0; i < *length; i++) {
+               strncpy(tmp_arr, string_iter, 2);
+               tmp_arr[2] = '\0';
+               if (get_val_securely8(tmp_arr, 16,
+                                     &hex_key[*length - 1 - i]) < 0)
+                       return -1;
+               string_iter += 2;
+       }
+
+       return 0;
+}
Is standard strtol()  not enough?
[L.H.] I have just checked it and strtol is working only when up to 64bit numbers.
i.e. if given string is "0xaabbccddaabbccdd" it is working, but not "0xaabbccddaabbccdd11".
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help