get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 60762,
    "url": "http://patches.dpdk.org/api/patches/60762/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20191009073236.32661-1-nipun.gupta@nxp.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": "<20191009073236.32661-1-nipun.gupta@nxp.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20191009073236.32661-1-nipun.gupta@nxp.com",
    "date": "2019-10-09T07:32:36",
    "name": "[v4] eventdev: flag to identify same destined packets enqueue",
    "commit_ref": null,
    "pull_url": null,
    "state": "changes-requested",
    "archived": true,
    "hash": "67a221ecd89873a39b2e2f2c82df3736fd7e880e",
    "submitter": {
        "id": 471,
        "url": "http://patches.dpdk.org/api/people/471/?format=api",
        "name": "Nipun Gupta",
        "email": "nipun.gupta@nxp.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/20191009073236.32661-1-nipun.gupta@nxp.com/mbox/",
    "series": [
        {
            "id": 6756,
            "url": "http://patches.dpdk.org/api/series/6756/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=6756",
            "date": "2019-10-09T07:32:36",
            "name": "[v4] eventdev: flag to identify same destined packets enqueue",
            "version": 4,
            "mbox": "http://patches.dpdk.org/series/6756/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/60762/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/60762/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 90C9B1C0AF;\n\tWed,  9 Oct 2019 09:48:16 +0200 (CEST)",
            "from inva021.nxp.com (inva021.nxp.com [92.121.34.21])\n\tby dpdk.org (Postfix) with ESMTP id ED4DE1BFBA\n\tfor <dev@dpdk.org>; Wed,  9 Oct 2019 09:48:14 +0200 (CEST)",
            "from inva021.nxp.com (localhost [127.0.0.1])\n\tby inva021.eu-rdc02.nxp.com (Postfix) with ESMTP id 7F31220038A;\n\tWed,  9 Oct 2019 09:48:14 +0200 (CEST)",
            "from invc005.ap-rdc01.nxp.com (invc005.ap-rdc01.nxp.com\n\t[165.114.16.14])\n\tby inva021.eu-rdc02.nxp.com (Postfix) with ESMTP id BACE22008CA;\n\tWed,  9 Oct 2019 09:48:07 +0200 (CEST)",
            "from GDB1.ap.freescale.net (GDB1.ap.freescale.net [10.232.132.179])\n\tby invc005.ap-rdc01.nxp.com (Postfix) with ESMTP id 89E36402B1;\n\tWed,  9 Oct 2019 15:47:58 +0800 (SGT)"
        ],
        "From": "Nipun Gupta <nipun.gupta@nxp.com>",
        "To": "dev@dpdk.org",
        "Cc": "jerinj@marvell.com, aconole@redhat.com, pbhagavatula@marvell.com,\n\tskori@marvell.com, hemant.agrawal@nxp.com, bruce.richardson@intel.com,\n\tmarko.kovacevic@intel.com, orika@mellanox.com, radu.nicolau@intel.com,\n\ttomasz.kantecki@intel.com, harry.van.haaren@intel.com,\n\tnikhil.rao@intel.com, Nipun Gupta <nipun.gupta@nxp.com>",
        "Date": "Wed,  9 Oct 2019 13:02:36 +0530",
        "Message-Id": "<20191009073236.32661-1-nipun.gupta@nxp.com>",
        "X-Mailer": "git-send-email 2.17.1",
        "In-Reply-To": "<20191001064641.28404-1-nipun.gupta@nxp.com>",
        "References": "<20191001064641.28404-1-nipun.gupta@nxp.com>",
        "X-Virus-Scanned": "ClamAV using ClamSMTP",
        "Subject": "[dpdk-dev] [PATCH v4] eventdev: flag to identify same destined\n\tpackets enqueue",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n\t<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\t<mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "This patch introduces a `flag` in the Eth TX adapter enqueue API.\nSome drivers may support burst functionality only with the packets\nhaving same destination device and queue.\n\nThe flag `RTE_EVENT_ETH_TX_ADAPTER_ENQUEUE_SAME_DEST` can be used\nto indicate this so the underlying driver, for drivers to utilize\nburst functionality appropriately.\n\nSigned-off-by: Nipun Gupta <nipun.gupta@nxp.com>\nAcked-by: Jerin Jacob <jerinj@marvell.com>\n---\n\nChanges in v4:\n - Update rel note specifying the API change\n - Remove redundant rte_event_tx_adapter_enqueue_same_dest API\n\nChanges in v3:\n - remove flag from internal txa_enqueue_same_dest internal API\n - ABI version update in makefile, meson and rel_notes\n - Few comments update\n\nChanges in v2:\n - have separate internal API in tx adapter for sending burst packets to\n   same eth dev, queue pair on the basis of the passed flag\n - fix compilation of examples/eventdev_pipeline/\n\n app/test-eventdev/test_pipeline_common.h      |  6 +++---\n .../prog_guide/event_ethernet_tx_adapter.rst  |  3 ++-\n doc/guides/rel_notes/release_19_11.rst        |  7 ++++++-\n .../eventdev_pipeline/pipeline_worker_tx.c    |  2 +-\n lib/librte_eventdev/Makefile                  |  2 +-\n lib/librte_eventdev/meson.build               |  2 +-\n .../rte_event_eth_tx_adapter.h                | 19 +++++++++++++++++--\n lib/librte_eventdev/rte_eventdev.c            |  1 +\n lib/librte_eventdev/rte_eventdev.h            | 10 ++++++++++\n 9 files changed, 42 insertions(+), 10 deletions(-)",
    "diff": "diff --git a/app/test-eventdev/test_pipeline_common.h b/app/test-eventdev/test_pipeline_common.h\nindex 0440b9e29..6e73c6ab2 100644\n--- a/app/test-eventdev/test_pipeline_common.h\n+++ b/app/test-eventdev/test_pipeline_common.h\n@@ -106,7 +106,7 @@ pipeline_event_tx(const uint8_t dev, const uint8_t port,\n \t\tstruct rte_event * const ev)\n {\n \trte_event_eth_tx_adapter_txq_set(ev->mbuf, 0);\n-\twhile (!rte_event_eth_tx_adapter_enqueue(dev, port, ev, 1))\n+\twhile (!rte_event_eth_tx_adapter_enqueue(dev, port, ev, 1, 0))\n \t\trte_pause();\n }\n \n@@ -116,10 +116,10 @@ pipeline_event_tx_burst(const uint8_t dev, const uint8_t port,\n {\n \tuint16_t enq;\n \n-\tenq = rte_event_eth_tx_adapter_enqueue(dev, port, ev, nb_rx);\n+\tenq = rte_event_eth_tx_adapter_enqueue(dev, port, ev, nb_rx, 0);\n \twhile (enq < nb_rx) {\n \t\tenq += rte_event_eth_tx_adapter_enqueue(dev, port,\n-\t\t\t\tev + enq, nb_rx - enq);\n+\t\t\t\tev + enq, nb_rx - enq, 0);\n \t}\n }\n \ndiff --git a/doc/guides/prog_guide/event_ethernet_tx_adapter.rst b/doc/guides/prog_guide/event_ethernet_tx_adapter.rst\nindex 192f9e1cf..a8c13e136 100644\n--- a/doc/guides/prog_guide/event_ethernet_tx_adapter.rst\n+++ b/doc/guides/prog_guide/event_ethernet_tx_adapter.rst\n@@ -137,11 +137,12 @@ should use the ``rte_event_enqueue_burst()`` function.\n \tif (cap & RTE_EVENT_ETH_TX_ADAPTER_CAP_INTERNAL_PORT) {\n \n \t\tevent.mbuf = m;\n+\t\teq_flags = 0;\n \n \t\tm->port = tx_port;\n \t\trte_event_eth_tx_adapter_txq_set(m, tx_queue_id);\n \n-\t\trte_event_eth_tx_adapter_enqueue(dev_id, ev_port, &event, 1);\n+\t\trte_event_eth_tx_adapter_enqueue(dev_id, ev_port, &event, 1, eq_flags);\n \t} else {\n \n \t\tevent.queue_id = qid; /* event queue linked to adapter port */\ndiff --git a/doc/guides/rel_notes/release_19_11.rst b/doc/guides/rel_notes/release_19_11.rst\nindex 27cfbd9e3..051ab26b8 100644\n--- a/doc/guides/rel_notes/release_19_11.rst\n+++ b/doc/guides/rel_notes/release_19_11.rst\n@@ -94,6 +94,11 @@ API Changes\n    Also, make sure to start the actual text at the margin.\n    =========================================================\n \n+* event: The function ``rte_event_eth_tx_adapter_enqueue`` takes an additional\n+  input as ``flags``. Flag ``RTE_EVENT_ETH_TX_ADAPTER_ENQUEUE_SAME_DEST`` which\n+  has been introduced in this release is used when used when all the packets\n+  enqueued in the tx adapter are destined for the same Ethernet port & Tx queue.\n+\n \n ABI Changes\n -----------\n@@ -146,7 +151,7 @@ The libraries prepended with a plus sign were incremented in this version.\n      librte_eal.so.11\n      librte_efd.so.1\n      librte_ethdev.so.12\n-     librte_eventdev.so.7\n+     librte_eventdev.so.8\n      librte_flow_classify.so.1\n      librte_gro.so.1\n      librte_gso.so.1\ndiff --git a/examples/eventdev_pipeline/pipeline_worker_tx.c b/examples/eventdev_pipeline/pipeline_worker_tx.c\nindex 8961cd656..a0f40c27c 100644\n--- a/examples/eventdev_pipeline/pipeline_worker_tx.c\n+++ b/examples/eventdev_pipeline/pipeline_worker_tx.c\n@@ -40,7 +40,7 @@ worker_tx_pkt(const uint8_t dev, const uint8_t port, struct rte_event *ev)\n {\n \texchange_mac(ev->mbuf);\n \trte_event_eth_tx_adapter_txq_set(ev->mbuf, 0);\n-\twhile (!rte_event_eth_tx_adapter_enqueue(dev, port, ev, 1))\n+\twhile (!rte_event_eth_tx_adapter_enqueue(dev, port, ev, 1, 0))\n \t\trte_pause();\n }\n \ndiff --git a/lib/librte_eventdev/Makefile b/lib/librte_eventdev/Makefile\nindex cd3ff8040..9e6a99aa1 100644\n--- a/lib/librte_eventdev/Makefile\n+++ b/lib/librte_eventdev/Makefile\n@@ -8,7 +8,7 @@ include $(RTE_SDK)/mk/rte.vars.mk\n LIB = librte_eventdev.a\n \n # library version\n-LIBABIVER := 7\n+LIBABIVER := 8\n \n # build flags\n CFLAGS += -DALLOW_EXPERIMENTAL_API\ndiff --git a/lib/librte_eventdev/meson.build b/lib/librte_eventdev/meson.build\nindex 19541f23f..9ba6c0393 100644\n--- a/lib/librte_eventdev/meson.build\n+++ b/lib/librte_eventdev/meson.build\n@@ -1,7 +1,7 @@\n # SPDX-License-Identifier: BSD-3-Clause\n # Copyright(c) 2017 Intel Corporation\n \n-version = 7\n+version = 8\n allow_experimental_apis = true\n \n if is_linux\ndiff --git a/lib/librte_eventdev/rte_event_eth_tx_adapter.h b/lib/librte_eventdev/rte_event_eth_tx_adapter.h\nindex c848261c4..93b717af9 100644\n--- a/lib/librte_eventdev/rte_event_eth_tx_adapter.h\n+++ b/lib/librte_eventdev/rte_event_eth_tx_adapter.h\n@@ -300,6 +300,11 @@ rte_event_eth_tx_adapter_txq_get(struct rte_mbuf *pkt)\n int\n rte_event_eth_tx_adapter_event_port_get(uint8_t id, uint8_t *event_port_id);\n \n+#define RTE_EVENT_ETH_TX_ADAPTER_ENQUEUE_SAME_DEST\t0x1\n+/**< This flag is used when all the packets enqueued in the tx adapter are\n+ * destined for the same Ethernet port & Tx queue.\n+ */\n+\n /**\n  * Enqueue a burst of events objects or an event object supplied in *rte_event*\n  * structure on an  event device designated by its *dev_id* through the event\n@@ -324,6 +329,10 @@ rte_event_eth_tx_adapter_event_port_get(uint8_t id, uint8_t *event_port_id);\n  *  The number of event objects to enqueue, typically number of\n  *  rte_event_port_attr_get(...RTE_EVENT_PORT_ATTR_ENQ_DEPTH...)\n  *  available for this port.\n+ * @param flags\n+ *  RTE_EVENT_ETH_TX_ADAPTER_ENQUEUE_ flags.\n+ *  #RTE_EVENT_ETH_TX_ADAPTER_ENQUEUE_SAME_DEST signifies that all the packets\n+ *  which are enqueued are destined for the same Ethernet port & Tx queue.\n  *\n  * @return\n  *   The number of event objects actually enqueued on the event device. The\n@@ -343,7 +352,8 @@ static inline uint16_t\n rte_event_eth_tx_adapter_enqueue(uint8_t dev_id,\n \t\t\t\tuint8_t port_id,\n \t\t\t\tstruct rte_event ev[],\n-\t\t\t\tuint16_t nb_events)\n+\t\t\t\tuint16_t nb_events,\n+\t\t\t\tconst uint8_t flags)\n {\n \tconst struct rte_eventdev *dev = &rte_eventdevs[dev_id];\n \n@@ -359,7 +369,12 @@ rte_event_eth_tx_adapter_enqueue(uint8_t dev_id,\n \t\treturn 0;\n \t}\n #endif\n-\treturn dev->txa_enqueue(dev->data->ports[port_id], ev, nb_events);\n+\tif (flags)\n+\t\treturn dev->txa_enqueue_same_dest(dev->data->ports[port_id],\n+\t\t\t\t\t\t  ev, nb_events);\n+\telse\n+\t\treturn dev->txa_enqueue(dev->data->ports[port_id], ev,\n+\t\t\t\t\tnb_events);\n }\n \n /**\ndiff --git a/lib/librte_eventdev/rte_eventdev.c b/lib/librte_eventdev/rte_eventdev.c\nindex f44c869cb..b987e0745 100644\n--- a/lib/librte_eventdev/rte_eventdev.c\n+++ b/lib/librte_eventdev/rte_eventdev.c\n@@ -1351,6 +1351,7 @@ rte_event_pmd_allocate(const char *name, int socket_id)\n \teventdev = &rte_eventdevs[dev_id];\n \n \teventdev->txa_enqueue = rte_event_tx_adapter_enqueue;\n+\teventdev->txa_enqueue_same_dest = rte_event_tx_adapter_enqueue;\n \n \tif (eventdev->data == NULL) {\n \t\tstruct rte_eventdev_data *eventdev_data = NULL;\ndiff --git a/lib/librte_eventdev/rte_eventdev.h b/lib/librte_eventdev/rte_eventdev.h\nindex 5044a13d0..ced6f29d9 100644\n--- a/lib/librte_eventdev/rte_eventdev.h\n+++ b/lib/librte_eventdev/rte_eventdev.h\n@@ -1230,6 +1230,12 @@ typedef uint16_t (*event_tx_adapter_enqueue)(void *port,\n \t\t\t\tstruct rte_event ev[], uint16_t nb_events);\n /**< @internal Enqueue burst of events on port of a device */\n \n+typedef uint16_t (*event_tx_adapter_enqueue_same_dest)(void *port,\n+\t\tstruct rte_event ev[], uint16_t nb_events);\n+/**< @internal Enqueue burst of events on port of a device supporting\n+ * burst having same destination Ethernet port & Tx queue.\n+ */\n+\n #define RTE_EVENTDEV_NAME_MAX_LEN\t(64)\n /**< @internal Max length of name of event PMD */\n \n@@ -1292,6 +1298,10 @@ struct rte_eventdev {\n \t/**< Pointer to PMD dequeue function. */\n \tevent_dequeue_burst_t dequeue_burst;\n \t/**< Pointer to PMD dequeue burst function. */\n+\tevent_tx_adapter_enqueue_same_dest txa_enqueue_same_dest;\n+\t/**< Pointer to PMD eth Tx adapter burst enqueue function with\n+\t * events destined to same Eth port & Tx queue.\n+\t */\n \tevent_tx_adapter_enqueue txa_enqueue;\n \t/**< Pointer to PMD eth Tx adapter enqueue function. */\n \tstruct rte_eventdev_data *data;\n",
    "prefixes": [
        "v4"
    ]
}