get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/30051/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 30051,
    "url": "http://patches.dpdk.org/api/patches/30051/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/1507674097-19597-2-git-send-email-nikhil.rao@intel.com/",
    "project": {
        "id": 1,
        "url": "http://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": "<1507674097-19597-2-git-send-email-nikhil.rao@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1507674097-19597-2-git-send-email-nikhil.rao@intel.com",
    "date": "2017-10-10T22:21:31",
    "name": "[dpdk-dev,v6,1/7] eventdev: add caps API and PMD callback for eth Rx adapter",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "69d3556263b88016d6dc4982fdf722f62143bd91",
    "submitter": {
        "id": 528,
        "url": "http://patches.dpdk.org/api/people/528/?format=api",
        "name": "Rao, Nikhil",
        "email": "nikhil.rao@intel.com"
    },
    "delegate": {
        "id": 310,
        "url": "http://patches.dpdk.org/api/users/310/?format=api",
        "username": "jerin",
        "first_name": "Jerin",
        "last_name": "Jacob",
        "email": "jerinj@marvell.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/1507674097-19597-2-git-send-email-nikhil.rao@intel.com/mbox/",
    "series": [],
    "comments": "http://patches.dpdk.org/api/patches/30051/comments/",
    "check": "fail",
    "checks": "http://patches.dpdk.org/api/patches/30051/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 [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id F38F41B2E8;\n\tTue, 10 Oct 2017 15:43:33 +0200 (CEST)",
            "from mga11.intel.com (mga11.intel.com [192.55.52.93])\n\tby dpdk.org (Postfix) with ESMTP id 6A49A1B2D6\n\tfor <dev@dpdk.org>; Tue, 10 Oct 2017 15:43:30 +0200 (CEST)",
            "from orsmga001.jf.intel.com ([10.7.209.18])\n\tby fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;\n\t10 Oct 2017 06:43:30 -0700",
            "from unknown (HELO localhost.iind.intel.com) ([10.224.122.216])\n\tby orsmga001.jf.intel.com with ESMTP; 10 Oct 2017 06:43:28 -0700"
        ],
        "X-ExtLoop1": "1",
        "X-IronPort-AV": "E=Sophos; i=\"5.42,505,1500966000\"; d=\"scan'208\";\n\ta=\"1180537398\"",
        "From": "Nikhil Rao <nikhil.rao@intel.com>",
        "To": "jerin.jacob@caviumnetworks.com,\n\tbruce.richardson@intel.com",
        "Cc": "dev@dpdk.org",
        "Date": "Wed, 11 Oct 2017 03:51:31 +0530",
        "Message-Id": "<1507674097-19597-2-git-send-email-nikhil.rao@intel.com>",
        "X-Mailer": "git-send-email 2.7.4",
        "In-Reply-To": "<1507674097-19597-1-git-send-email-nikhil.rao@intel.com>",
        "References": "<1507674097-19597-1-git-send-email-nikhil.rao@intel.com>",
        "Subject": "[dpdk-dev] [PATCH v6 1/7] eventdev: add caps API and PMD callback\n\tfor eth Rx adapter",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <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": "The caps API allows application to retrieve capability information\nneeded to configure the ethernet Rx adapter for the eventdev and\nethdev pair.\n\nFor e.g., the ethdev, eventdev pairing maybe such that all of the\nethdev Rx queues can only be connected to a single event queue, in\nthis case the application is required to pass in -1 as the queue id\nwhen adding a receive queue to the adapter.\n\nSigned-off-by: Nikhil Rao <nikhil.rao@intel.com>\n---\n lib/librte_eventdev/rte_eventdev.h           | 39 ++++++++++++++++++++++++++++\n lib/librte_eventdev/rte_eventdev_pmd.h       | 29 +++++++++++++++++++++\n lib/librte_eventdev/rte_eventdev.c           | 23 ++++++++++++++++\n lib/Makefile                                 |  2 +-\n lib/librte_eventdev/rte_eventdev_version.map |  1 +\n 5 files changed, 93 insertions(+), 1 deletion(-)",
    "diff": "diff --git a/lib/librte_eventdev/rte_eventdev.h b/lib/librte_eventdev/rte_eventdev.h\nindex ca858cce3..1aa01b5c4 100644\n--- a/lib/librte_eventdev/rte_eventdev.h\n+++ b/lib/librte_eventdev/rte_eventdev.h\n@@ -1019,6 +1019,45 @@ struct rte_event {\n \t};\n };\n \n+/* Ethdev Rx adapter capability bitmap flags */\n+#define RTE_EVENT_ETH_RX_ADAPTER_CAP_INTERNAL_PORT\t0x1\n+/**< This flag is sent when the packet transfer mechanism is in HW.\n+ * Ethdev can send packets to the event device using internal event port.\n+ */\n+#define RTE_EVENT_ETH_RX_ADAPTER_CAP_MULTI_EVENTQ\t0x2\n+/**< Adapter supports multiple event queues per ethdev. Every ethdev\n+ * Rx queue can be connected to a unique event queue.\n+ */\n+#define RTE_EVENT_ETH_RX_ADAPTER_CAP_OVERRIDE_FLOW_ID\t0x4\n+/**< The application can override the adapter generated flow ID in the\n+ * event. This flow ID can be specified when adding an ethdev Rx queue\n+ * to the adapter using the ev member of struct rte_event_eth_rx_adapter\n+ * @see struct rte_event_eth_rx_adapter_queue_conf::ev\n+ * @see struct rte_event_eth_rx_adapter_queue_conf::rx_queue_flags\n+ */\n+\n+/**\n+ * Retrieve the event device's ethdev Rx adapter capabilities for the\n+ * specified ethernet port\n+ *\n+ * @param dev_id\n+ *   The identifier of the device.\n+ *\n+ * @param eth_port_id\n+ *   The identifier of the ethernet device.\n+ *\n+ * @param[out] caps\n+ *   A pointer to memory filled with Rx event adapter capabilities.\n+ *\n+ * @return\n+ *   - 0: Success, driver provides Rx event adapter capabilities for the\n+ *\tethernet device.\n+ *   - <0: Error code returned by the driver function.\n+ *\n+ */\n+int\n+rte_event_eth_rx_adapter_caps_get(uint8_t dev_id, uint8_t eth_port_id,\n+\t\t\t\tuint32_t *caps);\n \n struct rte_eventdev_driver;\n struct rte_eventdev_ops;\ndiff --git a/lib/librte_eventdev/rte_eventdev_pmd.h b/lib/librte_eventdev/rte_eventdev_pmd.h\nindex 3d72acf3a..0836f9af5 100644\n--- a/lib/librte_eventdev/rte_eventdev_pmd.h\n+++ b/lib/librte_eventdev/rte_eventdev_pmd.h\n@@ -86,6 +86,8 @@ extern \"C\" {\n #define RTE_EVENTDEV_DETACHED  (0)\n #define RTE_EVENTDEV_ATTACHED  (1)\n \n+struct rte_eth_dev;\n+\n /** Global structure used for maintaining state of allocated event devices */\n struct rte_eventdev_global {\n \tuint8_t nb_devs;\t/**< Number of devices found */\n@@ -429,6 +431,30 @@ typedef int (*eventdev_xstats_get_names_t)(const struct rte_eventdev *dev,\n typedef uint64_t (*eventdev_xstats_get_by_name)(const struct rte_eventdev *dev,\n \t\tconst char *name, unsigned int *id);\n \n+\n+/**\n+ * Retrieve the event device's ethdev Rx adapter capabilities for the\n+ * specified ethernet port\n+ *\n+ * @param dev\n+ *   Event device pointer\n+ *\n+ * @param eth_dev\n+ *   Ethernet device pointer\n+ *\n+ * @param[out] caps\n+ *   A pointer to memory filled with Rx event adapter capabilities.\n+ *\n+ * @return\n+ *   - 0: Success, driver provides Rx event adapter capabilities for the\n+ *\tethernet device.\n+ *   - <0: Error code returned by the driver function.\n+ *\n+ */\n+typedef int (*eventdev_eth_rx_adapter_caps_get_t)\n+\t\t\t\t\t(const struct rte_eventdev *dev,\n+\t\t\t\t\tconst struct rte_eth_dev *eth_dev,\n+\t\t\t\t\tuint32_t *caps);\n /** Event device operations function pointer table */\n struct rte_eventdev_ops {\n \teventdev_info_get_t dev_infos_get;\t/**< Get device info. */\n@@ -468,6 +494,9 @@ struct rte_eventdev_ops {\n \t/**< Get one value by name. */\n \teventdev_xstats_reset_t xstats_reset;\n \t/**< Reset the statistics values in xstats. */\n+\n+\teventdev_eth_rx_adapter_caps_get_t eth_rx_adapter_caps_get;\n+\t/**< Get ethernet Rx adapter capabilities */\n };\n \n /**\ndiff --git a/lib/librte_eventdev/rte_eventdev.c b/lib/librte_eventdev/rte_eventdev.c\nindex e6ed0a32d..378ccb518 100644\n--- a/lib/librte_eventdev/rte_eventdev.c\n+++ b/lib/librte_eventdev/rte_eventdev.c\n@@ -56,6 +56,7 @@\n #include <rte_common.h>\n #include <rte_malloc.h>\n #include <rte_errno.h>\n+#include <rte_ethdev.h>\n \n #include \"rte_eventdev.h\"\n #include \"rte_eventdev_pmd.h\"\n@@ -128,6 +129,28 @@ rte_event_dev_info_get(uint8_t dev_id, struct rte_event_dev_info *dev_info)\n \treturn 0;\n }\n \n+int\n+rte_event_eth_rx_adapter_caps_get(uint8_t dev_id, uint8_t eth_port_id,\n+\t\t\t\tuint32_t *caps)\n+{\n+\tstruct rte_eventdev *dev;\n+\n+\tRTE_EVENTDEV_VALID_DEVID_OR_ERR_RET(dev_id, -EINVAL);\n+\tRTE_ETH_VALID_PORTID_OR_ERR_RET(eth_port_id, -EINVAL);\n+\n+\tdev = &rte_eventdevs[dev_id];\n+\n+\tif (caps == NULL)\n+\t\treturn -EINVAL;\n+\t*caps = 0;\n+\n+\treturn dev->dev_ops->eth_rx_adapter_caps_get ?\n+\t\t\t\t(*dev->dev_ops->eth_rx_adapter_caps_get)(dev,\n+\t\t\t\t\t\t&rte_eth_devices[eth_port_id],\n+\t\t\t\t\t\tcaps)\n+\t\t\t\t: 0;\n+}\n+\n static inline int\n rte_event_dev_queue_config(struct rte_eventdev *dev, uint8_t nb_queues)\n {\ndiff --git a/lib/Makefile b/lib/Makefile\nindex 86caba17b..ccff22c39 100644\n--- a/lib/Makefile\n+++ b/lib/Makefile\n@@ -52,7 +52,7 @@ DIRS-$(CONFIG_RTE_LIBRTE_CRYPTODEV) += librte_cryptodev\n DEPDIRS-librte_cryptodev := librte_eal librte_mempool librte_ring librte_mbuf\n DEPDIRS-librte_cryptodev += librte_kvargs\n DIRS-$(CONFIG_RTE_LIBRTE_EVENTDEV) += librte_eventdev\n-DEPDIRS-librte_eventdev := librte_eal librte_ring\n+DEPDIRS-librte_eventdev := librte_eal librte_ring librte_ether\n DIRS-$(CONFIG_RTE_LIBRTE_VHOST) += librte_vhost\n DEPDIRS-librte_vhost := librte_eal librte_mempool librte_mbuf librte_ether\n DIRS-$(CONFIG_RTE_LIBRTE_HASH) += librte_hash\ndiff --git a/lib/librte_eventdev/rte_eventdev_version.map b/lib/librte_eventdev/rte_eventdev_version.map\nindex 90266a80e..6ab668ae2 100644\n--- a/lib/librte_eventdev/rte_eventdev_version.map\n+++ b/lib/librte_eventdev/rte_eventdev_version.map\n@@ -54,4 +54,5 @@ DPDK_17.11 {\n \trte_event_port_attr_get;\n \trte_event_queue_attr_get;\n \n+\trte_event_eth_rx_adapter_caps_get;\n } DPDK_17.08;\n",
    "prefixes": [
        "dpdk-dev",
        "v6",
        "1/7"
    ]
}