get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 76033,
    "url": "http://patches.dpdk.org/api/patches/76033/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20200826151445.51500-39-cristian.dumitrescu@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": "<20200826151445.51500-39-cristian.dumitrescu@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20200826151445.51500-39-cristian.dumitrescu@intel.com",
    "date": "2020-08-26T15:14:43",
    "name": "[38/40] examples/pipeline: add l2fwd example",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "00d95dd62613888861fa71cfa04bcab9ff3458b4",
    "submitter": {
        "id": 19,
        "url": "http://patches.dpdk.org/api/people/19/?format=api",
        "name": "Cristian Dumitrescu",
        "email": "cristian.dumitrescu@intel.com"
    },
    "delegate": {
        "id": 1,
        "url": "http://patches.dpdk.org/api/users/1/?format=api",
        "username": "tmonjalo",
        "first_name": "Thomas",
        "last_name": "Monjalon",
        "email": "thomas@monjalon.net"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20200826151445.51500-39-cristian.dumitrescu@intel.com/mbox/",
    "series": [
        {
            "id": 11806,
            "url": "http://patches.dpdk.org/api/series/11806/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=11806",
            "date": "2020-08-26T15:14:05",
            "name": "Pipeline alignment with the P4 language",
            "version": 1,
            "mbox": "http://patches.dpdk.org/series/11806/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/76033/comments/",
    "check": "warning",
    "checks": "http://patches.dpdk.org/api/patches/76033/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 dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id D4029A04B1;\n\tWed, 26 Aug 2020 17:24:10 +0200 (CEST)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 244551C2B2;\n\tWed, 26 Aug 2020 17:15:56 +0200 (CEST)",
            "from mga11.intel.com (mga11.intel.com [192.55.52.93])\n by dpdk.org (Postfix) with ESMTP id 386441C191\n for <dev@dpdk.org>; Wed, 26 Aug 2020 17:15:30 +0200 (CEST)",
            "from orsmga004.jf.intel.com ([10.7.209.38])\n by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 26 Aug 2020 08:15:29 -0700",
            "from silpixa00400573.ir.intel.com (HELO\n silpixa00400573.ger.corp.intel.com) ([10.237.223.107])\n by orsmga004.jf.intel.com with ESMTP; 26 Aug 2020 08:15:28 -0700"
        ],
        "IronPort-SDR": [
            "\n nOOZLQ56eOcTzWr9vMbQ+QNNqHynKJ3xwQlMP50iVpimKBKjrBhas+QfmmA9sIb+wIuL/dyLjI\n 6oFI5gkssbBg==",
            "\n VT3tSjYx3humTXs0RVO9shwgvTi89Nmr9rk4NsnpyBQX9tbsA/wsEkSW/TR1JcAxUzeFBUP+ba\n uuIg8KNT1O5g=="
        ],
        "X-IronPort-AV": [
            "E=McAfee;i=\"6000,8403,9725\"; a=\"153879640\"",
            "E=Sophos;i=\"5.76,356,1592895600\"; d=\"scan'208\";a=\"153879640\"",
            "E=Sophos;i=\"5.76,356,1592895600\"; d=\"scan'208\";a=\"444081493\""
        ],
        "X-Amp-Result": "SKIPPED(no attachment in message)",
        "X-Amp-File-Uploaded": "False",
        "X-ExtLoop1": "1",
        "From": "Cristian Dumitrescu <cristian.dumitrescu@intel.com>",
        "To": "dev@dpdk.org",
        "Date": "Wed, 26 Aug 2020 16:14:43 +0100",
        "Message-Id": "<20200826151445.51500-39-cristian.dumitrescu@intel.com>",
        "X-Mailer": "git-send-email 2.17.1",
        "In-Reply-To": "<20200826151445.51500-1-cristian.dumitrescu@intel.com>",
        "References": "<20200826151445.51500-1-cristian.dumitrescu@intel.com>",
        "Subject": "[dpdk-dev] [PATCH 38/40] examples/pipeline: add l2fwd example",
        "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 <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",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "Add L2 Forwarding example to the pipeline application. Example command\nline: ./build/pipeline -l0-1 -- -s ./examples/l2fwd.cli\n\nSigned-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>\n---\n examples/pipeline/Makefile                |   1 +\n examples/pipeline/cli.c                   |  16 ++-\n examples/pipeline/example_l2fwd.c         | 125 ++++++++++++++++++++++\n examples/pipeline/examples/l2fwd.cli      |  25 +++++\n examples/pipeline/examples/l2fwd_pcap.cli |  20 ++++\n examples/pipeline/examples/packet.txt     | 102 ++++++++++++++++++\n examples/pipeline/meson.build             |   1 +\n 7 files changed, 289 insertions(+), 1 deletion(-)\n create mode 100644 examples/pipeline/example_l2fwd.c\n create mode 100644 examples/pipeline/examples/l2fwd.cli\n create mode 100644 examples/pipeline/examples/l2fwd_pcap.cli\n create mode 100644 examples/pipeline/examples/packet.txt",
    "diff": "diff --git a/examples/pipeline/Makefile b/examples/pipeline/Makefile\nindex dcc0f67bf..405978ced 100644\n--- a/examples/pipeline/Makefile\n+++ b/examples/pipeline/Makefile\n@@ -10,6 +10,7 @@ SRCS-y += conn.c\n SRCS-y += main.c\n SRCS-y += obj.c\n SRCS-y += thread.c\n+SRCS-y += example_l2fwd.c\n \n # Build using pkg-config variables if possible\n ifeq ($(shell pkg-config --exists libdpdk && echo 0),0)\ndiff --git a/examples/pipeline/cli.c b/examples/pipeline/cli.c\nindex f68a1a924..a54cd79ff 100644\n--- a/examples/pipeline/cli.c\n+++ b/examples/pipeline/cli.c\n@@ -730,6 +730,7 @@ cmd_pipeline_port_out(char **tokens,\n static const char cmd_pipeline_build_help[] =\n \"pipeline <pipeline_name> build <app>\\n\";\n \n+int pipeline_setup_l2fwd(struct rte_swx_pipeline *p);\n static void\n cmd_pipeline_build(char **tokens,\n \tuint32_t n_tokens,\n@@ -738,7 +739,7 @@ cmd_pipeline_build(char **tokens,\n \tvoid *obj)\n {\n \tstruct pipeline *p;\n-\tchar *name;\n+\tchar *name, *app;\n \tint status;\n \n \tif (n_tokens != 4) {\n@@ -753,6 +754,19 @@ cmd_pipeline_build(char **tokens,\n \t\treturn;\n \t}\n \n+\tapp = tokens[3];\n+\tif (!strcmp(app, \"l2fwd\"))\n+\t\tstatus = pipeline_setup_l2fwd(p->p);\n+\telse {\n+\t\tsnprintf(out, out_size, MSG_ARG_INVALID, tokens[0]);\n+\t\treturn;\n+\t}\n+\n+\tif (status) {\n+\t\tsnprintf(out, out_size, \"Pipeline build: app setup error.\");\n+\t\treturn;\n+\t}\n+\n \tstatus = rte_swx_pipeline_build(p->p);\n \tif (status) {\n \t\tsnprintf(out, out_size, \"Pipeline build failed.\");\ndiff --git a/examples/pipeline/example_l2fwd.c b/examples/pipeline/example_l2fwd.c\nnew file mode 100644\nindex 000000000..a0b627709\n--- /dev/null\n+++ b/examples/pipeline/example_l2fwd.c\n@@ -0,0 +1,125 @@\n+/* SPDX-License-Identifier: BSD-3-Clause\n+ * Copyright(c) 2020 Intel Corporation\n+ */\n+#include <stdlib.h>\n+#include <string.h>\n+#include <stdio.h>\n+\n+#include <rte_common.h>\n+\n+#include \"rte_swx_pipeline.h\"\n+#include \"rte_swx_port_ethdev.h\"\n+#include \"rte_swx_port_source_sink.h\"\n+#include \"rte_swx_table_em.h\"\n+\n+#define CHECK(condition)                                                       \\\n+do {                                                                           \\\n+\tif (!(condition)) {                                                    \\\n+\t\tprintf(\"Error in function %s at line %d\\n\",                    \\\n+\t\t\t__FUNCTION__, __LINE__);                               \\\n+\t\treturn -1;                                                     \\\n+\t}                                                                      \\\n+} while (0)\n+\n+/*\n+ * Packet headers.\n+ */\n+\n+/*\n+ * Packet meta-data.\n+ */\n+static struct rte_swx_field_params metadata_type[] = {\n+\t{\"port_in\", 32},\n+\t{\"port_out\", 32},\n+};\n+\n+/*\n+ * Actions.\n+ */\n+static const char *action_passthrough_instructions[] = {\n+\t\"return\",\n+};\n+\n+/*\n+ * Tables.\n+ */\n+static const char *table_stub_actions[] = {\"passthrough\"};\n+\n+static struct rte_swx_pipeline_table_params table_stub_params = {\n+\t/* Match. */\n+\t.fields = NULL,\n+\t.n_fields = 0,\n+\n+\t/* Action. */\n+\t.action_names = table_stub_actions,\n+\t.n_actions = RTE_DIM(table_stub_actions),\n+\t.default_action_name = \"passthrough\",\n+\t.default_action_data = NULL,\n+\t.default_action_is_const = 0,\n+};\n+\n+/*\n+ * Pipeline.\n+ */\n+static const char *pipeline_instructions[] = {\n+\t\"rx m.port_in\",\n+\t\"table stub\",\n+\t\"tx m.port_in\",\n+};\n+\n+int\n+pipeline_setup_l2fwd(struct rte_swx_pipeline *p);\n+\n+int\n+pipeline_setup_l2fwd(struct rte_swx_pipeline *p)\n+{\n+\tint err;\n+\n+\t/*\n+\t * Packet headers.\n+\t */\n+\n+\t/*\n+\t * Packet meta-data.\n+\t */\n+\terr = rte_swx_pipeline_struct_type_register(p,\n+\t\t\"metadata_type\",\n+\t\tmetadata_type,\n+\t\tRTE_DIM(metadata_type));\n+\tCHECK(!err);\n+\n+\terr = rte_swx_pipeline_packet_metadata_register(p,\n+\t\t\"metadata_type\");\n+\tCHECK(!err);\n+\n+\t/*\n+\t * Actions.\n+\t */\n+\terr = rte_swx_pipeline_action_config(p,\n+\t\t\"passthrough\",\n+\t\tNULL,\n+\t\taction_passthrough_instructions,\n+\t\tRTE_DIM(action_passthrough_instructions));\n+\tCHECK(!err);\n+\n+\t/*\n+\t * Tables.\n+\t */\n+\terr = rte_swx_pipeline_table_config(p,\n+\t\t\"stub\",\n+\t\t&table_stub_params,\n+\t\tNULL,\n+\t\tNULL,\n+\t\t0);\n+\tCHECK(!err);\n+\n+\t/*\n+\t * Pipeline.\n+\t */\n+\terr = rte_swx_pipeline_instructions_config(p,\n+\t\tpipeline_instructions,\n+\t\tRTE_DIM(pipeline_instructions));\n+\tCHECK(!err);\n+\n+\treturn 0;\n+}\ndiff --git a/examples/pipeline/examples/l2fwd.cli b/examples/pipeline/examples/l2fwd.cli\nnew file mode 100644\nindex 000000000..15f8b1782\n--- /dev/null\n+++ b/examples/pipeline/examples/l2fwd.cli\n@@ -0,0 +1,25 @@\n+; SPDX-License-Identifier: BSD-3-Clause\n+; Copyright(c) 2010-2020 Intel Corporation\n+\n+mempool MEMPOOL0 buffer 2304 pool 32K cache 256 cpu 0\n+\n+link LINK0 dev 0000:18:00.0 rxq 1 128 MEMPOOL0 txq 1 512 promiscuous on\n+link LINK1 dev 0000:18:00.1 rxq 1 128 MEMPOOL0 txq 1 512 promiscuous on\n+link LINK2 dev 0000:3b:00.0 rxq 1 128 MEMPOOL0 txq 1 512 promiscuous on\n+link LINK3 dev 0000:3b:00.1 rxq 1 128 MEMPOOL0 txq 1 512 promiscuous on\n+\n+pipeline PIPELINE0 create 0\n+\n+pipeline PIPELINE0 port in 0 link LINK0 rxq 0 bsz 32\n+pipeline PIPELINE0 port in 1 link LINK1 rxq 0 bsz 32\n+pipeline PIPELINE0 port in 2 link LINK2 rxq 0 bsz 32\n+pipeline PIPELINE0 port in 3 link LINK3 rxq 0 bsz 32\n+\n+pipeline PIPELINE0 port out 0 link LINK0 txq 0 bsz 32\n+pipeline PIPELINE0 port out 1 link LINK1 txq 0 bsz 32\n+pipeline PIPELINE0 port out 2 link LINK2 txq 0 bsz 32\n+pipeline PIPELINE0 port out 3 link LINK3 txq 0 bsz 32\n+\n+pipeline PIPELINE0 build l2fwd\n+\n+thread 1 pipeline PIPELINE0 enable\ndiff --git a/examples/pipeline/examples/l2fwd_pcap.cli b/examples/pipeline/examples/l2fwd_pcap.cli\nnew file mode 100644\nindex 000000000..f9c37ab7e\n--- /dev/null\n+++ b/examples/pipeline/examples/l2fwd_pcap.cli\n@@ -0,0 +1,20 @@\n+; SPDX-License-Identifier: BSD-3-Clause\n+; Copyright(c) 2010-2020 Intel Corporation\n+\n+mempool MEMPOOL0 buffer 2304 pool 32K cache 256 cpu 0\n+\n+pipeline PIPELINE0 create 0\n+\n+pipeline PIPELINE0 port in 0 source MEMPOOL0 ./examples/packet.pcap\n+pipeline PIPELINE0 port in 1 source MEMPOOL0 ./examples/packet.pcap\n+pipeline PIPELINE0 port in 2 source MEMPOOL0 ./examples/packet.pcap\n+pipeline PIPELINE0 port in 3 source MEMPOOL0 ./examples/packet.pcap\n+\n+pipeline PIPELINE0 port out 0 sink none\n+pipeline PIPELINE0 port out 1 sink none\n+pipeline PIPELINE0 port out 2 sink none\n+pipeline PIPELINE0 port out 3 sink none\n+\n+pipeline PIPELINE0 build l2fwd\n+\n+thread 1 pipeline PIPELINE0 enable\ndiff --git a/examples/pipeline/examples/packet.txt b/examples/pipeline/examples/packet.txt\nnew file mode 100644\nindex 000000000..d1c79b7e7\n--- /dev/null\n+++ b/examples/pipeline/examples/packet.txt\n@@ -0,0 +1,102 @@\n+# SPDX-License-Identifier: BSD-3-Clause\n+# Copyright(c) 2020 Intel Corporation\n+#\n+\n+#Text to PCAP: text2pcap packet.txt packet.pcap\n+#PCAP to text: tcpdump -r packet.pcap -xx\n+\n+#Packet 0\n+000000 aa bb cc dd 00 00 b0 b1 b2 b3 b4 b5 08 00 45 00\n+000010 00 2e 00 00 00 00 40 11 00 00 c0 c1 c2 c3 d0 d1\n+000020 d2 d3 e0 e1 f0 f1 00 1a 00 00 00 01 02 03 04 05\n+000030 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11\n+\n+#Packet 1\n+000000 aa bb cc dd 00 01 b0 b1 b2 b3 b4 b5 08 00 45 00\n+000010 00 2e 00 00 00 00 40 11 00 00 c0 c1 c2 c3 d0 d1\n+000020 d2 d3 e0 e1 f0 f1 00 1a 00 00 00 01 02 03 04 05\n+000030 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11\n+\n+#Packet 2\n+000000 aa bb cc dd 00 02 b0 b1 b2 b3 b4 b5 08 00 45 00\n+000010 00 2e 00 00 00 00 40 11 00 00 c0 c1 c2 c3 d0 d1\n+000020 d2 d3 e0 e1 f0 f1 00 1a 00 00 00 01 02 03 04 05\n+000030 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11\n+\n+#Packet 3\n+000000 aa bb cc dd 00 03 b0 b1 b2 b3 b4 b5 08 00 45 00\n+000010 00 2e 00 00 00 00 40 11 00 00 c0 c1 c2 c3 d0 d1\n+000020 d2 d3 e0 e1 f0 f1 00 1a 00 00 00 01 02 03 04 05\n+000030 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11\n+\n+#Packet 4\n+000000 aa bb cc dd 00 04 b0 b1 b2 b3 b4 b5 08 00 45 00\n+000010 00 2e 00 00 00 00 40 11 00 00 c0 c1 c2 c3 d0 d1\n+000020 d2 d3 e0 e1 f0 f1 00 1a 00 00 00 01 02 03 04 05\n+000030 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11\n+\n+#Packet 5\n+000000 aa bb cc dd 00 05 b0 b1 b2 b3 b4 b5 08 00 45 00\n+000010 00 2e 00 00 00 00 40 11 00 00 c0 c1 c2 c3 d0 d1\n+000020 d2 d3 e0 e1 f0 f1 00 1a 00 00 00 01 02 03 04 05\n+000030 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11\n+\n+#Packet 6\n+000000 aa bb cc dd 00 06 b0 b1 b2 b3 b4 b5 08 00 45 00\n+000010 00 2e 00 00 00 00 40 11 00 00 c0 c1 c2 c3 d0 d1\n+000020 d2 d3 e0 e1 f0 f1 00 1a 00 00 00 01 02 03 04 05\n+000030 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11\n+\n+#Packet 7\n+000000 aa bb cc dd 00 07 b0 b1 b2 b3 b4 b5 08 00 45 00\n+000010 00 2e 00 00 00 00 40 11 00 00 c0 c1 c2 c3 d0 d1\n+000020 d2 d3 e0 e1 f0 f1 00 1a 00 00 00 01 02 03 04 05\n+000030 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11\n+\n+#Packet 8\n+000000 aa bb cc dd 00 08 b0 b1 b2 b3 b4 b5 08 00 45 00\n+000010 00 2e 00 00 00 00 40 11 00 00 c0 c1 c2 c3 d0 d1\n+000020 d2 d3 e0 e1 f0 f1 00 1a 00 00 00 01 02 03 04 05\n+000030 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11\n+\n+#Packet 9\n+000000 aa bb cc dd 00 09 b0 b1 b2 b3 b4 b5 08 00 45 00\n+000010 00 2e 00 00 00 00 40 11 00 00 c0 c1 c2 c3 d0 d1\n+000020 d2 d3 e0 e1 f0 f1 00 1a 00 00 00 01 02 03 04 05\n+000030 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11\n+\n+#Packet 10\n+000000 aa bb cc dd 00 0a b0 b1 b2 b3 b4 b5 08 00 45 00\n+000010 00 2e 00 00 00 00 40 11 00 00 c0 c1 c2 c3 d0 d1\n+000020 d2 d3 e0 e1 f0 f1 00 1a 00 00 00 01 02 03 04 05\n+000030 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11\n+\n+#Packet 11\n+000000 aa bb cc dd 00 0b b0 b1 b2 b3 b4 b5 08 00 45 00\n+000010 00 2e 00 00 00 00 40 11 00 00 c0 c1 c2 c3 d0 d1\n+000020 d2 d3 e0 e1 f0 f1 00 1a 00 00 00 01 02 03 04 05\n+000030 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11\n+\n+#Packet 12\n+000000 aa bb cc dd 00 0c b0 b1 b2 b3 b4 b5 08 00 45 00\n+000010 00 2e 00 00 00 00 40 11 00 00 c0 c1 c2 c3 d0 d1\n+000020 d2 d3 e0 e1 f0 f1 00 1a 00 00 00 01 02 03 04 05\n+000030 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11\n+\n+#Packet 13\n+000000 aa bb cc dd 00 0d b0 b1 b2 b3 b4 b5 08 00 45 00\n+000010 00 2e 00 00 00 00 40 11 00 00 c0 c1 c2 c3 d0 d1\n+000020 d2 d3 e0 e1 f0 f1 00 1a 00 00 00 01 02 03 04 05\n+000030 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11\n+\n+#Packet 14\n+000000 aa bb cc dd 00 0e b0 b1 b2 b3 b4 b5 08 00 45 00\n+000010 00 2e 00 00 00 00 40 11 00 00 c0 c1 c2 c3 d0 d1\n+000020 d2 d3 e0 e1 f0 f1 00 1a 00 00 00 01 02 03 04 05\n+000030 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11\n+\n+#Packet 15\n+000000 aa bb cc dd 00 0f b0 b1 b2 b3 b4 b5 08 00 45 00\n+000010 00 2e 00 00 00 00 40 11 00 00 c0 c1 c2 c3 d0 d1\n+000020 d2 d3 e0 e1 f0 f1 00 1a 00 00 00 01 02 03 04 05\n+000030 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11\ndiff --git a/examples/pipeline/meson.build b/examples/pipeline/meson.build\nindex 4f47dec3e..b16de3714 100644\n--- a/examples/pipeline/meson.build\n+++ b/examples/pipeline/meson.build\n@@ -15,4 +15,5 @@ sources = files(\n \t'main.c',\n \t'obj.c',\n \t'thread.c',\n+\t'example_l2fwd.c',\n )\n",
    "prefixes": [
        "38/40"
    ]
}