get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 28058,
    "url": "https://patches.dpdk.org/api/patches/28058/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20170829095153.12627-1-v.kuramshin@samsung.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": "<20170829095153.12627-1-v.kuramshin@samsung.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20170829095153.12627-1-v.kuramshin@samsung.com",
    "date": "2017-08-29T09:51:53",
    "name": "[dpdk-dev] examples/l2fwd-cat: fix build according to API changes",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "3dba9fff342b6ac3e7291a44f4b6688aa3547973",
    "submitter": {
        "id": 785,
        "url": "https://patches.dpdk.org/api/people/785/?format=api",
        "name": "Vladimir Kuramshin",
        "email": "v.kuramshin@samsung.com"
    },
    "delegate": null,
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/20170829095153.12627-1-v.kuramshin@samsung.com/mbox/",
    "series": [],
    "comments": "https://patches.dpdk.org/api/patches/28058/comments/",
    "check": "warning",
    "checks": "https://patches.dpdk.org/api/patches/28058/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 5BC511B53;\n\tTue, 29 Aug 2017 11:52:39 +0200 (CEST)",
            "from mailout1.w1.samsung.com (mailout1.w1.samsung.com\n\t[210.118.77.11]) by dpdk.org (Postfix) with ESMTP id 1C2CA137C\n\tfor <dev@dpdk.org>; Tue, 29 Aug 2017 11:52:38 +0200 (CEST)",
            "from eucas1p2.samsung.com (unknown [182.198.249.207])\n\tby mailout1.w1.samsung.com (KnoxPortal) with ESMTP id\n\t20170829095236euoutp01815397308d06dfa290283e80be9a2498~fSFsSOz1v2238022380euoutp01T;\n\tTue, 29 Aug 2017 09:52:36 +0000 (GMT)",
            "from eusmges4.samsung.com (unknown [203.254.199.244]) by\n\teucas1p2.samsung.com (KnoxPortal) with ESMTP id\n\t20170829095235eucas1p2a0e1f45cb52638a36c5d748a780e1734~fSFrfCI1s2270122701eucas1p28;\n\tTue, 29 Aug 2017 09:52:35 +0000 (GMT)",
            "from eucas1p1.samsung.com ( [182.198.249.206]) by\n\teusmges4.samsung.com (EUCPMTA) with SMTP id 42.97.12944.36935A95;\n\tTue, 29 Aug 2017 10:52:35 +0100 (BST)",
            "from eusmgms1.samsung.com (unknown [182.198.249.179]) by\n\teucas1p1.samsung.com (KnoxPortal) with ESMTP id\n\t20170829095235eucas1p1c53a2ad6ba980aad25d51dfb6c6b8dd7~fSFq5zAzj0711907119eucas1p1r;\n\tTue, 29 Aug 2017 09:52:35 +0000 (GMT)",
            "from eusync3.samsung.com ( [203.254.199.213]) by\n\teusmgms1.samsung.com (EUCPMTA) with SMTP id 99.6D.18832.36935A95;\n\tTue, 29 Aug 2017 10:52:35 +0100 (BST)",
            "from localhost.localdomain ([106.109.129.68]) by\n\teusync3.samsung.com (Oracle Communications Messaging Server\n\t7.0.5.31.0 64bit (built May 5 2014)) with ESMTPA id\n\t<0OVF001QZY3D2T00@eusync3.samsung.com>; \n\tTue, 29 Aug 2017 10:52:35 +0100 (BST)"
        ],
        "X-AuditID": "cbfec7f4-f79ab6d000003290-ac-59a539631782",
        "From": "Vladimir Kuramshin <v.kuramshin@samsung.com>",
        "To": "tomasz.kantecki@intel.com",
        "Cc": "dev@dpdk.org, Vladimir Kuramshin <v.kuramshin@samsung.com>",
        "Date": "Tue, 29 Aug 2017 12:51:53 +0300",
        "Message-id": "<20170829095153.12627-1-v.kuramshin@samsung.com>",
        "X-Mailer": "git-send-email 2.14.1",
        "X-Brightmail-Tracker": [
            "H4sIAAAAAAAAA+NgFprHIsWRmVeSWpSXmKPExsWy7djPc7rJlksjDfZelLJ492k7k8W01b/Z\n\tLU7f3MzuwOzxa8FSVo/Fe14yefRtWcUYwBzFZZOSmpNZllqkb5fAlbFw51+2gmsmFfcbZzM2\n\tMG7X7GLk4JAQMJHYtSqvi5ETyBSTuHBvPVsXIxeHkMBSRol/N2axQzifGSUObFrGAtNwdqkM\n\tRHwZo8TuBycYIZz/jBJPzj1nBxnFJmAksWrjfjYQW0RAVmLVjqlgNrOAncTth/OYQWxhAXeJ\n\tz/uOMoHYLAKqEpdWPAOL8wrYSPyZ380KcZK8xLkHt5lBFkgIbGCTeHJvNxPEFbISmw4wQ9S4\n\tSHT+nMMCYQtLvDq+hR3ClpHo7DjIBNHbzShxtnUOK4QzhVFiz7InUB32EqduXmWCuI5PYtK2\n\t6cwQC3glOtqEIEo8JE7t+Q1V7ijRemMdOCSEBGIlpt4rmsAovYCRYRWjSGppcW56arGJXnFi\n\tbnFpXrpecn7uJkZgrJ3+d/zLDsbFx6wOMQpwMCrx8EY4LIkUYk0sK67MPcQowcGsJMJrYbE0\n\tUog3JbGyKrUoP76oNCe1+BCjNAeLkjivbVRbpJBAemJJanZqakFqEUyWiYNTqoExa6Oqwpqp\n\tGXKnFuqxzdusofTlmuuWC/KzDvyt78pUcpiq5hvJeXAuc1hBdGuLvonvdW5dDSO/J2m6LbHx\n\t+7xy1E++mdY5Y7XUjLRlnBevv8nS2igvnsEr5LB6YtNXl23fPfKdUqOEvQ/sVzr3XOyc0btj\n\tmi/EL2tzLknvUSg1VNwX/9Mg8YwSS3FGoqEWc1FxIgAkg28SsQIAAA==",
            "H4sIAAAAAAAAA+NgFtrELMWRmVeSWpSXmKPExsVy+t/xq7rJlksjDbq+MFm8+7SdyWLa6t/s\n\tFqdvbmZ3YPb4tWApq8fiPS+ZPPq2rGIMYI5ys8lITUxJLVJIzUvOT8nMS7dVCg1x07VQUshL\n\tzE21VYrQ9Q0JUlIoS8wpBfKMDNCAg3OAe7CSvl2CW8bCnX/ZCq6ZVNxvnM3YwLhds4uRg0NC\n\twETi7FKZLkZOIFNM4sK99WxdjFwcQgJLGCXWLjjNBJIQEmhkkti4Ix7EZhMwkli1cT8biC0i\n\tICuxasdUMJtZwE7i9sN5zCC2sIC7xOd9R8F6WQRUJS6teAYW5xWwkfgzv5sVYpm8xLkHt5kn\n\tMHIvYGRYxSiSWlqcm55bbKhXnJhbXJqXrpecn7uJERhe24793LyD8dLG4EOMAhyMSjy8DHZL\n\tIoVYE8uKK3MPMUpwMCuJ8FpYLI0U4k1JrKxKLcqPLyrNSS0+xGgKtHwis5Rocj4w9PNK4g1N\n\tDM0tDY2MLSzMjYyUxHnVLzdFCgmkJ5akZqemFqQWwfQxcXBKNTA6F1rvkxdnOXHod6D7jidr\n\tsjfVh8n4Jrl/5c25o3UgLdZ/ndqfLYeaGZIWHtJ5b7byXbT59H2zXI94ePImeCybZNjc+XD5\n\tryvnJ7up+z5TOfRrmv6Tne82/TixP43z2naX4+ZOH/Y+eeYxb1r9Gp83V5106/nPnghgOree\n\t4/uRP/f/zeXz1ojsVWIpzkg01GIuKk4EAMghSitFAgAA"
        ],
        "X-MTR": "20000000000000000@CPGS",
        "X-CMS-MailID": "20170829095235eucas1p1c53a2ad6ba980aad25d51dfb6c6b8dd7",
        "X-Msg-Generator": "CA",
        "X-Sender-IP": "182.198.249.179",
        "X-Local-Sender": "=?utf-8?q?Vladimir_Kuramshin=1BSRR-Virtualization_Lab=1B?=\n\t=?utf-8?b?7IK87ISx7KCE7J6QG0V4cGVydCBFbmdpbmVlcg==?=",
        "X-Global-Sender": "=?utf-8?q?Vladimir_Kuramshin=1BSRR-Virtualization_Lab=1B?=\n\t=?utf-8?q?Samsung_Electronics=1BExpert_Engineer?=",
        "X-Sender-Code": "=?utf-8?q?C10=1BCISHQ=1BC10GD01GD010154?=",
        "CMS-TYPE": "201P",
        "X-CMS-RootMailID": "20170829095235eucas1p1c53a2ad6ba980aad25d51dfb6c6b8dd7",
        "X-RootMTR": "20170829095235eucas1p1c53a2ad6ba980aad25d51dfb6c6b8dd7",
        "References": "<CGME20170829095235eucas1p1c53a2ad6ba980aad25d51dfb6c6b8dd7@eucas1p1.samsung.com>",
        "Subject": "[dpdk-dev] [PATCH] examples/l2fwd-cat: fix build according to API\n\tchanges",
        "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": "Current version is compatible with PQOS version 1.3\nbut not compatible with higher versions. This change\nmakes l2fwd-cat example compatible with versions since 1.4\n\nSigned-off-by: Vladimir Kuramshin <v.kuramshin@samsung.com>\n---\n examples/l2fwd-cat/Makefile |  5 +---\n examples/l2fwd-cat/cat.c    | 60 ++++++++++++++++++++++-----------------------\n 2 files changed, 30 insertions(+), 35 deletions(-)",
    "diff": "diff --git a/examples/l2fwd-cat/Makefile b/examples/l2fwd-cat/Makefile\nindex ae921ade6..a7fe6d68e 100644\n--- a/examples/l2fwd-cat/Makefile\n+++ b/examples/l2fwd-cat/Makefile\n@@ -40,9 +40,6 @@ endif\n # Default target, can be overridden by command line or environment\n RTE_TARGET ?= x86_64-native-linuxapp-gcc\n \n-# Location of PQoS library and includes,\n-PQOS_LIBRARY_PATH = $(PQOS_INSTALL_PATH)/libpqos.a\n-\n include $(RTE_SDK)/mk/rte.vars.mk\n \n # binary name\n@@ -65,6 +62,6 @@ CFLAGS += -I$(PQOS_INSTALL_PATH)/../include\n CFLAGS_cat.o := -D_GNU_SOURCE\n \n LDLIBS += -L$(PQOS_INSTALL_PATH)\n-LDLIBS += $(PQOS_LIBRARY_PATH)\n+LDLIBS += -lpqos\n \n include $(RTE_SDK)/mk/rte.extapp.mk\ndiff --git a/examples/l2fwd-cat/cat.c b/examples/l2fwd-cat/cat.c\nindex 6133bf5bb..4a0a22319 100644\n--- a/examples/l2fwd-cat/cat.c\n+++ b/examples/l2fwd-cat/cat.c\n@@ -53,7 +53,7 @@\n static const struct pqos_cap *m_cap;\n static const struct pqos_cpuinfo *m_cpu;\n static const struct pqos_capability *m_cap_l3ca;\n-static unsigned m_sockets[PQOS_MAX_SOCKETS];\n+static unsigned *m_sockets;\n static unsigned m_sock_count;\n static struct cat_config m_config[PQOS_MAX_CORES];\n static unsigned m_config_count;\n@@ -271,16 +271,16 @@ parse_l3ca(const char *l3ca)\n \t\t/* scan the separator '@', ','(next) or '\\0'(finish) */\n \t\tl3ca += strcspn(l3ca, \"@,\");\n \n-\t\tif (*l3ca == '@') {\n-\t\t\t/* explicit assign cpu_set */\n-\t\t\toffset = parse_set(l3ca + 1, &cpuset);\n-\t\t\tif (offset < 0 || CPU_COUNT(&cpuset) == 0)\n-\t\t\t\tgoto err;\n+\t\tif (*l3ca != '@')\n+\t\t\tgoto err;\n \n-\t\t\tend = l3ca + 1 + offset;\n-\t\t} else\n+\t\t/* explicit assign cpu_set */\n+\t\toffset = parse_set(l3ca + 1, &cpuset);\n+\t\tif (offset < 0 || CPU_COUNT(&cpuset) == 0)\n \t\t\tgoto err;\n \n+\t\tend = l3ca + 1 + offset;\n+\n \t\tif (*end != ',' && *end != '\\0')\n \t\t\tgoto err;\n \n@@ -353,9 +353,6 @@ parse_l3ca(const char *l3ca)\n \t\tidx++;\n \t} while (*end != '\\0' && idx < PQOS_MAX_CORES);\n \n-\tif (m_config_count == 0)\n-\t\tgoto err;\n-\n \treturn 0;\n \n err:\n@@ -408,7 +405,7 @@ check_cpus(void)\n \t\t\t\t\tgoto exit;\n \t\t\t\t}\n \n-\t\t\t\tret = pqos_l3ca_assoc_get(cpu_id, &cos_id);\n+\t\t\t\tret = pqos_alloc_assoc_get(cpu_id, &cos_id);\n \t\t\t\tif (ret != PQOS_RETVAL_OK) {\n \t\t\t\t\tprintf(\"PQOS: Failed to read COS \"\n \t\t\t\t\t\t\"associated to cpu %u.\\n\",\n@@ -512,7 +509,7 @@ check_and_select_classes(unsigned cos_id_map[][PQOS_MAX_SOCKETS])\n \tfor (j = 0; j < m_cpu->num_cores; j++) {\n \t\tcpu_id = m_cpu->cores[j].lcore;\n \n-\t\tret = pqos_l3ca_assoc_get(cpu_id, &cos_id);\n+\t\tret = pqos_alloc_assoc_get(cpu_id, &cos_id);\n \t\tif (ret != PQOS_RETVAL_OK) {\n \t\t\tprintf(\"PQOS: Failed to read COS associated to \"\n \t\t\t\t\"cpu %u on phy_pkg %u.\\n\", cpu_id, phy_pkg_id);\n@@ -598,10 +595,10 @@ configure_cat(unsigned cos_id_map[][PQOS_MAX_SOCKETS])\n \n \t\tl3ca.cdp = m_config[i].cdp;\n \t\tif (m_config[i].cdp == 1) {\n-\t\t\tl3ca.code_mask = m_config[i].code_mask;\n-\t\t\tl3ca.data_mask = m_config[i].data_mask;\n+\t\t\tl3ca.u.s.code_mask = m_config[i].code_mask;\n+\t\t\tl3ca.u.s.data_mask = m_config[i].data_mask;\n \t\t} else\n-\t\t\tl3ca.ways_mask = m_config[i].mask;\n+\t\t\tl3ca.u.ways_mask = m_config[i].mask;\n \n \t\tfor (j = 0; j < m_sock_count; j++) {\n \t\t\tphy_pkg_id = m_sockets[j];\n@@ -637,7 +634,7 @@ configure_cat(unsigned cos_id_map[][PQOS_MAX_SOCKETS])\n \n \t\t\tcos_id = cos_id_map[i][phy_pkg_id];\n \n-\t\t\tret = pqos_l3ca_assoc_set(cpu_id, cos_id);\n+\t\t\tret = pqos_alloc_assoc_set(cpu_id, cos_id);\n \t\t\tif (ret != PQOS_RETVAL_OK) {\n \t\t\t\tprintf(\"PQOS: Failed to associate COS %u to \"\n \t\t\t\t\t\"cpu %u\\n\", cos_id, cpu_id);\n@@ -754,24 +751,24 @@ print_cat_config(void)\n \t\t\tif (tab[n].cdp == 1) {\n \t\t\t\tprintf(\"PQOS: COS: %u, cMASK: 0x%llx, \"\n \t\t\t\t\t\"dMASK: 0x%llx\\n\", tab[n].class_id,\n-\t\t\t\t\t(unsigned long long)tab[n].code_mask,\n-\t\t\t\t\t(unsigned long long)tab[n].data_mask);\n+\t\t\t\t\t(unsigned long long)tab[n].u.s.code_mask,\n+\t\t\t\t\t(unsigned long long)tab[n].u.s.data_mask);\n \t\t\t} else {\n \t\t\t\tprintf(\"PQOS: COS: %u, MASK: 0x%llx\\n\",\n \t\t\t\t\ttab[n].class_id,\n-\t\t\t\t\t(unsigned long long)tab[n].ways_mask);\n+\t\t\t\t\t(unsigned long long)tab[n].u.ways_mask);\n \t\t\t}\n \t\t}\n \t}\n \n \tfor (i = 0; i < m_sock_count; i++) {\n-\t\tunsigned lcores[PQOS_MAX_SOCKET_CORES] = {0};\n+\t\tunsigned *lcores = NULL;\n \t\tunsigned lcount = 0;\n \t\tunsigned n = 0;\n \n-\t\tret = pqos_cpu_get_cores(m_cpu, m_sockets[i],\n-\t\t\t\tPQOS_MAX_SOCKET_CORES, &lcount, &lcores[0]);\n-\t\tif (ret != PQOS_RETVAL_OK) {\n+\t\tlcores = pqos_cpu_get_cores(m_cpu, m_sockets[i],\n+\t\t\t\t&lcount);\n+\t\tif (lcores == NULL || lcount == 0) {\n \t\t\tprintf(\"PQOS: Error retrieving core information!\\n\");\n \t\t\treturn;\n \t\t}\n@@ -780,13 +777,15 @@ print_cat_config(void)\n \t\tfor (n = 0; n < lcount; n++) {\n \t\t\tunsigned class_id = 0;\n \n-\t\t\tret = pqos_l3ca_assoc_get(lcores[n], &class_id);\n+\t\t\tret = pqos_alloc_assoc_get(lcores[n], &class_id);\n \t\t\tif (ret == PQOS_RETVAL_OK)\n \t\t\t\tprintf(\"PQOS: CPU: %u, COS: %u\\n\", lcores[n],\n \t\t\t\t\tclass_id);\n \t\t\telse\n \t\t\t\tprintf(\"PQOS: CPU: %u, ERROR\\n\", lcores[n]);\n \t\t}\n+\n+\t\tfree(lcores);\n \t}\n \n }\n@@ -849,7 +848,8 @@ cat_fini(void)\n \tm_cap = NULL;\n \tm_cpu = NULL;\n \tm_cap_l3ca = NULL;\n-\tmemset(m_sockets, 0, sizeof(m_sockets));\n+\tif (m_sockets != NULL)\n+\t\tfree(m_sockets);\n \tm_sock_count = 0;\n \tmemset(m_config, 0, sizeof(m_config));\n \tm_config_count = 0;\n@@ -875,7 +875,7 @@ cat_exit(void)\n \t\t\tif (CPU_ISSET(cpu_id, &m_config[i].cpumask) == 0)\n \t\t\t\tcontinue;\n \n-\t\t\tret = pqos_l3ca_assoc_set(cpu_id, 0);\n+\t\t\tret = pqos_alloc_assoc_set(cpu_id, 0);\n \t\t\tif (ret != PQOS_RETVAL_OK) {\n \t\t\t\tprintf(\"PQOS: Failed to associate COS 0 to \"\n \t\t\t\t\t\"cpu %u\\n\", cpu_id);\n@@ -927,7 +927,6 @@ cat_init(int argc, char **argv)\n \t/* PQoS Initialization - Check and initialize CAT capability */\n \tcfg.fd_log = STDOUT_FILENO;\n \tcfg.verbose = 0;\n-\tcfg.cdp_cfg = PQOS_REQUIRE_CDP_ANY;\n \tret = pqos_init(&cfg);\n \tif (ret != PQOS_RETVAL_OK) {\n \t\tprintf(\"PQOS: Error initializing PQoS library!\\n\");\n@@ -953,9 +952,8 @@ cat_init(int argc, char **argv)\n \t}\n \n \t/* Get CPU socket information */\n-\tret = pqos_cpu_get_sockets(m_cpu, PQOS_MAX_SOCKETS, &m_sock_count,\n-\t\tm_sockets);\n-\tif (ret != PQOS_RETVAL_OK) {\n+\tm_sockets = pqos_cpu_get_sockets(m_cpu, &m_sock_count);\n+\tif (m_sockets == NULL) {\n \t\tprintf(\"PQOS: Error retrieving CPU socket information!\\n\");\n \t\tret = -EFAULT;\n \t\tgoto err;\n",
    "prefixes": [
        "dpdk-dev"
    ]
}