Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/114297/?format=api
https://patches.dpdk.org/api/patches/114297/?format=api", "web_url": "https://patches.dpdk.org/project/dpdk/patch/20220727225431.600913-2-cristian.dumitrescu@intel.com/", "project": { "id": 1, "url": "https://patches.dpdk.org/api/projects/1/?format=api", "name": "DPDK", "link_name": "dpdk", "list_id": "dev.dpdk.org", "list_email": "dev@dpdk.org", "web_url": "http://core.dpdk.org", "scm_url": "git://dpdk.org/dpdk", "webscm_url": "http://git.dpdk.org/dpdk", "list_archive_url": "https://inbox.dpdk.org/dev", "list_archive_url_format": "https://inbox.dpdk.org/dev/{}", "commit_url_format": "" }, "msgid": "<20220727225431.600913-2-cristian.dumitrescu@intel.com>", "list_archive_url": "https://inbox.dpdk.org/dev/20220727225431.600913-2-cristian.dumitrescu@intel.com", "date": "2022-07-27T22:54:16", "name": "[V4,02/17] pipeline: move specification data structures to internal header", "commit_ref": null, "pull_url": null, "state": "superseded", "archived": true, "hash": "52019c3989565096694eab9763f4f3373cce0495", "submitter": { "id": 19, "url": "https://patches.dpdk.org/api/people/19/?format=api", "name": "Cristian Dumitrescu", "email": "cristian.dumitrescu@intel.com" }, "delegate": { "id": 1, "url": "https://patches.dpdk.org/api/users/1/?format=api", "username": "tmonjalo", "first_name": "Thomas", "last_name": "Monjalon", "email": "thomas@monjalon.net" }, "mbox": "https://patches.dpdk.org/project/dpdk/patch/20220727225431.600913-2-cristian.dumitrescu@intel.com/mbox/", "series": [ { "id": 24107, "url": "https://patches.dpdk.org/api/series/24107/?format=api", "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=24107", "date": "2022-07-27T22:54:15", "name": "[V4,01/17] pipeline: add pipeline name", "version": 4, "mbox": "https://patches.dpdk.org/series/24107/mbox/" } ], "comments": "https://patches.dpdk.org/api/patches/114297/comments/", "check": "success", "checks": "https://patches.dpdk.org/api/patches/114297/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<dev-bounces@dpdk.org>", "X-Original-To": "patchwork@inbox.dpdk.org", "Delivered-To": "patchwork@inbox.dpdk.org", "Received": [ "from mails.dpdk.org (mails.dpdk.org [217.70.189.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id B6C4BA00C4;\n\tThu, 28 Jul 2022 00:54:41 +0200 (CEST)", "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 7A93042B6D;\n\tThu, 28 Jul 2022 00:54:37 +0200 (CEST)", "from mga11.intel.com (mga11.intel.com [192.55.52.93])\n by mails.dpdk.org (Postfix) with ESMTP id 06FB441156\n for <dev@dpdk.org>; Thu, 28 Jul 2022 00:54:34 +0200 (CEST)", "from orsmga008.jf.intel.com ([10.7.209.65])\n by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 27 Jul 2022 15:54:34 -0700", "from silpixa00400573.ir.intel.com (HELO\n silpixa00400573.ger.corp.intel.com.) ([10.237.223.157])\n by orsmga008.jf.intel.com with ESMTP; 27 Jul 2022 15:54:33 -0700" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple;\n d=intel.com; i=@intel.com; q=dns/txt; s=Intel;\n t=1658962475; x=1690498475;\n h=from:to:cc:subject:date:message-id:in-reply-to:\n references:mime-version:content-transfer-encoding;\n bh=QGOlaI25Cq/W2w3fmxfgarFtx5//9Ylju/pTtyV5fZc=;\n b=CBVvF9SOeUeSPs2gYnO1s67c8X8pV38QC/dm2vIc01AtF3ekX+cJb1qq\n qQmGZwS68GzBqSiRe4y4FAqhdxOy05t4KeZRkRLv65NdqtRLY+0ikA6eE\n eyENEgAY7iTQjIXneXS/ZgbEYEFplH7P31bli9/rD1alowahRiZqD/xgz\n ZixAeGTKBK3OFaygqSXt+UCoZ2Oa1u2BYGbRu65rULEglIp+PrKsI5nJS\n m2mnjcSXsz7PC0SulH3jOl0zs5MUuY/diq5PinIwHq/g18zZD8iHuBk6v\n Mk1wDlDc7P+mQnd1wALucY7HL5bIPa8uvCPSapfuM6w1tm2Pi+7XIyt+/ g==;", "X-IronPort-AV": [ "E=McAfee;i=\"6400,9594,10421\"; a=\"285912154\"", "E=Sophos;i=\"5.93,196,1654585200\"; d=\"scan'208\";a=\"285912154\"", "E=Sophos;i=\"5.93,196,1654585200\"; d=\"scan'208\";a=\"628572566\"" ], "X-ExtLoop1": "1", "From": "Cristian Dumitrescu <cristian.dumitrescu@intel.com>", "To": "dev@dpdk.org", "Cc": "\"Kamalakannan R .\" <kamalakannan.r@intel.com>", "Subject": "[PATCH V4 02/17] pipeline: move specification data structures to\n internal header", "Date": "Wed, 27 Jul 2022 22:54:16 +0000", "Message-Id": "<20220727225431.600913-2-cristian.dumitrescu@intel.com>", "X-Mailer": "git-send-email 2.34.1", "In-Reply-To": "<20220727225431.600913-1-cristian.dumitrescu@intel.com>", "References": "<20220727223639.598932-1-cristian.dumitrescu@intel.com>\n <20220727225431.600913-1-cristian.dumitrescu@intel.com>", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "X-BeenThere": "dev@dpdk.org", "X-Mailman-Version": "2.1.29", "Precedence": "list", "List-Id": "DPDK patches and discussions <dev.dpdk.org>", "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>", "List-Archive": "<http://mails.dpdk.org/archives/dev/>", "List-Post": "<mailto:dev@dpdk.org>", "List-Help": "<mailto:dev-request@dpdk.org?subject=help>", "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>", "Errors-To": "dev-bounces@dpdk.org" }, "content": "Move all the pipeline object specification data structures to an\ninternal header file.\n\nSigned-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>\nSigned-off-by: Kamalakannan R. <kamalakannan.r@intel.com>\n---\n lib/pipeline/rte_swx_pipeline_spec.c | 126 +------------------\n lib/pipeline/rte_swx_pipeline_spec.h | 176 +++++++++++++++++++++++++++\n 2 files changed, 177 insertions(+), 125 deletions(-)\n create mode 100644 lib/pipeline/rte_swx_pipeline_spec.h", "diff": "diff --git a/lib/pipeline/rte_swx_pipeline_spec.c b/lib/pipeline/rte_swx_pipeline_spec.c\nindex 904b9eb471..5e07b4f794 100644\n--- a/lib/pipeline/rte_swx_pipeline_spec.c\n+++ b/lib/pipeline/rte_swx_pipeline_spec.c\n@@ -9,7 +9,7 @@\n \n #include <rte_common.h>\n \n-#include \"rte_swx_pipeline.h\"\n+#include \"rte_swx_pipeline_spec.h\"\n \n #ifndef MAX_LINE_LENGTH\n #define MAX_LINE_LENGTH 2048\n@@ -34,15 +34,7 @@\n \n /*\n * extobj.\n- *\n- * extobj OBJ_NAME instanceof OBJ_TYPE [ pragma OBJ_CREATE_ARGS ]\n */\n-struct extobj_spec {\n-\tchar *name;\n-\tchar *extern_type_name;\n-\tchar *pragma;\n-};\n-\n static void\n extobj_spec_free(struct extobj_spec *s)\n {\n@@ -104,18 +96,7 @@ extobj_statement_parse(struct extobj_spec *s,\n /*\n * struct.\n *\n- * struct STRUCT_TYPE_NAME {\n- *\tbit<SIZE> | varbit<SIZE> FIELD_NAME\n- *\t...\n- * }\n */\n-struct struct_spec {\n-\tchar *name;\n-\tstruct rte_swx_field_params *fields;\n-\tuint32_t n_fields;\n-\tint varbit;\n-};\n-\n static void\n struct_spec_free(struct struct_spec *s)\n {\n@@ -293,13 +274,7 @@ struct_block_parse(struct struct_spec *s,\n /*\n * header.\n *\n- * header HEADER_NAME instanceof STRUCT_TYPE_NAME\n */\n-struct header_spec {\n-\tchar *name;\n-\tchar *struct_type_name;\n-};\n-\n static void\n header_spec_free(struct header_spec *s)\n {\n@@ -351,12 +326,7 @@ header_statement_parse(struct header_spec *s,\n /*\n * metadata.\n *\n- * metadata instanceof STRUCT_TYPE_NAME\n */\n-struct metadata_spec {\n-\tchar *struct_type_name;\n-};\n-\n static void\n metadata_spec_free(struct metadata_spec *s)\n {\n@@ -400,18 +370,7 @@ metadata_statement_parse(struct metadata_spec *s,\n /*\n * action.\n *\n- * action ACTION_NAME args none | instanceof STRUCT_TYPE_NAME {\n- *\tINSTRUCTION\n- *\t...\n- * }\n */\n-struct action_spec {\n-\tchar *name;\n-\tchar *args_struct_type_name;\n-\tconst char **instructions;\n-\tuint32_t n_instructions;\n-};\n-\n static void\n action_spec_free(struct action_spec *s)\n {\n@@ -540,29 +499,7 @@ action_block_parse(struct action_spec *s,\n /*\n * table.\n *\n- * table TABLE_NAME {\n- *\tkey {\n- *\t\tMATCH_FIELD_NAME exact | wildcard | lpm\n- *\t\t...\n- *\t}\n- *\tactions {\n- *\t\tACTION_NAME [ @tableonly | @defaultonly ]\n- *\t\t...\n- *\t}\n- *\tdefault_action ACTION_NAME args none | ARG0_NAME ARG0_VALUE ... [ const ]\n- *\tinstanceof TABLE_TYPE_NAME\n- *\tpragma ARGS\n- *\tsize SIZE\n- * }\n */\n-struct table_spec {\n-\tchar *name;\n-\tstruct rte_swx_pipeline_table_params params;\n-\tchar *recommended_table_type_name;\n-\tchar *args;\n-\tuint32_t size;\n-};\n-\n static void\n table_spec_free(struct table_spec *s)\n {\n@@ -1084,22 +1021,7 @@ table_block_parse(struct table_spec *s,\n /*\n * selector.\n *\n- * selector SELECTOR_NAME {\n- *\tgroup_id FIELD_NAME\n- *\tselector {\n- *\t\tFIELD_NAME\n- *\t\t...\n- *\t}\n- *\tmember_id FIELD_NAME\n- *\tn_groups N_GROUPS\n- *\tn_members_per_group N_MEMBERS_PER_GROUP\n- * }\n */\n-struct selector_spec {\n-\tchar *name;\n-\tstruct rte_swx_pipeline_selector_params params;\n-};\n-\n static void\n selector_spec_free(struct selector_spec *s)\n {\n@@ -1385,31 +1307,7 @@ selector_block_parse(struct selector_spec *s,\n /*\n * learner.\n *\n- * learner LEARNER_NAME {\n- *\tkey {\n- *\t\tMATCH_FIELD_NAME\n- *\t\t...\n- *\t}\n- *\tactions {\n- *\t\tACTION_NAME [ @tableonly | @defaultonly]\n- *\t\t...\n- *\t}\n- *\tdefault_action ACTION_NAME args none | ARG0_NAME ARG0_VALUE ... [ const ]\n- *\tsize SIZE\n- *\ttimeout {\n- *\t\tTIMEOUT_IN_SECONDS\n- *\t\t...\n- *\t}\n- * }\n */\n-struct learner_spec {\n-\tchar *name;\n-\tstruct rte_swx_pipeline_learner_params params;\n-\tuint32_t size;\n-\tuint32_t *timeout;\n-\tuint32_t n_timeouts;\n-};\n-\n static void\n learner_spec_free(struct learner_spec *s)\n {\n@@ -1958,14 +1856,7 @@ learner_block_parse(struct learner_spec *s,\n /*\n * regarray.\n *\n- * regarray NAME size SIZE initval INITVAL\n */\n-struct regarray_spec {\n-\tchar *name;\n-\tuint64_t init_val;\n-\tuint32_t size;\n-};\n-\n static void\n regarray_spec_free(struct regarray_spec *s)\n {\n@@ -2033,13 +1924,7 @@ regarray_statement_parse(struct regarray_spec *s,\n /*\n * metarray.\n *\n- * metarray NAME size SIZE\n */\n-struct metarray_spec {\n-\tchar *name;\n-\tuint32_t size;\n-};\n-\n static void\n metarray_spec_free(struct metarray_spec *s)\n {\n@@ -2095,16 +1980,7 @@ metarray_statement_parse(struct metarray_spec *s,\n /*\n * apply.\n *\n- * apply {\n- *\tINSTRUCTION\n- *\t...\n- * }\n */\n-struct apply_spec {\n-\tconst char **instructions;\n-\tuint32_t n_instructions;\n-};\n-\n static void\n apply_spec_free(struct apply_spec *s)\n {\ndiff --git a/lib/pipeline/rte_swx_pipeline_spec.h b/lib/pipeline/rte_swx_pipeline_spec.h\nnew file mode 100644\nindex 0000000000..8458de878a\n--- /dev/null\n+++ b/lib/pipeline/rte_swx_pipeline_spec.h\n@@ -0,0 +1,176 @@\n+/* SPDX-License-Identifier: BSD-3-Clause\n+ * Copyright(c) 2022 Intel Corporation\n+ */\n+#include <stdint.h>\n+#include <stdio.h>\n+\n+#include <rte_common.h>\n+\n+#include <rte_swx_pipeline.h>\n+\n+/*\n+ * extobj.\n+ *\n+ * extobj OBJ_NAME instanceof OBJ_TYPE [ pragma OBJ_CREATE_ARGS ]\n+ */\n+struct extobj_spec {\n+\tchar *name;\n+\tchar *extern_type_name;\n+\tchar *pragma;\n+};\n+\n+/*\n+ * struct.\n+ *\n+ * struct STRUCT_TYPE_NAME {\n+ *\tbit<SIZE> | varbit<SIZE> FIELD_NAME\n+ *\t...\n+ * }\n+ */\n+struct struct_spec {\n+\tchar *name;\n+\tstruct rte_swx_field_params *fields;\n+\tuint32_t n_fields;\n+\tint varbit;\n+};\n+\n+/*\n+ * header.\n+ *\n+ * header HEADER_NAME instanceof STRUCT_TYPE_NAME\n+ */\n+struct header_spec {\n+\tchar *name;\n+\tchar *struct_type_name;\n+};\n+\n+/*\n+ * metadata.\n+ *\n+ * metadata instanceof STRUCT_TYPE_NAME\n+ */\n+struct metadata_spec {\n+\tchar *struct_type_name;\n+};\n+\n+/*\n+ * action.\n+ *\n+ * action ACTION_NAME args none | instanceof STRUCT_TYPE_NAME {\n+ *\tINSTRUCTION\n+ *\t...\n+ * }\n+ */\n+struct action_spec {\n+\tchar *name;\n+\tchar *args_struct_type_name;\n+\tconst char **instructions;\n+\tuint32_t n_instructions;\n+};\n+\n+/*\n+ * table.\n+ *\n+ * table TABLE_NAME {\n+ *\tkey {\n+ *\t\tMATCH_FIELD_NAME exact | wildcard | lpm\n+ *\t\t...\n+ *\t}\n+ *\tactions {\n+ *\t\tACTION_NAME [ @tableonly | @defaultonly ]\n+ *\t\t...\n+ *\t}\n+ *\tdefault_action ACTION_NAME args none | ARG0_NAME ARG0_VALUE ... [ const ]\n+ *\tinstanceof TABLE_TYPE_NAME\n+ *\tpragma ARGS\n+ *\tsize SIZE\n+ * }\n+ */\n+struct table_spec {\n+\tchar *name;\n+\tstruct rte_swx_pipeline_table_params params;\n+\tchar *recommended_table_type_name;\n+\tchar *args;\n+\tuint32_t size;\n+};\n+\n+/*\n+ * selector.\n+ *\n+ * selector SELECTOR_NAME {\n+ *\tgroup_id FIELD_NAME\n+ *\tselector {\n+ *\t\tFIELD_NAME\n+ *\t\t...\n+ *\t}\n+ *\tmember_id FIELD_NAME\n+ *\tn_groups N_GROUPS\n+ *\tn_members_per_group N_MEMBERS_PER_GROUP\n+ * }\n+ */\n+struct selector_spec {\n+\tchar *name;\n+\tstruct rte_swx_pipeline_selector_params params;\n+};\n+\n+/*\n+ * learner.\n+ *\n+ * learner LEARNER_NAME {\n+ *\tkey {\n+ *\t\tMATCH_FIELD_NAME\n+ *\t\t...\n+ *\t}\n+ *\tactions {\n+ *\t\tACTION_NAME [ @tableonly | @defaultonly]\n+ *\t\t...\n+ *\t}\n+ *\tdefault_action ACTION_NAME args none | ARG0_NAME ARG0_VALUE ... [ const ]\n+ *\tsize SIZE\n+ *\ttimeout {\n+ *\t\tTIMEOUT_IN_SECONDS\n+ *\t\t...\n+ *\t}\n+ * }\n+ */\n+struct learner_spec {\n+\tchar *name;\n+\tstruct rte_swx_pipeline_learner_params params;\n+\tuint32_t size;\n+\tuint32_t *timeout;\n+\tuint32_t n_timeouts;\n+};\n+\n+/*\n+ * regarray.\n+ *\n+ * regarray NAME size SIZE initval INITVAL\n+ */\n+struct regarray_spec {\n+\tchar *name;\n+\tuint64_t init_val;\n+\tuint32_t size;\n+};\n+\n+/*\n+ * metarray.\n+ *\n+ * metarray NAME size SIZE\n+ */\n+struct metarray_spec {\n+\tchar *name;\n+\tuint32_t size;\n+};\n+\n+/*\n+ * apply.\n+ *\n+ * apply {\n+ *\tINSTRUCTION\n+ *\t...\n+ * }\n+ */\n+struct apply_spec {\n+\tconst char **instructions;\n+\tuint32_t n_instructions;\n+};\n", "prefixes": [ "V4", "02/17" ] }{ "id": 114297, "url": "