get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 10673,
    "url": "http://patches.dpdk.org/api/patches/10673/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/1455867097-19173-2-git-send-email-xutao.sun@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": "<1455867097-19173-2-git-send-email-xutao.sun@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1455867097-19173-2-git-send-email-xutao.sun@intel.com",
    "date": "2016-02-19T07:31:34",
    "name": "[dpdk-dev,v5,1/4] lib/ether: optimize the'rte_eth_tunnel_filter_conf' structure",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "11bd1238cd44afc38b50775bf30cb521df142e98",
    "submitter": {
        "id": 347,
        "url": "http://patches.dpdk.org/api/people/347/?format=api",
        "name": "Xutao Sun",
        "email": "xutao.sun@intel.com"
    },
    "delegate": null,
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/1455867097-19173-2-git-send-email-xutao.sun@intel.com/mbox/",
    "series": [],
    "comments": "http://patches.dpdk.org/api/patches/10673/comments/",
    "check": "pending",
    "checks": "http://patches.dpdk.org/api/patches/10673/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 6A653C4F2;\n\tFri, 19 Feb 2016 08:31:52 +0100 (CET)",
            "from mga03.intel.com (mga03.intel.com [134.134.136.65])\n\tby dpdk.org (Postfix) with ESMTP id E2A03C4D6\n\tfor <dev@dpdk.org>; Fri, 19 Feb 2016 08:31:49 +0100 (CET)",
            "from fmsmga001.fm.intel.com ([10.253.24.23])\n\tby orsmga103.jf.intel.com with ESMTP; 18 Feb 2016 23:31:48 -0800",
            "from shvmail01.sh.intel.com ([10.239.29.42])\n\tby fmsmga001.fm.intel.com with ESMTP; 18 Feb 2016 23:31:47 -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 u1J7VjtO013448;\n\tFri, 19 Feb 2016 15:31:45 +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 u1J7VfTm019227; Fri, 19 Feb 2016 15:31:43 +0800",
            "(from xutaosun@localhost)\n\tby shecgisg004.sh.intel.com (8.13.6/8.13.6/Submit) id u1J7VfSr019223; \n\tFri, 19 Feb 2016 15:31:41 +0800"
        ],
        "X-ExtLoop1": "1",
        "X-IronPort-AV": "E=Sophos;i=\"5.22,469,1449561600\"; d=\"scan'208\";a=\"906628773\"",
        "From": "Xutao Sun <xutao.sun@intel.com>",
        "To": "dev@dpdk.org",
        "Date": "Fri, 19 Feb 2016 15:31:34 +0800",
        "Message-Id": "<1455867097-19173-2-git-send-email-xutao.sun@intel.com>",
        "X-Mailer": "git-send-email 1.7.4.1",
        "In-Reply-To": "<1455867097-19173-1-git-send-email-xutao.sun@intel.com>",
        "References": "<1455789499-15975-1-git-send-email-xutao.sun@intel.com>\n\t<1455867097-19173-1-git-send-email-xutao.sun@intel.com>",
        "Subject": "[dpdk-dev] [PATCH v5 1/4] lib/ether: optimize\n\tthe'rte_eth_tunnel_filter_conf' structure",
        "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": "Change the fields of outer_mac and inner_mac from pointer to struct in order to keep the code's readability.\n\nSigned-off-by: Xutao Sun <xutao.sun@intel.com>\nSigned-off-by: Jijiang Liu <jijiang.liu@intel.com>\n---\n app/test-pmd/cmdline.c                      |  6 +++--\n doc/guides/rel_notes/deprecation.rst        |  5 -----\n doc/guides/rel_notes/release_16_04.rst      |  2 ++\n doc/guides/testpmd_app_ug/testpmd_funcs.rst | 35 +++++++++++++++++++++++++++--\n drivers/net/i40e/i40e_ethdev.c              | 12 +++++-----\n lib/librte_ether/rte_eth_ctrl.h             |  4 ++--\n 6 files changed, 47 insertions(+), 17 deletions(-)",
    "diff": "diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c\nindex 52e9f5f..c707318 100644\n--- a/app/test-pmd/cmdline.c\n+++ b/app/test-pmd/cmdline.c\n@@ -6640,8 +6640,10 @@ cmd_tunnel_filter_parsed(void *parsed_result,\n \tstruct rte_eth_tunnel_filter_conf tunnel_filter_conf;\n \tint ret = 0;\n \n-\ttunnel_filter_conf.outer_mac = &res->outer_mac;\n-\ttunnel_filter_conf.inner_mac = &res->inner_mac;\n+\trte_memcpy(&tunnel_filter_conf.outer_mac, &res->outer_mac,\n+\t\t\tETHER_ADDR_LEN);\n+\trte_memcpy(&tunnel_filter_conf.inner_mac, &res->inner_mac,\n+\t\t\tETHER_ADDR_LEN);\n \ttunnel_filter_conf.inner_vlan = res->inner_vlan;\n \n \tif (res->ip_value.family == AF_INET) {\ndiff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst\nindex e94d4a2..a895364 100644\n--- a/doc/guides/rel_notes/deprecation.rst\n+++ b/doc/guides/rel_notes/deprecation.rst\n@@ -32,11 +32,6 @@ Deprecation Notices\n   RTE_ETH_FLOW_MAX. The release 2.2 does not contain these ABI changes,\n   but release 2.3 will.\n \n-* ABI changes are planned for rte_eth_tunnel_filter_conf. Change the fields\n-  of outer_mac and inner_mac from pointer to struct in order to keep the\n-  code's readability. The release 2.2 does not contain these ABI changes, but\n-  release 2.3 will, and no backwards compatibility is planned.\n-\n * The scheduler statistics structure will change to allow keeping track of\n   RED actions.\n \ndiff --git a/doc/guides/rel_notes/release_16_04.rst b/doc/guides/rel_notes/release_16_04.rst\nindex eb1b3b2..2588225 100644\n--- a/doc/guides/rel_notes/release_16_04.rst\n+++ b/doc/guides/rel_notes/release_16_04.rst\n@@ -104,6 +104,8 @@ ABI Changes\n   the previous releases and made in this release. Use fixed width quotes for\n   ``rte_function_names`` or ``rte_struct_names``. Use the past tense.\n \n+* The fields of outer_mac and inner_mac were changed from pointer\n+  to struct in order to keep the code's readability.\n \n Shared Library Versions\n -----------------------\ndiff --git a/doc/guides/testpmd_app_ug/testpmd_funcs.rst b/doc/guides/testpmd_app_ug/testpmd_funcs.rst\nindex a520cc5..3ee629a 100644\n--- a/doc/guides/testpmd_app_ug/testpmd_funcs.rst\n+++ b/doc/guides/testpmd_app_ug/testpmd_funcs.rst\n@@ -553,7 +553,37 @@ tunnel_filter add\n Add a tunnel filter on a port::\n \n    testpmd> tunnel_filter add (port_id) (outer_mac) (inner_mac) (ip_addr) \\\n-            (inner_vlan) (tunnel_type) (filter_type) (tenant_id) (queue_id)\n+            (inner_vlan) (vxlan|nvgre|ipingre) (imac-ivlan|imac-ivlan-tenid|\\\n+            imac-tenid|imac|omac-imac-tenid|oip|iip) (tenant_id) (queue_id)\n+\n+The available information categories are:\n+\n+* ``vxlan``: Set tunnel type as VXLAN.\n+\n+* ``nvgre``: Set tunnel type as NVGRE.\n+\n+* ``ipingre``: Set tunnel type as IP-in-GRE.\n+\n+* ``imac-ivlan``: Set filter type as Inner MAC and VLAN.\n+\n+* ``imac-ivlan-tenid``: Set filter type as Inner MAC, VLAN and tenant ID.\n+\n+* ``imac-tenid``: Set filter type as Inner MAC and tenant ID.\n+\n+* ``imac``: Set filter type as Inner MAC.\n+\n+* ``omac-imac-tenid``: Set filter type as Outer MAC, Inner MAC and tenant ID.\n+\n+* ``oip``: Set filter type as Outer IP.\n+\n+* ``iip``: Set filter type as Inner IP.\n+\n+Example::\n+\n+   testpmd> tunnel_filter add 0 68:05:CA:28:09:82 00:00:00:00:00:00 \\\n+            192.168.2.2 0 ipingre oip 1 1\n+\n+   Set an IP-in-GRE tunnel on port 0, and the filter type is Outer IP.\n \n tunnel_filter remove\n ~~~~~~~~~~~~~~~~~~~~\n@@ -561,7 +591,8 @@ tunnel_filter remove\n Remove a tunnel filter on a port::\n \n    testpmd> tunnel_filter rm (port_id) (outer_mac) (inner_mac) (ip_addr) \\\n-            (inner_vlan) (tunnel_type) (filter_type) (tenant_id) (queue_id)\n+            (inner_vlan) (vxlan|nvgre|ipingre) (imac-ivlan|imac-ivlan-tenid|\\\n+            imac-tenid|imac|omac-imac-tenid|oip|iip) (tenant_id) (queue_id)\n \n rx_vxlan_port add\n ~~~~~~~~~~~~~~~~~\ndiff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c\nindex ef24122..7c22358 100644\n--- a/drivers/net/i40e/i40e_ethdev.c\n+++ b/drivers/net/i40e/i40e_ethdev.c\n@@ -5828,10 +5828,10 @@ i40e_dev_tunnel_filter_set(struct i40e_pf *pf,\n \t}\n \tpfilter = cld_filter;\n \n-\t(void)rte_memcpy(&pfilter->outer_mac, tunnel_filter->outer_mac,\n-\t\t\tsizeof(struct ether_addr));\n-\t(void)rte_memcpy(&pfilter->inner_mac, tunnel_filter->inner_mac,\n-\t\t\tsizeof(struct ether_addr));\n+\t(void)rte_memcpy(&pfilter->outer_mac, &tunnel_filter->outer_mac,\n+\t\t\tETHER_ADDR_LEN);\n+\t(void)rte_memcpy(&pfilter->inner_mac, &tunnel_filter->inner_mac,\n+\t\t\tETHER_ADDR_LEN);\n \n \tpfilter->inner_vlan = tunnel_filter->inner_vlan;\n \tif (tunnel_filter->ip_type == RTE_TUNNEL_IPTYPE_IPV4) {\n@@ -6131,13 +6131,13 @@ i40e_tunnel_filter_param_check(struct i40e_pf *pf,\n \t}\n \n \tif ((filter->filter_type & ETH_TUNNEL_FILTER_OMAC) &&\n-\t\t(is_zero_ether_addr(filter->outer_mac))) {\n+\t\t(is_zero_ether_addr(&filter->outer_mac))) {\n \t\tPMD_DRV_LOG(ERR, \"Cannot add NULL outer MAC address\");\n \t\treturn -EINVAL;\n \t}\n \n \tif ((filter->filter_type & ETH_TUNNEL_FILTER_IMAC) &&\n-\t\t(is_zero_ether_addr(filter->inner_mac))) {\n+\t\t(is_zero_ether_addr(&filter->inner_mac))) {\n \t\tPMD_DRV_LOG(ERR, \"Cannot add NULL inner MAC address\");\n \t\treturn -EINVAL;\n \t}\ndiff --git a/lib/librte_ether/rte_eth_ctrl.h b/lib/librte_ether/rte_eth_ctrl.h\nindex ce224ad..30cbde7 100644\n--- a/lib/librte_ether/rte_eth_ctrl.h\n+++ b/lib/librte_ether/rte_eth_ctrl.h\n@@ -280,8 +280,8 @@ enum rte_tunnel_iptype {\n  * Tunneling Packet filter configuration.\n  */\n struct rte_eth_tunnel_filter_conf {\n-\tstruct ether_addr *outer_mac;  /**< Outer MAC address filter. */\n-\tstruct ether_addr *inner_mac;  /**< Inner MAC address filter. */\n+\tstruct ether_addr outer_mac;  /**< Outer MAC address filter. */\n+\tstruct ether_addr inner_mac;  /**< Inner MAC address filter. */\n \tuint16_t inner_vlan;           /**< Inner VLAN filter. */\n \tenum rte_tunnel_iptype ip_type; /**< IP address type. */\n \tunion {\n",
    "prefixes": [
        "dpdk-dev",
        "v5",
        "1/4"
    ]
}