Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/1419/?format=api
https://patches.dpdk.org/api/patches/1419/?format=api", "web_url": "https://patches.dpdk.org/project/dpdk/patch/1416530816-2159-15-git-send-email-jingjing.wu@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": "<1416530816-2159-15-git-send-email-jingjing.wu@intel.com>", "list_archive_url": "https://inbox.dpdk.org/dev/1416530816-2159-15-git-send-email-jingjing.wu@intel.com", "date": "2014-11-21T00:46:48", "name": "[dpdk-dev,v6,14/22] ethdev: define structures for getting flow director information", "commit_ref": null, "pull_url": null, "state": "accepted", "archived": true, "hash": "b85174db9e74b1e9354864840fae88b3a37cd158", "submitter": { "id": 47, "url": "https://patches.dpdk.org/api/people/47/?format=api", "name": "Jingjing Wu", "email": "jingjing.wu@intel.com" }, "delegate": null, "mbox": "https://patches.dpdk.org/project/dpdk/patch/1416530816-2159-15-git-send-email-jingjing.wu@intel.com/mbox/", "series": [], "comments": "https://patches.dpdk.org/api/patches/1419/comments/", "check": "pending", "checks": "https://patches.dpdk.org/api/patches/1419/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<dev-bounces@dpdk.org>", "X-Original-To": "patchwork@dpdk.org", "Delivered-To": "patchwork@dpdk.org", "Received": [ "from [92.243.14.124] (localhost [IPv6:::1])\n\tby dpdk.org (Postfix) with ESMTP id DCE007F9D;\n\tFri, 21 Nov 2014 01:37:12 +0100 (CET)", "from mga01.intel.com (mga01.intel.com [192.55.52.88])\n\tby dpdk.org (Postfix) with ESMTP id 9F6CD7F9D\n\tfor <dev@dpdk.org>; Fri, 21 Nov 2014 01:37:04 +0100 (CET)", "from fmsmga003.fm.intel.com ([10.253.24.29])\n\tby fmsmga101.fm.intel.com with ESMTP; 20 Nov 2014 16:47:35 -0800", "from shvmail01.sh.intel.com ([10.239.29.42])\n\tby FMSMGA003.fm.intel.com with ESMTP; 20 Nov 2014 16:38:06 -0800", "from shecgisg004.sh.intel.com (shecgisg004.sh.intel.com\n\t[10.239.29.89])\n\tby shvmail01.sh.intel.com with ESMTP id sAL0lVTP004182;\n\tFri, 21 Nov 2014 08:47:31 +0800", "from shecgisg004.sh.intel.com (localhost [127.0.0.1])\n\tby shecgisg004.sh.intel.com (8.13.6/8.13.6/SuSE Linux 0.8) with ESMTP\n\tid sAL0lT4T002292; Fri, 21 Nov 2014 08:47:31 +0800", "(from wujingji@localhost)\n\tby shecgisg004.sh.intel.com (8.13.6/8.13.6/Submit) id sAL0lTjS002288; \n\tFri, 21 Nov 2014 08:47:29 +0800" ], "X-ExtLoop1": "1", "X-IronPort-AV": "E=Sophos;i=\"4.97,862,1389772800\"; d=\"scan'208\";a=\"419585473\"", "From": "Jingjing Wu <jingjing.wu@intel.com>", "To": "dev@dpdk.org", "Date": "Fri, 21 Nov 2014 08:46:48 +0800", "Message-Id": "<1416530816-2159-15-git-send-email-jingjing.wu@intel.com>", "X-Mailer": "git-send-email 1.7.4.1", "In-Reply-To": "<1416530816-2159-1-git-send-email-jingjing.wu@intel.com>", "References": "<1414654006-7472-1-git-send-email-jingjing.wu@intel.com>\n\t<1416530816-2159-1-git-send-email-jingjing.wu@intel.com>", "Subject": "[dpdk-dev] [PATCH v6 14/22] ethdev: define structures for getting\n\tflow director information", "X-BeenThere": "dev@dpdk.org", "X-Mailman-Version": "2.1.15", "Precedence": "list", "List-Id": "patches and discussions about DPDK <dev.dpdk.org>", "List-Unsubscribe": "<http://dpdk.org/ml/options/dev>,\n\t<mailto:dev-request@dpdk.org?subject=unsubscribe>", "List-Archive": "<http://dpdk.org/ml/archives/dev/>", "List-Post": "<mailto:dev@dpdk.org>", "List-Help": "<mailto:dev-request@dpdk.org?subject=help>", "List-Subscribe": "<http://dpdk.org/ml/listinfo/dev>,\n\t<mailto:dev-request@dpdk.org?subject=subscribe>", "Errors-To": "dev-bounces@dpdk.org", "Sender": "\"dev\" <dev-bounces@dpdk.org>" }, "content": "define structures for getting flow director information includes:\n - mode\n - supported flow types\n - table space\n - flexible payload size and granularity\n - configured flexible payload and mask information\n\nSigned-off-by: jingjing.wu <jingjing.wu@intel.com>\n---\n lib/librte_ether/rte_eth_ctrl.h | 92 ++++++++++++++++++++++++++++++++++++++++-\n lib/librte_ether/rte_ethdev.h | 9 ----\n 2 files changed, 90 insertions(+), 11 deletions(-)", "diff": "diff --git a/lib/librte_ether/rte_eth_ctrl.h b/lib/librte_ether/rte_eth_ctrl.h\nindex 9856842..b05d9eb 100644\n--- a/lib/librte_ether/rte_eth_ctrl.h\n+++ b/lib/librte_ether/rte_eth_ctrl.h\n@@ -69,8 +69,7 @@ enum rte_filter_op {\n \tRTE_ETH_FILTER_FLUSH, /**< flush all entries */\n \tRTE_ETH_FILTER_GET, /**< get filter entry */\n \tRTE_ETH_FILTER_SET, /**< configurations */\n-\tRTE_ETH_FILTER_INFO,\n-\t/**< get information of filter, such as status or statistics */\n+\tRTE_ETH_FILTER_INFO, /**< retrieve information */\n \tRTE_ETH_FILTER_OP_MAX\n };\n \n@@ -322,6 +321,95 @@ struct rte_eth_fdir_filter {\n \tstruct rte_eth_fdir_action action; /**< Action taken when match */\n };\n \n+/**\n+ * Payload type\n+ */\n+enum rte_eth_payload_type {\n+\tRTE_ETH_PAYLOAD_UNKNOWN = 0,\n+\tRTE_ETH_L2_PAYLOAD,\n+\tRTE_ETH_L3_PAYLOAD,\n+\tRTE_ETH_L4_PAYLOAD,\n+\tRTE_ETH_PAYLOAD_MAX = 8,\n+};\n+\n+/**\n+ * A structure used to select bytes extracted from the protocol layers to\n+ * flexible payload for filter\n+ */\n+struct rte_eth_flex_payload_cfg {\n+\tenum rte_eth_payload_type type; /**< Payload type */\n+\tuint16_t src_offset[RTE_ETH_FDIR_MAX_FLEXLEN];\n+\t/**< Offset in bytes from the beginning of packet's payload\n+\t src_offset[i] indicates the flexbyte i's offset in original\n+\t packet payload. This value should be less than\n+\t flex_payload_limit in struct rte_eth_fdir_info.*/\n+};\n+\n+/**\n+ * A structure used to define FDIR masks for flexible payload\n+ * for each flow type\n+ */\n+struct rte_eth_fdir_flex_mask {\n+\tenum rte_eth_flow_type flow_type; /**< Flow type */\n+\tuint8_t mask[RTE_ETH_FDIR_MAX_FLEXLEN];\n+\t/**< Mask for the whole flexible payload */\n+};\n+\n+/**\n+ * A structure used to define all flexible payload related setting\n+ * include flexpay load and flex mask\n+ */\n+struct rte_eth_fdir_flex_conf {\n+\tuint16_t nb_payloads; /**< The number of following payload cfg */\n+\tuint16_t nb_flexmasks; /**< The number of following mask */\n+\tstruct rte_eth_flex_payload_cfg flex_set[RTE_ETH_PAYLOAD_MAX];\n+\t/**< Flex payload configuration for each payload type */\n+\tstruct rte_eth_fdir_flex_mask flex_mask[RTE_ETH_FLOW_TYPE_MAX];\n+\t/**< Flex mask configuration for each flow type */\n+};\n+\n+/**\n+ * Flow Director setting modes: none, signature or perfect.\n+ */\n+enum rte_fdir_mode {\n+\tRTE_FDIR_MODE_NONE = 0, /**< Disable FDIR support. */\n+\tRTE_FDIR_MODE_SIGNATURE, /**< Enable FDIR signature filter mode. */\n+\tRTE_FDIR_MODE_PERFECT, /**< Enable FDIR perfect filter mode. */\n+};\n+\n+/**\n+ * A structure used to get the information of flow director filter.\n+ * It supports RTE_ETH_FILTER_FDIR with RTE_ETH_FILTER_INFO operation.\n+ * It includes the mode, flexible payload configuration information,\n+ * capabilities and supported flow types, flexible payload characters.\n+ * It can be gotten to help taking specific configurations per device.\n+ */\n+struct rte_eth_fdir_info {\n+\tenum rte_fdir_mode mode; /**< Flow director mode */\n+\tstruct rte_eth_fdir_flex_conf flex_conf;\n+\t/**< Flex payload configuration information */\n+\tuint32_t guarant_spc; /**< Guaranteed spaces.*/\n+\tuint32_t best_spc; /**< Best effort spaces.*/\n+\tuint32_t flow_types_mask[RTE_ETH_FLOW_TYPE_MAX / sizeof(uint32_t)];\n+\t/**< Bit mask for every supported flow type. */\n+\tuint32_t max_flexpayload; /**< Total flex payload in bytes. */\n+\tuint32_t flex_payload_unit;\n+\t/**< Flexible payload unit in bytes. Size and alignments of all flex\n+\t payload segments should be multiplies of this value. */\n+\tuint32_t max_flex_payload_segment_num;\n+\t/**< Max number of flexible payload continuous segments.\n+\t Each segment should be a multiple of flex_payload_unit.*/\n+\tuint16_t flex_payload_limit;\n+\t/**< Maximum src_offset in bytes allowed. It indicates that\n+\t src_offset[i] in struct rte_eth_flex_payload_cfg should be\n+\t less than this value. */\n+\tuint32_t flex_bitmask_unit;\n+\t/**< Flex bitmask unit in bytes. Size of flex bitmasks should\n+\t be a multiply of this value. */\n+\tuint32_t max_flex_bitmask_num;\n+\t/**< Max supported size of flex bitmasks in flex_bitmask_unit */\n+};\n+\n #ifdef __cplusplus\n }\n #endif\ndiff --git a/lib/librte_ether/rte_ethdev.h b/lib/librte_ether/rte_ethdev.h\nindex c29525b..b658cf4 100644\n--- a/lib/librte_ether/rte_ethdev.h\n+++ b/lib/librte_ether/rte_ethdev.h\n@@ -683,15 +683,6 @@ struct rte_eth_pfc_conf {\n };\n \n /**\n- * Flow Director setting modes: none (default), signature or perfect.\n- */\n-enum rte_fdir_mode {\n-\tRTE_FDIR_MODE_NONE = 0, /**< Disable FDIR support. */\n-\tRTE_FDIR_MODE_SIGNATURE, /**< Enable FDIR signature filter mode. */\n-\tRTE_FDIR_MODE_PERFECT, /**< Enable FDIR perfect filter mode. */\n-};\n-\n-/**\n * Memory space that can be configured to store Flow Director filters\n * in the board memory.\n */\n", "prefixes": [ "dpdk-dev", "v6", "14/22" ] }{ "id": 1419, "url": "