Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/808438/?format=api
{ "id": 808438, "url": "http://patchwork.ozlabs.org/api/patches/808438/?format=api", "web_url": "http://patchwork.ozlabs.org/project/netdev/patch/1504217150-16151-6-git-send-email-dsahern@gmail.com/", "project": { "id": 7, "url": "http://patchwork.ozlabs.org/api/projects/7/?format=api", "name": "Linux network development", "link_name": "netdev", "list_id": "netdev.vger.kernel.org", "list_email": "netdev@vger.kernel.org", "web_url": null, "scm_url": null, "webscm_url": null, "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<1504217150-16151-6-git-send-email-dsahern@gmail.com>", "list_archive_url": null, "date": "2017-08-31T22:05:48", "name": "[v3,net-next,5/7] samples/bpf: Add option to dump socket settings", "commit_ref": null, "pull_url": null, "state": "accepted", "archived": true, "hash": "ad05a6483113a33a176d35a183745d976f468a66", "submitter": { "id": 6918, "url": "http://patchwork.ozlabs.org/api/people/6918/?format=api", "name": "David Ahern", "email": "dsahern@gmail.com" }, "delegate": { "id": 34, "url": "http://patchwork.ozlabs.org/api/users/34/?format=api", "username": "davem", "first_name": "David", "last_name": "Miller", "email": "davem@davemloft.net" }, "mbox": "http://patchwork.ozlabs.org/project/netdev/patch/1504217150-16151-6-git-send-email-dsahern@gmail.com/mbox/", "series": [ { "id": 913, "url": "http://patchwork.ozlabs.org/api/series/913/?format=api", "web_url": "http://patchwork.ozlabs.org/project/netdev/list/?series=913", "date": "2017-08-31T22:05:43", "name": "bpf: Add option to set mark and priority in cgroup sock programs", "version": 3, "mbox": "http://patchwork.ozlabs.org/series/913/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/808438/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/808438/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<netdev-owner@vger.kernel.org>", "X-Original-To": "patchwork-incoming@ozlabs.org", "Delivered-To": "patchwork-incoming@ozlabs.org", "Authentication-Results": [ "ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=netdev-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)", "ozlabs.org; dkim=pass (2048-bit key;\n\tunprotected) header.d=gmail.com header.i=@gmail.com\n\theader.b=\"eIkkKw5g\"; dkim-atps=neutral" ], "Received": [ "from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3xjxKS5qsHz9s81\n\tfor <patchwork-incoming@ozlabs.org>;\n\tFri, 1 Sep 2017 08:06:20 +1000 (AEST)", "(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1751759AbdHaWGR (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tThu, 31 Aug 2017 18:06:17 -0400", "from mail-pf0-f196.google.com ([209.85.192.196]:35645 \"EHLO\n\tmail-pf0-f196.google.com\" rhost-flags-OK-OK-OK-OK) by vger.kernel.org\n\twith ESMTP id S1751001AbdHaWGN (ORCPT\n\t<rfc822;netdev@vger.kernel.org>); Thu, 31 Aug 2017 18:06:13 -0400", "by mail-pf0-f196.google.com with SMTP id g13so532898pfm.2\n\tfor <netdev@vger.kernel.org>; Thu, 31 Aug 2017 15:06:13 -0700 (PDT)", "from kenny.it.cumulusnetworks.com. (fw.cumulusnetworks.com.\n\t[216.129.126.126]) by smtp.googlemail.com with ESMTPSA id\n\tx12sm845336pfk.42.2017.08.31.15.06.12\n\t(version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128);\n\tThu, 31 Aug 2017 15:06:12 -0700 (PDT)" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=gmail.com; s=20161025;\n\th=from:to:cc:subject:date:message-id:in-reply-to:references;\n\tbh=84gOQRliaCEqW6/kI7OCGA5uhNpEl/D8paBEe0iTE00=;\n\tb=eIkkKw5gsGJKOU7x79yjDgA4J7fgeB3qX/WULSIzo1XxDbbgcylDRM+NPY3jhJPS85\n\tFKbIm4+WVJ9lsnzb2yw5cBgRZR573B4VGFC1YvAqk3uR+DxXuLgYOZ6zNV+uuJnUMUhl\n\t4fmdsW6zrxRyPFhzjUFibW+QXSRsWui89Qg9Q97Lw2yzk6xQ5whF0M/qUc00aHq7BUZ8\n\t9YV6FFsZxJsredwmWX2EtE6fRKnXIEinHk5l1sfo0z4qFgrSQmv7dACOpGlLvGcALmbB\n\tEnATPVxNNTzR1CPyrrT7C4KiZuPB9/g4GPRrBrRFzAJWid3XxfgB2zLHIeNU13pbgSqz\n\tXMvQ==", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to\n\t:references;\n\tbh=84gOQRliaCEqW6/kI7OCGA5uhNpEl/D8paBEe0iTE00=;\n\tb=Z725C8Rr6kkQw9XINZVLgJcCtx+a2L31zMQ0BISPal+9SxAqLSNlGHKohEKYFSOeOS\n\tzxyzd6TMj80rvhtpzyLNk2oG1qAYgU5rJqIxzrWzjCRuy+asEJKLxUyzmm/WYz15DylO\n\tzOey2+wY6J78xtndwhkVLg18HPDKdVecE/oTfNUdPDe63OpMPzKyA+Hi4+0pw1nuoBiV\n\tJFNsMIsNKYZbftx6Jt3QTvNT0kz3eFV8e0dyqN5LTxIVagJI1BjRV1H6T48NgCo1GD6L\n\tDv0h+vqupOI+P91VBzgSAjeGVcFuNWsvK4HJDgWcTgTZoK5A4HJqImRA4v71EaceEzVc\n\tbbrA==", "X-Gm-Message-State": "AHYfb5ic+Dznt/1X8SuPOhPspdgdj5+GHL1iaRZCjXZqV/Snn8fqqsUZ\n\t4XdwtdqGCBaWAkL7", "X-Google-Smtp-Source": "ADKCNb7BFgUYtF2dpgMv+BvL8lH10CAr0spFJsHgtgix6H39nLu+ml+/U78MRi2pZ6cBkCbVR9EgKA==", "X-Received": "by 10.99.114.76 with SMTP id c12mr4105185pgn.22.1504217173213;\n\tThu, 31 Aug 2017 15:06:13 -0700 (PDT)", "From": "David Ahern <dsahern@gmail.com>", "To": "netdev@vger.kernel.org, daniel@iogearbox.net, ast@kernel.org", "Cc": "David Ahern <dsahern@gmail.com>", "Subject": "[PATCH v3 net-next 5/7] samples/bpf: Add option to dump socket\n\tsettings", "Date": "Thu, 31 Aug 2017 15:05:48 -0700", "Message-Id": "<1504217150-16151-6-git-send-email-dsahern@gmail.com>", "X-Mailer": "git-send-email 2.1.4", "In-Reply-To": "<1504217150-16151-1-git-send-email-dsahern@gmail.com>", "References": "<1504217150-16151-1-git-send-email-dsahern@gmail.com>", "Sender": "netdev-owner@vger.kernel.org", "Precedence": "bulk", "List-ID": "<netdev.vger.kernel.org>", "X-Mailing-List": "netdev@vger.kernel.org" }, "content": "Add option to dump socket settings. Will be used in the next patch\nto verify bpf programs are correctly setting mark, priority and\ndevice based on the cgroup attachment for the program run.\n\nSigned-off-by: David Ahern <dsahern@gmail.com>\n---\n samples/bpf/test_cgrp2_sock.c | 75 +++++++++++++++++++++++++++++++++++++++++--\n 1 file changed, 73 insertions(+), 2 deletions(-)", "diff": "diff --git a/samples/bpf/test_cgrp2_sock.c b/samples/bpf/test_cgrp2_sock.c\nindex 15396761c5cc..5a688837720c 100644\n--- a/samples/bpf/test_cgrp2_sock.c\n+++ b/samples/bpf/test_cgrp2_sock.c\n@@ -112,6 +112,70 @@ static int prog_load(__u32 idx, __u32 mark, __u32 prio)\n \treturn ret;\n }\n \n+static int get_bind_to_device(int sd, char *name, size_t len)\n+{\n+\tsocklen_t optlen = len;\n+\tint rc;\n+\n+\tname[0] = '\\0';\n+\trc = getsockopt(sd, SOL_SOCKET, SO_BINDTODEVICE, name, &optlen);\n+\tif (rc < 0)\n+\t\tperror(\"setsockopt(SO_BINDTODEVICE)\");\n+\n+\treturn rc;\n+}\n+\n+static unsigned int get_somark(int sd)\n+{\n+\tunsigned int mark = 0;\n+\tsocklen_t optlen = sizeof(mark);\n+\tint rc;\n+\n+\trc = getsockopt(sd, SOL_SOCKET, SO_MARK, &mark, &optlen);\n+\tif (rc < 0)\n+\t\tperror(\"getsockopt(SO_MARK)\");\n+\n+\treturn mark;\n+}\n+\n+static unsigned int get_priority(int sd)\n+{\n+\tunsigned int prio = 0;\n+\tsocklen_t optlen = sizeof(prio);\n+\tint rc;\n+\n+\trc = getsockopt(sd, SOL_SOCKET, SO_PRIORITY, &prio, &optlen);\n+\tif (rc < 0)\n+\t\tperror(\"getsockopt(SO_PRIORITY)\");\n+\n+\treturn prio;\n+}\n+\n+static int show_sockopts(int family)\n+{\n+\tunsigned int mark, prio;\n+\tchar name[16];\n+\tint sd;\n+\n+\tsd = socket(family, SOCK_DGRAM, 17);\n+\tif (sd < 0) {\n+\t\tperror(\"socket\");\n+\t\treturn 1;\n+\t}\n+\n+\tif (get_bind_to_device(sd, name, sizeof(name)) < 0)\n+\t\treturn 1;\n+\n+\tmark = get_somark(sd);\n+\tprio = get_priority(sd);\n+\n+\tclose(sd);\n+\n+\tprintf(\"sd %d: dev %s, mark %u, priority %u\\n\", sd, name, mark, prio);\n+\n+\treturn 0;\n+}\n+\n static int usage(const char *argv0)\n {\n \tprintf(\"Usage:\\n\");\n@@ -120,6 +184,9 @@ static int usage(const char *argv0)\n \tprintf(\"\\n\");\n \tprintf(\" Detach a program\\n\");\n \tprintf(\" %s -d cg-path\\n\", argv0);\n+\tprintf(\"\\n\");\n+\tprintf(\" Show inherited socket settings (mark, priority, and device)\\n\");\n+\tprintf(\" %s [-6]\\n\", argv0);\n \treturn EXIT_FAILURE;\n }\n \n@@ -128,10 +195,11 @@ int main(int argc, char **argv)\n \t__u32 idx = 0, mark = 0, prio = 0;\n \tconst char *cgrp_path = NULL;\n \tint cg_fd, prog_fd, ret;\n+\tint family = PF_INET;\n \tint do_attach = 1;\n \tint rc;\n \n-\twhile ((rc = getopt(argc, argv, \"db:m:p:\")) != -1) {\n+\twhile ((rc = getopt(argc, argv, \"db:m:p:6\")) != -1) {\n \t\tswitch (rc) {\n \t\tcase 'd':\n \t\t\tdo_attach = 0;\n@@ -152,13 +220,16 @@ int main(int argc, char **argv)\n \t\tcase 'p':\n \t\t\tprio = strtoumax(optarg, NULL, 0);\n \t\t\tbreak;\n+\t\tcase '6':\n+\t\t\tfamily = PF_INET6;\n+\t\t\tbreak;\n \t\tdefault:\n \t\t\treturn usage(argv[0]);\n \t\t}\n \t}\n \n \tif (optind == argc)\n-\t\treturn usage(argv[0]);\n+\t\treturn show_sockopts(family);\n \n \tcgrp_path = argv[optind];\n \tif (!cgrp_path) {\n", "prefixes": [ "v3", "net-next", "5/7" ] }