)]}'
{
  "log": [
    {
      "commit": "473d18e2196a78dc16bc836ffe29e83783022292",
      "tree": "14b5c6b87d91f86de441bf03790816e572df5054",
      "parents": [
        "3d66d83d25a2589ab735cf36742bff3bcf2a6ada"
      ],
      "author": {
        "name": "Roi Dayan",
        "email": "roid@mellanox.com",
        "time": "Thu Jun 11 20:35:43 2020 +0300"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Thu Jun 11 15:05:20 2020 -0700"
      },
      "message": "ip address: Fix loop initial declarations are only allowed in C99\n\nOn some distros, i.e. rhel 7.6, compilation fails with the following:\n\nipaddress.c: In function ‘lookup_flag_data_by_name’:\nipaddress.c:1260:2: error: ‘for’ loop initial declarations are only allowed in C99 mode\n  for (int i \u003d 0; i \u003c ARRAY_SIZE(ifa_flag_data); ++i) {\n  ^\nipaddress.c:1260:2: note: use option -std\u003dc99 or -std\u003dgnu99 to compile your code\n\nThis commit fixes the single place needed for compilation to pass.\n\nFixes: 9d59c86e575b (\"iproute2: ip addr: Organize flag properties structurally\")\nSigned-off-by: Roi Dayan \u003croid@mellanox.com\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "3d66d83d25a2589ab735cf36742bff3bcf2a6ada",
      "tree": "a82de3bf4d6249830a0c87213038dc0f33596aa9",
      "parents": [
        "abda1e9d2bc604aece38b1bfe66af0068c173067"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Thu Jun 11 09:52:38 2020 -0700"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Thu Jun 11 09:52:38 2020 -0700"
      },
      "message": "uapi: update to magic.h\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "abda1e9d2bc604aece38b1bfe66af0068c173067",
      "tree": "5a6ecabc439d8a22c86bc109c22652707bda89ec",
      "parents": [
        "fd71244a2086036bdb1b44a8b2b8905ec2d4f100"
      ],
      "author": {
        "name": "Ido Schimmel",
        "email": "idosch@mellanox.com",
        "time": "Sun Jun 07 11:36:47 2020 +0300"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Thu Jun 11 09:51:10 2020 -0700"
      },
      "message": "devlink: Add \u0027mirror\u0027 trap action\n\nAllow setting \u0027mirror\u0027 trap action for traps that support it. Extend the\ndevlink-trap man page and bash completion accordingly.\n\nExample:\n\n# devlink -jp trap show netdevsim/netdevsim10 trap igmp_query\n{\n    \"trap\": {\n        \"netdevsim/netdevsim10\": [ {\n                \"name\": \"igmp_query\",\n                \"type\": \"control\",\n                \"generic\": true,\n                \"action\": \"mirror\",\n                \"group\": \"mc_snooping\"\n            } ]\n    }\n}\n\nSigned-off-by: Ido Schimmel \u003cidosch@mellanox.com\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "fd71244a2086036bdb1b44a8b2b8905ec2d4f100",
      "tree": "643d7bde349af5c8b559e2c17b8268d9b1a4c711",
      "parents": [
        "12fafa27c7b306e6c397e858f4d5a8159500f659"
      ],
      "author": {
        "name": "Ido Schimmel",
        "email": "idosch@mellanox.com",
        "time": "Sun Jun 07 11:36:46 2020 +0300"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Thu Jun 11 09:51:10 2020 -0700"
      },
      "message": "devlink: Add \u0027control\u0027 trap type\n\nThis type is used for traps that trap control packets such as ARP\nrequest and IGMP query to the CPU.\n\nExample:\n\n# devlink -jp trap show netdevsim/netdevsim10 trap igmp_v1_report\n{\n    \"trap\": {\n        \"netdevsim/netdevsim10\": [ {\n                \"name\": \"igmp_v1_report\",\n                \"type\": \"control\",\n                \"generic\": true,\n                \"action\": \"trap\",\n                \"group\": \"mc_snooping\"\n            } ]\n    }\n}\n\nSigned-off-by: Ido Schimmel \u003cidosch@mellanox.com\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "12fafa27c7b306e6c397e858f4d5a8159500f659",
      "tree": "41bb70908318cd0becea4822bfebb3920f4c6c9a",
      "parents": [
        "e4932ae6b3e99266032be944cbfa7986692ecf0b"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Thu Jun 11 09:46:46 2020 -0700"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Thu Jun 11 09:49:46 2020 -0700"
      },
      "message": "devlink: update include files\n\nUse the tool iwyu to get more complete list of includes for\nall the bits used by devlink.\n\nThis should also fix build with musl libc.\n\nFixes: c4dfddccef4e (\"fix JSON output of mon command\")\nReported-off-by: Dan Robertson \u003cdan@dlrobertson.com\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "e4932ae6b3e99266032be944cbfa7986692ecf0b",
      "tree": "65182a86b962f409e15c9ce4e55ea23f10b3305e",
      "parents": [
        "0a5dbbeddbd4cd748a155f0cd93ed00041ee5284"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Fri Jun 05 08:36:54 2020 -0700"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Fri Jun 05 08:36:54 2020 -0700"
      },
      "message": "uapi: update headers\n\nUpdate kernel headers from 5.8.0 merge\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "0a5dbbeddbd4cd748a155f0cd93ed00041ee5284",
      "tree": "a8579c3e5361146ee038700f31fea6030937c7f9",
      "parents": [
        "1bfa3b3f66ef48bdabe0eb2a7c14e69f481dfa25",
        "5413a735a68de792eb7db1644fb3e3b888356863"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Fri Jun 05 08:33:29 2020 -0700"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Fri Jun 05 08:33:29 2020 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/network/iproute2/iproute2-next\n"
    },
    {
      "commit": "1bfa3b3f66ef48bdabe0eb2a7c14e69f481dfa25",
      "tree": "0250f03373fcfc259ac03e5a236b64645583ecc1",
      "parents": [
        "2c78aba2fbae44b9edc94de9aa6e15a7a12aab11"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Tue Jun 02 20:35:00 2020 -0700"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Tue Jun 02 20:35:00 2020 -0700"
      },
      "message": "v5.7.0\n"
    },
    {
      "commit": "2c78aba2fbae44b9edc94de9aa6e15a7a12aab11",
      "tree": "3ecafd50ec191ef1956e603b025a12f5d76b888a",
      "parents": [
        "6facadcfb6d9a1b619e5c986505b87760336c483"
      ],
      "author": {
        "name": "Donald Sharp",
        "email": "sharpd@cumulusnetworks.com",
        "time": "Sat May 30 08:16:37 2020 -0400"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Jun 01 08:08:46 2020 -0700"
      },
      "message": "nexthop: Fix Deletion display\n\nActually display that deletions are happening\nwhen monitoring nexthops.\n\nSigned-off-by: Donald Sharp \u003csharpd@cumulusnetworks.com\u003e\nAcked-by: Roopa Prabhu \u003croopa@cumulusnetworks.com\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "6facadcfb6d9a1b619e5c986505b87760336c483",
      "tree": "38dabd304eca907f747a881657946f822b242b48",
      "parents": [
        "354efaec3895f004382414f2df17e7d820e695f6"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Jun 01 08:07:02 2020 -0700"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Jun 01 08:07:02 2020 -0700"
      },
      "message": "uapi: fix comment in xfrm.h\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "5413a735a68de792eb7db1644fb3e3b888356863",
      "tree": "dc737fd6531a12775c333d74b040d743c50dd357",
      "parents": [
        "9d59c86e575b5373d73f021f569ae520bc229ec5"
      ],
      "author": {
        "name": "Ian K. Coolidge",
        "email": "icoolidge@google.com",
        "time": "Wed May 27 11:03:46 2020 -0700"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@gmail.com",
        "time": "Sun May 31 23:01:33 2020 +0000"
      },
      "message": "iproute2: ip addr: Add support for setting \u0027optimistic\u0027\n\noptimistic DAD is controllable via sysctl for an interface\nor all interfaces on the system. This would affect addresses\nadded by the kernel only.\n\nRecent kernels, however, have enabled support for adding optimistic\naddress via userspace. This plumbs that support.\n\nSigned-off-by: David Ahern \u003cdsahern@gmail.com\u003e\n"
    },
    {
      "commit": "9d59c86e575b5373d73f021f569ae520bc229ec5",
      "tree": "e108a016a1a231b7e082224ba0a2b3fd29f36df7",
      "parents": [
        "bd4b8c632e92526e60bc18bd8453599ea78fa42f"
      ],
      "author": {
        "name": "Ian K. Coolidge",
        "email": "icoolidge@google.com",
        "time": "Wed May 27 11:03:45 2020 -0700"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@gmail.com",
        "time": "Sun May 31 23:01:22 2020 +0000"
      },
      "message": "iproute2: ip addr: Organize flag properties structurally\n\nThis creates a nice systematic way to check that the various flags are\nmutable from userspace and that the address family is valid.\n\nMutability properties are preserved to avoid introducing any behavioral\nchange in this CL. However, previously, immutable flags were ignored and\nfell through to this confusing error:\n\nError: either \"local\" is duplicate, or \"dadfailed\" is a garbage.\n\nBut now, they just warn more explicitly:\n\nWarning: dadfailed option is not mutable from userspace\nSigned-off-by: David Ahern \u003cdsahern@gmail.com\u003e\n"
    },
    {
      "commit": "bd4b8c632e92526e60bc18bd8453599ea78fa42f",
      "tree": "c95b4c74635dd22512b0e57e8eb16806c91a8e34",
      "parents": [
        "e50290e6871fd77da62380a782e7d4c4120efd9f"
      ],
      "author": {
        "name": "Roman Mashak",
        "email": "mrv@mojatatu.com",
        "time": "Wed May 27 21:22:47 2020 -0400"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@gmail.com",
        "time": "Sun May 31 22:51:19 2020 +0000"
      },
      "message": "tc: report time an action was first used\n\nHave print_tm() dump firstuse value along with install, lastuse\nand expires.\n\nv2: Resubmit after \u0027master\u0027 merged into next\n\nSigned-off-by: Roman Mashak \u003cmrv@mojatatu.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@gmail.com\u003e\n"
    },
    {
      "commit": "354efaec3895f004382414f2df17e7d820e695f6",
      "tree": "4ed009836b9040980e0dd382b4ed5719ccbbd93e",
      "parents": [
        "358abfe004a30bf3ed353c7f5dbc6afaf4212ecf"
      ],
      "author": {
        "name": "Andrea Claudi",
        "email": "aclaudi@redhat.com",
        "time": "Tue May 26 18:04:11 2020 +0200"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Wed May 27 15:05:25 2020 -0700"
      },
      "message": "bpf: Fixes a snprintf truncation warning\n\ngcc v9.3.1 reports:\n\nbpf.c: In function ‘bpf_get_work_dir’:\nbpf.c:784:49: warning: ‘snprintf’ output may be truncated before the last format character [-Wformat-truncation\u003d]\n  784 |  snprintf(bpf_wrk_dir, sizeof(bpf_wrk_dir), \"%s/\", mnt);\n      |                                                 ^\nbpf.c:784:2: note: ‘snprintf’ output between 2 and 4097 bytes into a destination of size 4096\n  784 |  snprintf(bpf_wrk_dir, sizeof(bpf_wrk_dir), \"%s/\", mnt);\n      |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nFix this simply checking snprintf return code and properly handling the error.\n\nFixes: e42256699cac (\"bpf: make tc\u0027s bpf loader generic and move into lib\")\nSigned-off-by: Andrea Claudi \u003caclaudi@redhat.com\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "358abfe004a30bf3ed353c7f5dbc6afaf4212ecf",
      "tree": "fee757db10fb6c67ce121cff550e95afeb8142ea",
      "parents": [
        "db35e411ec17bf9da67f22f995fe1e8d5edcda98"
      ],
      "author": {
        "name": "Andrea Claudi",
        "email": "aclaudi@redhat.com",
        "time": "Tue May 26 18:04:10 2020 +0200"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Wed May 27 15:05:25 2020 -0700"
      },
      "message": "Revert \"bpf: replace snprintf with asprintf when dealing with long buffers\"\n\nThis reverts commit c0325b06382cb4f7ebfaf80c29c8800d74666fd9.\nIt introduces a segfault in bpf_make_custom_path() when custom pinning is used.\n\nThis happens because asprintf allocates exactly the space needed to hold a\nstring in the buffer passed as its first argument, but if this buffer is later\nused in strcat() or similar we have a buffer overrun.\n\nAs the aim of commit c0325b06382c is simply to fix a compiler warning, it\nseems safe and reasonable to revert it.\n\nFixes: c0325b06382c (\"bpf: replace snprintf with asprintf when dealing with long buffers\")\nReported-by: Jamal Hadi Salim \u003cjhs@mojatatu.com\u003e\nSigned-off-by: Andrea Claudi \u003caclaudi@redhat.com\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "e50290e6871fd77da62380a782e7d4c4120efd9f",
      "tree": "b010285315bada248ff58f8d85e3748f304072bb",
      "parents": [
        "9a25abde3aa67844d3c77a7e6b68ccf8d99def43",
        "db35e411ec17bf9da67f22f995fe1e8d5edcda98"
      ],
      "author": {
        "name": "David Ahern",
        "email": "dsahern@gmail.com",
        "time": "Wed May 27 02:08:27 2020 +0000"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@gmail.com",
        "time": "Wed May 27 02:08:27 2020 +0000"
      },
      "message": "Merge branch \u0027master\u0027 into next\n\nSigned-off-by: David Ahern \u003cdsahern@gmail.com\u003e\n"
    },
    {
      "commit": "9a25abde3aa67844d3c77a7e6b68ccf8d99def43",
      "tree": "3f97257a7a84167780ecd9c61223ad99b9206103",
      "parents": [
        "9f91f1b7b81dcfc13614ac792602f57a4094cafa"
      ],
      "author": {
        "name": "Tuong Lien",
        "email": "tuong.t.lien@dektech.com.au",
        "time": "Tue May 26 16:40:55 2020 +0700"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@gmail.com",
        "time": "Wed May 27 02:07:22 2020 +0000"
      },
      "message": "tipc: enable printing of broadcast rcv link stats\n\nThis commit allows printing the statistics of a broadcast-receiver link\nusing the same tipc command, but with additional \u0027link\u0027 options:\n\n$ tipc link stat show --help\nUsage: tipc link stat show [ link { LINK | SUBSTRING | all } ]\n\nWith:\n+ \u0027LINK\u0027      : print the stats of the specific link \u0027LINK\u0027;\n+ \u0027SUBSTRING\u0027 : print the stats of all the links having the \u0027SUBSTRING\u0027\n                in name;\n+ \u0027all\u0027       : print all the links\u0027 stats incl. the broadcast-receiver\n                ones;\n\nAlso, a link stats can be reset in the usual way by specifying the link\nname in command.\n\nFor example:\n\n$ tipc l st sh l br\nLink \u003cbroadcast-link\u003e\n  Window:50 packets\n  RX packets:0 fragments:0/0 bundles:0/0\n  TX packets:5011125 fragments:4968774/149643 bundles:38402/307061\n  RX naks:781484 defs:0 dups:0\n  TX naks:0 acks:0 retrans:330259\n  Congestion link:50657  Send queue max:0 avg:0\n\nLink \u003cbroadcast-link:1001001\u003e\n  Window:50 packets\n  RX packets:95146 fragments:95040/1980 bundles:1/2\n  TX packets:0 fragments:0/0 bundles:0/0\n  RX naks:380938 defs:83962 dups:403\n  TX naks:8362 acks:0 retrans:170662\n  Congestion link:0  Send queue max:0 avg:0\n\nLink \u003cbroadcast-link:1001002\u003e\n  Window:50 packets\n  RX packets:0 fragments:0/0 bundles:0/0\n  TX packets:0 fragments:0/0 bundles:0/0\n  RX naks:400546 defs:0 dups:0\n  TX naks:0 acks:0 retrans:159597\n  Congestion link:0  Send queue max:0 avg:0\n\n$ tipc l st sh l 1001002\nLink \u003c1001003:data0-1001002:data0\u003e\n  ACTIVE  MTU:1500  Priority:10  Tolerance:1500 ms  Window:50 packets\n  RX packets:99546 fragments:0/0 bundles:33/877\n  TX packets:629 fragments:0/0 bundles:35/828\n  TX profile sample:8 packets average:390 octets\n  0-64:75% -256:0% -1024:0% -4096:25% -16384:0% -32768:0% -66000:0%\n  RX states:488714 probes:7397 naks:0 defs:4 dups:5\n  TX states:27734 probes:18016 naks:5 acks:2305 retrans:0\n  Congestion link:0  Send queue max:0 avg:0\n\nLink \u003cbroadcast-link:1001002\u003e\n  Window:50 packets\n  RX packets:0 fragments:0/0 bundles:0/0\n  TX packets:0 fragments:0/0 bundles:0/0\n  RX naks:400546 defs:0 dups:0\n  TX naks:0 acks:0 retrans:159597\n  Congestion link:0  Send queue max:0 avg:0\n\n$ tipc l st re l broadcast-link:1001002\n\n$ tipc l st sh l broadcast-link:1001002\nLink \u003cbroadcast-link:1001002\u003e\n  Window:50 packets\n  RX packets:0 fragments:0/0 bundles:0/0\n  TX packets:0 fragments:0/0 bundles:0/0\n  RX naks:0 defs:0 dups:0\n  TX naks:0 acks:0 retrans:0\n  Congestion link:0  Send queue max:0 avg:0\n\nAcked-by: Ying Xue \u003cying.xue@windriver.com\u003e\nAcked-by: Jon Maloy \u003cjmaloy@redhat.com\u003e\nSigned-off-by: Tuong Lien \u003ctuong.t.lien@dektech.com.au\u003e\nSigned-off-by: David Ahern \u003cdsahern@gmail.com\u003e\n"
    },
    {
      "commit": "9f91f1b7b81dcfc13614ac792602f57a4094cafa",
      "tree": "3da0d09be1f2ad51ad9189fc4fbe6af24f4d90cc",
      "parents": [
        "42796dcd36772f2a0116bf8a1e94fe43733c0716"
      ],
      "author": {
        "name": "Alexander Aring",
        "email": "alex.aring@gmail.com",
        "time": "Wed May 20 19:57:27 2020 -0400"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@gmail.com",
        "time": "Wed May 27 00:03:17 2020 +0000"
      },
      "message": "lwtunnel: add support for rpl segment routing\n\nThis patch adds support for rpl segment routing settings.\nExample:\n\nip -n ns0 -6 route add 2001::3 encap rpl segs \\\nfe80::c8fe:beef:cafe:cafe,fe80::c8fe:beef:cafe:beef dev lowpan0\n\nSigned-off-by: Alexander Aring \u003calex.aring@gmail.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@gmail.com\u003e\n"
    },
    {
      "commit": "db35e411ec17bf9da67f22f995fe1e8d5edcda98",
      "tree": "87ca6da5e34a845ceea3ec36cc26bff2effcd03d",
      "parents": [
        "1c7aa121045c5e4de17b7e8a909c158c975b8578"
      ],
      "author": {
        "name": "Roman Mashak",
        "email": "mrv@mojatatu.com",
        "time": "Tue May 19 20:59:44 2020 -0400"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Tue May 19 21:19:04 2020 -0700"
      },
      "message": "tc: action: fix time values output in JSON format\n\nReport tcf_t values in seconds, not jiffies, in JSON format as it is now\nfor stdout.\n\nv2: use PRINT_ANY, drop the useless casts and fix the style (Stephen Hemminger)\n\nFixes: 2704bd625583 (\"tc: jsonify actions core\")\nCc: Jiri Pirko \u003cjiri@mellanox.com\u003e\nSigned-off-by: Roman Mashak \u003cmrv@mojatatu.com\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "1c7aa121045c5e4de17b7e8a909c158c975b8578",
      "tree": "d9c8e01ebd0c2e471a69a7316c9d540356e854e5",
      "parents": [
        "d7c67a6ed43f84022eda9d0fa818742c58e56ec7"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Tue May 19 14:31:54 2020 -0700"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Tue May 19 14:31:54 2020 -0700"
      },
      "message": "uapi: update to bpf.h\n\nPart of the zero-length array changes\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "d7c67a6ed43f84022eda9d0fa818742c58e56ec7",
      "tree": "b63d4d9489e09ac6afeaad6ac06319185f1ef9c5",
      "parents": [
        "924c43778a8453e2cd0fd1440b9224bed9c87c0d"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Tue May 05 12:46:18 2020 -0700"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Tue May 19 14:30:30 2020 -0700"
      },
      "message": "utils: remove trailing zeros in print_time() and print_time64()\n\nBefore :\n\ntc qd sh dev eth1\n\n... refill_delay 40.0ms timer_slack 10.000us horizon 10.000s\n\nAfter :\n... refill_delay 40ms timer_slack 10us horizon 10s\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "924c43778a8453e2cd0fd1440b9224bed9c87c0d",
      "tree": "af2bbf4d1dbcfc27df1caae2c9f14503e7b22c0f",
      "parents": [
        "0ecb90b33c4f4c20b859b1f1245b65e36e963cff"
      ],
      "author": {
        "name": "Paul Blakey",
        "email": "paulb@mellanox.com",
        "time": "Thu May 14 17:10:20 2020 +0300"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Tue May 19 14:30:24 2020 -0700"
      },
      "message": "man: tc-ct.8: Add manual page for ct tc action\n\nSigned-off-by: Paul Blakey \u003cpaulb@mellanox.com\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "42796dcd36772f2a0116bf8a1e94fe43733c0716",
      "tree": "6012f02a76de51c423dfbbef61bf1323593df2d2",
      "parents": [
        "7bd9188581aa8abd644d45a990529a92efe50255"
      ],
      "author": {
        "name": "Maciej Fijalkowski",
        "email": "maciej.fijalkowski@intel.com",
        "time": "Wed May 13 21:47:17 2020 +0200"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@gmail.com",
        "time": "Mon May 18 14:57:15 2020 +0000"
      },
      "message": "tc: mqprio: reject queues count/offset pair count higher than num_tc\n\nProvide a sanity check that will make sure whether queues count/offset\npair count will not exceed the actual number of TCs being created.\n\nExample command that is invalid because there are 4 count/offset pairs\nwhereas num_tc is only 2.\n\n # tc qdisc add dev enp96s0f0 root mqprio num_tc 2 map 0 0 0 0 1 1 1 1\nqueues 4@0 4@4 4@8 4@12 hw 1 mode channel\n\nStore the parsed count/offset pair count onto a dedicated variable that\nwill be compared against opt.num_tc after all of the command line\narguments were parsed. Bail out if this count is higher than opt.num_tc\nand let user know about it.\n\nDrivers were swallowing such commands as they were iterating over\ncount/offset pairs where num_tc was used as a delimiter, so this is not\na big deal, but better catch such misconfiguration at the command line\nargument parsing level.\n\nSigned-off-by: Maciej Fijalkowski \u003cmaciej.fijalkowski@intel.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@gmail.com\u003e\n"
    },
    {
      "commit": "7bd9188581aa8abd644d45a990529a92efe50255",
      "tree": "de79c1cc700bf68ee8436838ec8eb7ac4a13a0a6",
      "parents": [
        "14f4bda590447179e2b338c6e494658d2f737e6e"
      ],
      "author": {
        "name": "Dmitry Yakunin",
        "email": "zeil@yandex-team.ru",
        "time": "Sat May 09 19:52:02 2020 +0300"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@gmail.com",
        "time": "Wed May 13 14:28:38 2020 +0000"
      },
      "message": "ss: add checks for bc filter support\n\nAs noted by David Ahern, now if some bytecode filter is not supported\nby running kernel printed error message is not clear. This patch is attempt to\ndetect such case and print correct message. This is done by providing checking\nfunction for new filter types. As example check function for cgroup filter\nis implemented. It sends correct lightweight request (idiag_states \u003d 0)\nwith zero cgroup condition to the kernel and checks returned errno. If filter\nis not supported EINVAL is returned. Result of checking is cached to\navoid extra checks if several same filters are specified.\n\nSigned-off-by: Dmitry Yakunin \u003czeil@yandex-team.ru\u003e\nSigned-off-by: David Ahern \u003cdsahern@gmail.com\u003e\n"
    },
    {
      "commit": "14f4bda590447179e2b338c6e494658d2f737e6e",
      "tree": "d90013b63a8b3b59856bcd03dcf6e4a0da3bfb39",
      "parents": [
        "d5e6ee0dac64b64ee0f4a8ed3badf8858ec79edc"
      ],
      "author": {
        "name": "Dmitry Yakunin",
        "email": "zeil@yandex-team.ru",
        "time": "Sat May 09 19:52:01 2020 +0300"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@gmail.com",
        "time": "Wed May 13 14:28:35 2020 +0000"
      },
      "message": "ss: add support for cgroup v2 information and filtering\n\nThis patch introduces two new features: obtaining cgroup information and\nfiltering sockets by cgroups. These features work based on cgroup v2 ID\nfield in the socket (kernel should be compiled with CONFIG_SOCK_CGROUP_DATA).\n\nCgroup information can be obtained by specifying --cgroup flag and now contains\nonly pathname. For faster pathname lookups cgroup cache is implemented. This\ncache is filled on ss startup and missed entries are resolved and saved\non the fly.\n\nCgroup filter extends EXPRESSION and allows to specify cgroup pathname\n(relative or absolute) to obtain sockets attached only to this cgroup.\nFilter syntax: ss [ cgroup PATHNAME ]\nExamples:\n    ss -a cgroup /sys/fs/cgroup/unified (or ss -a cgroup .)\n    ss -a cgroup /sys/fs/cgroup/unified/cgroup1 (or ss -a cgroup cgroup1)\n\nv2:\n  - style fixes (David Ahern)\n\nSigned-off-by: Dmitry Yakunin \u003czeil@yandex-team.ru\u003e\nSigned-off-by: David Ahern \u003cdsahern@gmail.com\u003e\n"
    },
    {
      "commit": "d5e6ee0dac64b64ee0f4a8ed3badf8858ec79edc",
      "tree": "31ab9caf1312a28213baddf51456bad5aa553730",
      "parents": [
        "965a5f6a1b394d6ab791be76550e650cad985ef0"
      ],
      "author": {
        "name": "Dmitry Yakunin",
        "email": "zeil@yandex-team.ru",
        "time": "Sat May 09 19:52:00 2020 +0300"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@gmail.com",
        "time": "Wed May 13 14:28:04 2020 +0000"
      },
      "message": "ss: introduce cgroup2 cache and helper functions\n\nThis patch prepares infrastructure for matching sockets by cgroups.\nTwo helper functions are added for transformation between cgroup v2 ID\nand pathname. Cgroup v2 cache is implemented as hash table indexed by ID.\nThis cache is needed for faster lookups of socket cgroup.\n\nv2:\n  - style fixes (David Ahern)\n\nSigned-off-by: Dmitry Yakunin \u003czeil@yandex-team.ru\u003e\nSigned-off-by: David Ahern \u003cdsahern@gmail.com\u003e\n"
    },
    {
      "commit": "965a5f6a1b394d6ab791be76550e650cad985ef0",
      "tree": "26f8d345ccb778ad80f477111bf486c8aea3b515",
      "parents": [
        "07d5ee70b5b3d1777ef6569bc5a94bf5d0ea5c0a"
      ],
      "author": {
        "name": "Po Liu",
        "email": "Po.Liu@nxp.com",
        "time": "Fri May 08 15:02:47 2020 +0800"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@gmail.com",
        "time": "Wed May 13 02:20:12 2020 +0000"
      },
      "message": "iproute2-next: add gate action man page\n\nThis patch is to add the man page for the tc gate action.\n\nSigned-off-by: Po Liu \u003cPo.Liu@nxp.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@gmail.com\u003e\n"
    },
    {
      "commit": "07d5ee70b5b3d1777ef6569bc5a94bf5d0ea5c0a",
      "tree": "a778a211ede9710305e9082230ba2f774183f357",
      "parents": [
        "0e9b227e2d9ea0874c2438c733e6d1e9de925563"
      ],
      "author": {
        "name": "Po Liu",
        "email": "Po.Liu@nxp.com",
        "time": "Fri May 08 15:02:46 2020 +0800"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@gmail.com",
        "time": "Wed May 13 02:19:46 2020 +0000"
      },
      "message": "iproute2-next:tc:action: add a gate control action\n\nIntroduce a ingress frame gate control flow action.\nTc gate action does the work like this:\nAssume there is a gate allow specified ingress frames can pass at\nspecific time slot, and also drop at specific time slot. Tc filter\nchooses the ingress frames, and tc gate action would specify what slot\ndoes these frames can be passed to device and what time slot would be\ndropped.\nTc gate action would provide an entry list to tell how much time gate\nkeep open and how much time gate keep state close. Gate action also\nassign a start time to tell when the entry list start. Then driver would\nrepeat the gate entry list cyclically.\nFor the software simulation, gate action require the user assign a time\nclock type.\n\nBelow is the setting example in user space. Tc filter a stream source ip\naddress is 192.168.0.20 and gate action own two time slots. One is last\n200ms gate open let frame pass another is last 100ms gate close let\nframes dropped.\n\n # tc qdisc add dev eth0 ingress\n # tc filter add dev eth0 parent ffff: protocol ip \\\n\n            flower src_ip 192.168.0.20 \\\n            action gate index 2 clockid CLOCK_TAI \\\n            sched-entry open 200000000ns -1 8000000b \\\n            sched-entry close 100000000ns\n\n # tc chain del dev eth0 ingress chain 0\n\n\"sched-entry\" follow the name taprio style. Gate state is\n\"open\"/\"close\". Follow the period nanosecond. Then next -1 is internal\npriority value means which ingress queue should put to. \"-1\" means\nwildcard. The last value optional specifies the maximum number of\nMSDU octets that are permitted to pass the gate during the specified\ntime interval, the overlimit frames would be dropped.\n\nBelow example shows filtering a stream with destination mac address is\n10:00:80:00:00:00 and ip type is ICMP, follow the action gate. The gate\naction would run with one close time slot which means always keep close.\nThe time cycle is total 200000000ns. The base-time would calculate by:\n\n     1357000000000 + (N + 1) * cycletime\n\nWhen the total value is the future time, it will be the start time.\nThe cycletime here would be 200000000ns for this case.\n\n #tc filter add dev eth0 parent ffff:  protocol ip \\\n           flower skip_hw ip_proto icmp dst_mac 10:00:80:00:00:00 \\\n           action gate index 12 base-time 1357000000000ns \\\n           sched-entry CLOSE 200000000ns \\\n           clockid CLOCK_TAI\n\nSigned-off-by: Po Liu \u003cPo.Liu@nxp.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@gmail.com\u003e\n"
    },
    {
      "commit": "0e9b227e2d9ea0874c2438c733e6d1e9de925563",
      "tree": "ae5c8b0773eaec2fe22ca2f96ea6167ec172bd58",
      "parents": [
        "ec04b6fc241b183e550b41831ecd1ff5d720f510"
      ],
      "author": {
        "name": "David Ahern",
        "email": "dsahern@gmail.com",
        "time": "Wed May 13 02:18:15 2020 +0000"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@gmail.com",
        "time": "Wed May 13 02:18:15 2020 +0000"
      },
      "message": "Update kernel headers and import tc_gate.h\n\nUpdate kernel headers to commit:\n    fb9f2e92864f (\"net: dsa: tag_sja1105: appease sparse checks for ethertype accessors\")\nand import tc_act/tc_gate.h\n\nSigned-off-by: David Ahern \u003cdsahern@gmail.com\u003e\n"
    },
    {
      "commit": "0ecb90b33c4f4c20b859b1f1245b65e36e963cff",
      "tree": "f0b4c1e2c568afed89c96f10c55e4e1e62504d50",
      "parents": [
        "8142c76232324d13800b6cfd5b110cb6b134a491"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Tue May 05 08:43:48 2020 -0700"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Tue May 05 10:27:26 2020 -0700"
      },
      "message": "tc: fq: fix two issues\n\nMy latest patch missed the fact that this file got JSON support.\n\nAlso fixes a spelling error added during JSON change.\n\nFixes: be9ca9d54123 (\"tc: fq: add timer_slack parameter\")\nFixes: d15e2bfc042b (\"tc: fq: add support for JSON output\")\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "8142c76232324d13800b6cfd5b110cb6b134a491",
      "tree": "f334209d3a08f77cccf40cea9270d47188e5f4c8",
      "parents": [
        "e133fa9c73835f5b80236ae20eaba765f1bfe553"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Tue May 05 10:18:58 2020 -0700"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Tue May 05 10:18:58 2020 -0700"
      },
      "message": "ss: update to bw print\n\nDisplay kilobit with the standard suffix.\nAdd comment to describe where data rate suffixes come from.\nAdd support for terrabit.\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "ec04b6fc241b183e550b41831ecd1ff5d720f510",
      "tree": "46fc51b79a3bc13b94cc18e8bf67206cd19bbc0f",
      "parents": [
        "8c109059b58f57ee3a3aada209df2d022158b939"
      ],
      "author": {
        "name": "Jakub Kicinski",
        "email": "kuba@kernel.org",
        "time": "Tue May 05 10:04:57 2020 -0700"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@gmail.com",
        "time": "Tue May 05 17:10:27 2020 +0000"
      },
      "message": "devlink: support kernel-side snapshot id allocation\n\nMake ID argument optional and read the snapshot info\nthat kernel sends us.\n\n$ devlink region new netdevsim/netdevsim1/dummy\nnetdevsim/netdevsim1/dummy: snapshot 0\n$ devlink -jp region new netdevsim/netdevsim1/dummy\n{\n    \"regions\": {\n        \"netdevsim/netdevsim1/dummy\": {\n            \"snapshot\": [ 1 ]\n        }\n    }\n}\n$ devlink region show netdevsim/netdevsim1/dummy\nnetdevsim/netdevsim1/dummy: size 32768 snapshot [0 1]\n\nSigned-off-by: Jakub Kicinski \u003ckuba@kernel.org\u003e\nReviewed-by: Jiri Pirko \u003cjiri@mellanox.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@gmail.com\u003e\n"
    },
    {
      "commit": "e133fa9c73835f5b80236ae20eaba765f1bfe553",
      "tree": "06ab66810032e0590bc3f6a76a33168b60657909",
      "parents": [
        "0501fe734fd75ed93b3417266127bfc37b07459b"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Tue May 05 08:37:41 2020 -0700"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Tue May 05 09:50:22 2020 -0700"
      },
      "message": "ss: add support for Gbit speeds in sprint_bw()\n\nAlso use \u0027g\u0027 specifier instead of \u0027f\u0027 to remove trailing zeros,\nand increase precision.\n\nExamples of output :\n Before        After\n 8.0Kbps       8Kbps\n 9.9Mbps       9.92Mbps\n 55001Mbps     55Gbps\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "8c109059b58f57ee3a3aada209df2d022158b939",
      "tree": "1710325aa4e18e9f37a248f086dc66bfea12064a",
      "parents": [
        "c1b21f528687f913535621a898b94bbc083b94f7",
        "0501fe734fd75ed93b3417266127bfc37b07459b"
      ],
      "author": {
        "name": "David Ahern",
        "email": "dsahern@gmail.com",
        "time": "Tue May 05 16:49:38 2020 +0000"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@gmail.com",
        "time": "Tue May 05 16:49:38 2020 +0000"
      },
      "message": "Merge branch \u0027master\u0027 into next\n\nSigned-off-by: David Ahern \u003cdsahern@gmail.com\u003e\n"
    },
    {
      "commit": "c1b21f528687f913535621a898b94bbc083b94f7",
      "tree": "49cbb03e0c9034cbf6abef5ad7b97b1520a8af87",
      "parents": [
        "3175bca7182b0867c6e9a3d5d1551fdecf70118c"
      ],
      "author": {
        "name": "David Ahern",
        "email": "dsahern@gmail.com",
        "time": "Tue May 05 16:23:14 2020 +0000"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@gmail.com",
        "time": "Tue May 05 16:23:14 2020 +0000"
      },
      "message": "Import rpl.h and rpl_iptunnel.h uapi headers\n\nImport rpl.h and rpl_iptunnel.h as of kernel commit:\n    354d86141796 (\"Merge branch \u0027net-reduce-dynamic-lockdep-keys\u0027\")\n\nSigned-off-by: David Ahern \u003cdsahern@gmail.com\u003e\n"
    },
    {
      "commit": "3175bca7182b0867c6e9a3d5d1551fdecf70118c",
      "tree": "01cf8c556c26819ded2d7aa17d55aee3201e2a44",
      "parents": [
        "ae57e82da01111f680b4d0543fb1fe3cf9f74571"
      ],
      "author": {
        "name": "Davide Caratti",
        "email": "dcaratti@redhat.com",
        "time": "Thu Apr 30 20:03:30 2020 +0200"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@gmail.com",
        "time": "Tue May 05 16:19:06 2020 +0000"
      },
      "message": "tc: full JSON support for \u0027bpf\u0027 filter\n\nexample using eBPF:\n\n # tc filter add dev dummy0 ingress bpf \\\n \u003e direct-action obj ./bpf/filter.o sec tc-ingress\n # tc  -j filter show dev dummy0 ingress | jq\n [\n   {\n     \"protocol\": \"all\",\n     \"pref\": 49152,\n     \"kind\": \"bpf\",\n     \"chain\": 0\n   },\n   {\n     \"protocol\": \"all\",\n     \"pref\": 49152,\n     \"kind\": \"bpf\",\n     \"chain\": 0,\n     \"options\": {\n       \"handle\": \"0x1\",\n       \"bpf_name\": \"filter.o:[tc-ingress]\",\n       \"direct-action\": true,\n       \"not_in_hw\": true,\n       \"prog\": {\n         \"id\": 101,\n         \"tag\": \"a04f5eef06a7f555\",\n         \"jited\": 1\n       }\n     }\n   }\n ]\n\nv2:\n - use print_nl(), thanks to Andrea Claudi\n - use print_0xhex() for filter handle, thanks to Stephen Hemminger\n\nSigned-off-by: Davide Caratti \u003cdcaratti@redhat.com\u003e\nAcked-by: Andrea Claudi \u003caclaudi@redhat.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@gmail.com\u003e\n"
    },
    {
      "commit": "ae57e82da01111f680b4d0543fb1fe3cf9f74571",
      "tree": "119a0608d481f3b2f43719f60cfb0e19ee48a704",
      "parents": [
        "4e578c78fedfe6ffa5fa5fde56778b264485829b"
      ],
      "author": {
        "name": "David Ahern",
        "email": "dsahern@gmail.com",
        "time": "Tue May 05 16:11:22 2020 +0000"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@gmail.com",
        "time": "Tue May 05 16:11:22 2020 +0000"
      },
      "message": "Update kernel headers\n\nUpdate kernel headers to commit:\n    354d86141796 (\"Merge branch \u0027net-reduce-dynamic-lockdep-keys\u0027\")\n\nSigned-off-by: David Ahern \u003cdsahern@gmail.com\u003e\n"
    },
    {
      "commit": "0501fe734fd75ed93b3417266127bfc37b07459b",
      "tree": "4d648b2b49d3393b00cf58b373dd991b6aa7edf8",
      "parents": [
        "e0c457b1a5a26035ccf7c0e6f271d987dbeb8bda"
      ],
      "author": {
        "name": "Benjamin Poirier",
        "email": "bpoirier@cumulusnetworks.com",
        "time": "Fri May 01 17:47:20 2020 +0900"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon May 04 17:13:53 2020 -0700"
      },
      "message": "Replace open-coded instances of print_nl()\n\nSigned-off-by: Benjamin Poirier \u003cbpoirier@cumulusnetworks.com\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "e0c457b1a5a26035ccf7c0e6f271d987dbeb8bda",
      "tree": "60f3ac383dc9b560f85c7801c88e29563b57e1b3",
      "parents": [
        "5a07a5df5a4793c2ee2bf93ced638268053e5a19"
      ],
      "author": {
        "name": "Benjamin Poirier",
        "email": "bpoirier@cumulusnetworks.com",
        "time": "Fri May 01 17:47:19 2020 +0900"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon May 04 17:13:53 2020 -0700"
      },
      "message": "bridge: Align output columns\n\nUse fixed column widths to improve readability.\n\nBefore:\nroot@vsid:/src/iproute2# ./bridge/bridge vlan tunnelshow\nport    vlan-id tunnel-id\nvx0      2       2\n         1010-1020       1010-1020\n         1030    65556\nvx-longname      2       2\n\nAfter:\nroot@vsid:/src/iproute2# ./bridge/bridge vlan tunnelshow\nport              vlan-id    tunnel-id\nvx0               2          2\n                  1010-1020  1010-1020\n                  1030       65556\nvx-longname       2          2\n\nSigned-off-by: Benjamin Poirier \u003cbpoirier@cumulusnetworks.com\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "5a07a5df5a4793c2ee2bf93ced638268053e5a19",
      "tree": "b628f038e792e13823417817d4f5afd3dd5af171",
      "parents": [
        "b262a9becbcb9d0816b7953fd223dd9a7add8e12"
      ],
      "author": {
        "name": "Benjamin Poirier",
        "email": "bpoirier@cumulusnetworks.com",
        "time": "Fri May 01 17:47:18 2020 +0900"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon May 04 17:13:53 2020 -0700"
      },
      "message": "json_print: Return number of characters printed\n\nWhen outputting in normal mode, forward the return value from\ncolor_fprintf().\n\nSigned-off-by: Benjamin Poirier \u003cbpoirier@cumulusnetworks.com\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "b262a9becbcb9d0816b7953fd223dd9a7add8e12",
      "tree": "b76c8d935f6be22231ec535d9e0602cb841f2945",
      "parents": [
        "91b1b49ed3934eb423308130bb3365a0afebf5af"
      ],
      "author": {
        "name": "Benjamin Poirier",
        "email": "bpoirier@cumulusnetworks.com",
        "time": "Fri May 01 17:47:17 2020 +0900"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon May 04 17:13:53 2020 -0700"
      },
      "message": "bridge: Fix output with empty vlan lists\n\nConsider this configuration:\n\nip link add br0 type bridge\nip link add vx0 type vxlan dstport 4789 external\nip link set dev vx0 master br0\nbridge vlan del vid 1 dev vx0\nip link add vx1 type vxlan dstport 4790 external\nip link set dev vx1 master br0\n\n\troot@vsid:/src/iproute2# ./bridge/bridge vlan\n\tport    vlan-id\n\tbr0      1 PVID Egress Untagged\n\n\tvx0     None\n\tvx1      1 PVID Egress Untagged\n\n\troot@vsid:/src/iproute2#\n\nNote the useless and inconsistent empty lines.\n\n\troot@vsid:/src/iproute2# ./bridge/bridge vlan tunnelshow\n\tport    vlan-id tunnel-id\n\tbr0\n\tvx0     None\n\tvx1\n\nWhat\u0027s the difference between \"None\" and \"\"?\n\n\troot@vsid:/src/iproute2# ./bridge/bridge -j -p vlan tunnelshow\n\t[ {\n\t\t\"ifname\": \"br0\",\n\t\t\"tunnels\": [ ]\n\t    },{\n\t\t\"ifname\": \"vx1\",\n\t\t\"tunnels\": [ ]\n\t    } ]\n\nWhy does vx0 appear in normal output and not json output?\nWhy output an empty list for br0 and vx1?\n\nFix these inconsistencies and avoid outputting entries with no values. This\nmakes the behavior consistent with other iproute2 commands, for example\n`ip -6 addr`: if an interface doesn\u0027t have any ipv6 addresses, it is not\npart of the listing.\n\nFixes: 8652eeb3ab12 (\"bridge: vlan: support for per vlan tunnel info\")\nSigned-off-by: Benjamin Poirier \u003cbpoirier@cumulusnetworks.com\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "91b1b49ed3934eb423308130bb3365a0afebf5af",
      "tree": "45675474d24ff65c23db2f581bcf2a5ba78afd1b",
      "parents": [
        "594b2d7799041f3962b5a9cf620ca8c90d7860d6"
      ],
      "author": {
        "name": "Benjamin Poirier",
        "email": "bpoirier@cumulusnetworks.com",
        "time": "Fri May 01 17:47:16 2020 +0900"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon May 04 17:13:53 2020 -0700"
      },
      "message": "bridge: Fix typo\n\nFixes: 7abf5de677e3 (\"bridge: vlan: add support to display per-vlan statistics\")\nSigned-off-by: Benjamin Poirier \u003cbpoirier@cumulusnetworks.com\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "594b2d7799041f3962b5a9cf620ca8c90d7860d6",
      "tree": "16581b359eca168c4266ee9e8b823c11c106f840",
      "parents": [
        "7ae84fedcb15815a7488558b0b319cffdd12a565"
      ],
      "author": {
        "name": "Benjamin Poirier",
        "email": "bpoirier@cumulusnetworks.com",
        "time": "Fri May 01 17:47:15 2020 +0900"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon May 04 17:13:53 2020 -0700"
      },
      "message": "bridge: Use consistent column names in vlan output\n\nFix singular vs plural. Add a hyphen to clarify that each of those are\nsingle fields.\n\nSigned-off-by: Benjamin Poirier \u003cbpoirier@cumulusnetworks.com\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "4e578c78fedfe6ffa5fa5fde56778b264485829b",
      "tree": "4891928d30d529b01b05db8e1358401220940f3f",
      "parents": [
        "93c8d5f72f8ce4b98c68508e85457f83933302c0"
      ],
      "author": {
        "name": "Xin Long",
        "email": "lucien.xin@gmail.com",
        "time": "Mon Apr 27 18:27:51 2020 +0800"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@gmail.com",
        "time": "Fri May 01 16:33:27 2020 +0000"
      },
      "message": "tc: f_flower: add options support for erspan\n\nThis patch is to add TCA_FLOWER_KEY_ENC_OPTS_ERSPAN\u0027s parse and\nprint to implement erspan options support in m_tunnel_key, like\nCommit 56155d4df86d (\"tc: f_flower: add geneve option match\nsupport to flower\") for geneve options support.\n\nOption is expressed as version:index:dir:hwid, dir and hwid will\nbe parsed when version is 2, while index will be parsed when\nversion is 1. erspan doesn\u0027t support multiple options.\n\nWith this patch, users can add and dump erspan options like:\n\n  # ip link add name erspan1 type erspan external\n  # tc qdisc add dev erspan1 ingress\n  # tc filter add dev erspan1 protocol ip parent ffff: \\\n      flower \\\n        enc_src_ip 10.0.99.192 \\\n        enc_dst_ip 10.0.99.193 \\\n        enc_key_id 11 \\\n        erspan_opts 1:2:0:0/1:255:0:0 \\\n        ip_proto udp \\\n        action mirred egress redirect dev eth1\n  # tc -s filter show dev erspan1 parent ffff:\n\n     filter protocol ip pref 49152 flower chain 0 handle 0x1\n       eth_type ipv4\n       ip_proto udp\n       enc_dst_ip 10.0.99.193\n       enc_src_ip 10.0.99.192\n       enc_key_id 11\n       erspan_opts 1:2:0:0/1:255:0:0\n       not_in_hw\n         action order 1: mirred (Egress Redirect to device eth1) stolen\n         index 1 ref 1 bind 1\n         Action statistics:\n         Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)\n         backlog 0b 0p requeues 0\n\nv1-\u003ev2:\n  - no change.\nv2-\u003ev3:\n  - no change.\nv3-\u003ev4:\n  - keep the same format between input and output, json and non json.\n  - print version, index, dir and hwid as uint.\n\nSigned-off-by: Xin Long \u003clucien.xin@gmail.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@gmail.com\u003e\n"
    },
    {
      "commit": "93c8d5f72f8ce4b98c68508e85457f83933302c0",
      "tree": "ff58e48505c934c5dbc2eda67816ec873a3e4010",
      "parents": [
        "668fd9b25d9eca3067040273239f7825db95442b"
      ],
      "author": {
        "name": "Xin Long",
        "email": "lucien.xin@gmail.com",
        "time": "Mon Apr 27 18:27:50 2020 +0800"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@gmail.com",
        "time": "Fri May 01 16:33:22 2020 +0000"
      },
      "message": "tc: f_flower: add options support for vxlan\n\nThis patch is to add TCA_FLOWER_KEY_ENC_OPTS_VXLAN\u0027s parse and\nprint to implement vxlan options support in m_tunnel_key, like\nCommit 56155d4df86d (\"tc: f_flower: add geneve option match\nsupport to flower\") for geneve options support.\n\nOption is expressed a 32bit number for gbp only, and vxlan\ndoesn\u0027t support multiple options.\n\nWith this patch, users can add and dump vxlan options like:\n\n  # ip link add name vxlan1 type vxlan dstport 0 external\n  # tc qdisc add dev vxlan1 ingress\n  # tc filter add dev vxlan1 protocol ip parent ffff: \\\n      flower \\\n        enc_src_ip 10.0.99.192 \\\n        enc_dst_ip 10.0.99.193 \\\n        enc_key_id 11 \\\n        vxlan_opts 65793/4008635966 \\\n        ip_proto udp \\\n        action mirred egress redirect dev eth1\n  # tc -s filter show dev vxlan1 parent ffff:\n\n     filter protocol ip pref 49152 flower chain 0 handle 0x1\n       eth_type ipv4\n       ip_proto udp\n       enc_dst_ip 10.0.99.193\n       enc_src_ip 10.0.99.192\n       enc_key_id 11\n       vxlan_opts 65793/4008635966\n       not_in_hw\n         action order 1: mirred (Egress Redirect to device eth1) stolen\n         index 3 ref 1 bind 1\n         Action statistics:\n         Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)\n         backlog 0b 0p requeues 0\n\nv1-\u003ev2:\n  - get_u32 with base \u003d 0 for gbp.\nv2-\u003ev3:\n  - implement proper JSON array for opts.\nv3-\u003ev4:\n  - keep the same format between input and output, json and non json.\n  - print gbp as uint.\n\nSigned-off-by: Xin Long \u003clucien.xin@gmail.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@gmail.com\u003e\n"
    },
    {
      "commit": "668fd9b25d9eca3067040273239f7825db95442b",
      "tree": "613169d33caeb1d105135cc71a523ba7ca72e93c",
      "parents": [
        "f72c3ad00f3b7869e90840d0098a83cb88224892"
      ],
      "author": {
        "name": "Xin Long",
        "email": "lucien.xin@gmail.com",
        "time": "Mon Apr 27 18:27:49 2020 +0800"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@gmail.com",
        "time": "Fri May 01 16:33:18 2020 +0000"
      },
      "message": "tc: m_tunnel_key: add options support for erpsan\n\nThis patch is to add TCA_TUNNEL_KEY_ENC_OPTS_ERSPAN\u0027s parse and\nprint to implement erspan options support in m_tunnel_key, like\nCommit 6217917a3826 (\"tc: m_tunnel_key: Add tunnel option support\nto act_tunnel_key\") for geneve options support.\n\nOption is expressed as version:index:dir:hwid, dir and hwid will\nbe parsed when version is 2, while index will be parsed when\nversion is 1. erspan doesn\u0027t support multiple options.\n\nWith this patch, users can add and dump erspan options like:\n\n  # ip link add name erspan1 type erspan external\n  # tc qdisc add dev eth0 ingress\n  # tc filter add dev eth0 protocol ip parent ffff: \\\n      flower indev eth0 \\\n        ip_proto udp \\\n        action tunnel_key \\\n          set src_ip 10.0.99.192 \\\n          dst_ip 10.0.99.193 \\\n          dst_port 6081 \\\n          id 11 \\\n          erspan_opts 1:2:0:0 \\\n      action mirred egress redirect dev erspan1\n  # tc -s filter show dev eth0 parent ffff:\n\n     filter protocol ip pref 49151 flower chain 0 handle 0x1\n       indev eth0\n       eth_type ipv4\n       ip_proto udp\n       not_in_hw\n         action order 1: tunnel_key  set\n         src_ip 10.0.99.192\n         dst_ip 10.0.99.193\n         key_id 11\n         dst_port 6081\n         erspan_opts 1:2:0:0\n         csum pipe\n           index 2 ref 1 bind 1\n         ...\nv1-\u003ev2:\n  - no change.\nv2-\u003ev3:\n  - no change.\nv3-\u003ev4:\n  - keep the same format between input and output, json and non json.\n  - print version, index, dir and hwid as uint.\n\nSigned-off-by: Xin Long \u003clucien.xin@gmail.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@gmail.com\u003e\n"
    },
    {
      "commit": "f72c3ad00f3b7869e90840d0098a83cb88224892",
      "tree": "4399c8d878a000b70ceb6146379083a06e087710",
      "parents": [
        "39fa047938fbef6cd08687b0daa4d86afbfdc61c"
      ],
      "author": {
        "name": "Xin Long",
        "email": "lucien.xin@gmail.com",
        "time": "Mon Apr 27 18:27:48 2020 +0800"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@gmail.com",
        "time": "Fri May 01 16:33:14 2020 +0000"
      },
      "message": "tc: m_tunnel_key: add options support for vxlan\n\nThis patch is to add TCA_TUNNEL_KEY_ENC_OPTS_VXLAN\u0027s parse and\nprint to implement vxlan options support in m_tunnel_key, like\nCommit 6217917a3826 (\"tc: m_tunnel_key: Add tunnel option support\nto act_tunnel_key\") for geneve options support.\n\nOption is expressed a 32bit number for gbp only, and vxlan\ndoesn\u0027t support multiple options.\n\nWith this patch, users can add and dump vxlan options like:\n\n  # ip link add name vxlan1 type vxlan dstport 0 external\n  # tc qdisc add dev eth0 ingress\n  # tc filter add dev eth0 protocol ip parent ffff: \\\n      flower indev eth0 \\\n        ip_proto udp \\\n        action tunnel_key \\\n          set src_ip 10.0.99.192 \\\n          dst_ip 10.0.99.193 \\\n          dst_port 6081 \\\n          id 11 \\\n          vxlan_opts 65793 \\\n      action mirred egress redirect dev vxlan1\n  # tc -s filter show dev eth0 parent ffff:\n\n     filter protocol ip pref 49152 flower chain 0 handle 0x1\n       indev eth0\n       eth_type ipv4\n       ip_proto udp\n       not_in_hw\n         action order 1: tunnel_key  set\n         src_ip 10.0.99.192\n         dst_ip 10.0.99.193\n         key_id 11\n         dst_port 6081\n         vxlan_opts 65793\n         ...\n\nv1-\u003ev2:\n  - get_u32 with base \u003d 0 for gbp.\n  - use to print_unint(\"0x%x\") to print gbp.\nv2-\u003ev3:\n  - implement proper JSON array for opts.\nv3-\u003ev4:\n  - keep the same format between input and output, json and non json.\n  - print gbp as uint.\n\nSigned-off-by: Xin Long \u003clucien.xin@gmail.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@gmail.com\u003e\n"
    },
    {
      "commit": "39fa047938fbef6cd08687b0daa4d86afbfdc61c",
      "tree": "3b00335a52f791fe0effc5e826448086340e84ee",
      "parents": [
        "b1bc0f38922220b379ed39552a5e2a7cf9dccd92"
      ],
      "author": {
        "name": "Xin Long",
        "email": "lucien.xin@gmail.com",
        "time": "Mon Apr 27 18:27:47 2020 +0800"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@gmail.com",
        "time": "Fri May 01 16:33:09 2020 +0000"
      },
      "message": "iproute_lwtunnel: add options support for erspan metadata\n\nThis patch is to add LWTUNNEL_IP_OPTS_ERSPAN\u0027s parse and print to implement\nerspan options support in iproute_lwtunnel.\n\nOption is expressed as version:index:dir:hwid, dir and hwid will be parsed\nwhen version is 2, while index will be parsed when version is 1. All of\nthese are numbers. erspan doesn\u0027t support multiple options.\n\nWith this patch, users can add and dump erspan options like:\n\n  # ip netns add a\n  # ip netns add b\n  # ip -n a link add eth0 type veth peer name eth0 netns b\n  # ip -n a link set eth0 up\n  # ip -n b link set eth0 up\n  # ip -n a addr add 10.1.0.1/24 dev eth0\n  # ip -n b addr add 10.1.0.2/24 dev eth0\n  # ip -n b link add erspan1 type erspan key 1 seq erspan 123 \\\n    local 10.1.0.2 remote 10.1.0.1\n  # ip -n b addr add 1.1.1.1/24 dev erspan1\n  # ip -n b link set erspan1 up\n  # ip -n b route add 2.1.1.0/24 dev erspan1\n  # ip -n a link add erspan1 type erspan key 1 seq local 10.1.0.1 external\n  # ip -n a addr add 2.1.1.1/24 dev erspan1\n  # ip -n a link set erspan1 up\n  # ip -n a route add 1.1.1.0/24 encap ip id 1 \\\n    erspan_opts 2:123:1:2 dst 10.1.0.2 dev erspan1\n  # ip -n a route show\n  # ip netns exec a ping 1.1.1.1 -c 1\n\n   1.1.1.0/24  encap ip id 1 src 0.0.0.0 dst 10.1.0.2 ttl 0 tos 0\n     erspan_opts 2:0:1:2 dev erspan1 scope link\n\n   PING 1.1.1.1 (1.1.1.1) 56(84) bytes of data.\n   64 bytes from 1.1.1.1: icmp_seq\u003d1 ttl\u003d64 time\u003d0.124 ms\n\nv1-\u003ev2:\n  - improve the changelog.\n  - use PRINT_ANY to support dumping with json format.\nv2-\u003ev3:\n  - implement proper JSON object for opts instead of just bunch of strings.\nv3-\u003ev4:\n  - keep the same format between input and output, json and non json.\n  - print version, index, dir and hwid as uint.\n\nSigned-off-by: Xin Long \u003clucien.xin@gmail.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@gmail.com\u003e\n"
    },
    {
      "commit": "b1bc0f38922220b379ed39552a5e2a7cf9dccd92",
      "tree": "bc94a02ee03ba7c06ebefae460f1c127da82c78a",
      "parents": [
        "ca7614d4c6f456187d831a8202bb4a8559a72f8b"
      ],
      "author": {
        "name": "Xin Long",
        "email": "lucien.xin@gmail.com",
        "time": "Mon Apr 27 18:27:46 2020 +0800"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@gmail.com",
        "time": "Fri May 01 16:33:03 2020 +0000"
      },
      "message": "iproute_lwtunnel: add options support for vxlan metadata\n\nThis patch is to add LWTUNNEL_IP_OPTS_VXLAN\u0027s parse and print to implement\nvxlan options support in iproute_lwtunnel.\n\nOption is expressed a number for gbp only, and vxlan doesn\u0027t support\nmultiple options.\n\nWith this patch, users can add and dump vxlan options like:\n\n  # ip netns add a\n  # ip netns add b\n  # ip -n a link add eth0 type veth peer name eth0 netns b\n  # ip -n a link set eth0 up\n  # ip -n b link set eth0 up\n  # ip -n a addr add 10.1.0.1/24 dev eth0\n  # ip -n b addr add 10.1.0.2/24 dev eth0\n  # ip -n b link add vxlan1 type vxlan id 1 local 10.1.0.2 \\\n    remote 10.1.0.1 dev eth0 ttl 64 gbp\n  # ip -n b addr add 1.1.1.1/24 dev vxlan1\n  # ip -n b link set vxlan1 up\n  # ip -n b route add 2.1.1.0/24 dev vxlan1\n  # ip -n a link add vxlan1 type vxlan local 10.1.0.1 dev eth0 ttl 64 \\\n    gbp external\n  # ip -n a addr add 2.1.1.1/24 dev vxlan1\n  # ip -n a link set vxlan1 up\n  # ip -n a route add 1.1.1.0/24 encap ip id 1 \\\n    vxlan_opts 1110 dst 10.1.0.2 dev vxlan1\n  # ip -n a route show\n  # ip netns exec a ping 1.1.1.1 -c 1\n\n   1.1.1.0/24  encap ip id 1 src 0.0.0.0 dst 10.1.0.2 ttl 0 tos 0\n     vxlan_opts 1110 dev vxlan1 scope link\n\n   PING 1.1.1.1 (1.1.1.1) 56(84) bytes of data.\n   64 bytes from 1.1.1.1: icmp_seq\u003d1 ttl\u003d64 time\u003d0.111 ms\n\nv1-\u003ev2:\n  - improve the changelog.\n  - get_u32 with base \u003d 0 for gbp.\n  - use PRINT_ANY to support dumping with json format.\nv2-\u003ev3:\n  - implement proper JSON array for opts.\nv3-\u003ev4:\n  - keep the same format between input and output, json and non json.\n  - print gbp as uint.\n\nSigned-off-by: Xin Long \u003clucien.xin@gmail.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@gmail.com\u003e\n"
    },
    {
      "commit": "ca7614d4c6f456187d831a8202bb4a8559a72f8b",
      "tree": "2eac55b4802ae83dc1a16ebf124c604c91264af7",
      "parents": [
        "081d6c310d3a6e0412431a9652f641dff3f72aee"
      ],
      "author": {
        "name": "Xin Long",
        "email": "lucien.xin@gmail.com",
        "time": "Mon Apr 27 18:27:45 2020 +0800"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@gmail.com",
        "time": "Fri May 01 16:31:58 2020 +0000"
      },
      "message": "iproute_lwtunnel: add options support for geneve metadata\n\nThis patch is to add LWTUNNEL_IP(6)_OPTS and LWTUNNEL_IP_OPTS_GENEVE\u0027s\nparse and print to implement geneve options support in iproute_lwtunnel.\n\nOptions are expressed as class:type:data and multiple options may be\nlisted using a comma delimiter, class and type are numbers and data\nis a hex string.\n\nWith this patch, users can add and dump geneve options like:\n\n  # ip netns add a\n  # ip netns add b\n  # ip -n a link add eth0 type veth peer name eth0 netns b\n  # ip -n a link set eth0 up; ip -n b link set eth0 up\n  # ip -n a addr add 10.1.0.1/24 dev eth0\n  # ip -n b addr add 10.1.0.2/24 dev eth0\n  # ip -n b link add geneve1 type geneve id 1 remote 10.1.0.1 ttl 64\n  # ip -n b addr add 1.1.1.1/24 dev geneve1\n  # ip -n b link set geneve1 up\n  # ip -n b route add 2.1.1.0/24 dev geneve1\n  # ip -n a link add geneve1 type geneve external\n  # ip -n a addr add 2.1.1.1/24 dev geneve1\n  # ip -n a link set geneve1 up\n  # ip -n a route add 1.1.1.0/24 encap ip id 1 geneve_opts \\\n    1:1:1212121234567890,1:1:1212121234567890,1:1:1212121234567890 \\\n    dst 10.1.0.2 dev geneve1\n  # ip -n a route show\n  # ip netns exec a ping 1.1.1.1 -c 1\n\n   1.1.1.0/24  encap ip id 1 src 0.0.0.0 dst 10.1.0.2 ttl 0 tos 0\n     geneve_opts 1:1:1212121234567890,1:1:1212121234567890 ...\n\n   PING 1.1.1.1 (1.1.1.1) 56(84) bytes of data.\n   64 bytes from 1.1.1.1: icmp_seq\u003d1 ttl\u003d64 time\u003d0.079 ms\n\nv1-\u003ev2:\n  - improve the changelog.\n  - use PRINT_ANY to support dumping with json format.\nv2-\u003ev3:\n  - implement proper JSON array for opts instead of just bunch of strings.\nv3-\u003ev4:\n  - keep the same format between input and output, json and non json.\n  - print class and type as uint and print data as hex string.\n\nSigned-off-by: Xin Long \u003clucien.xin@gmail.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@gmail.com\u003e\n"
    },
    {
      "commit": "7ae84fedcb15815a7488558b0b319cffdd12a565",
      "tree": "c3d2f7f70494e854da6269533ea455951136bea7",
      "parents": [
        "2b93f66863a91251e6e974de05d7ea5d7fba8949"
      ],
      "author": {
        "name": "Jacob Keller",
        "email": "jacob.e.keller@intel.com",
        "time": "Tue Apr 28 13:43:24 2020 -0700"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Wed Apr 29 22:31:55 2020 -0700"
      },
      "message": "devlink: add support for DEVLINK_CMD_REGION_NEW\n\nAdd support to request that a new snapshot be taken immediately for\na devlink region. To avoid confusion, the desired snapshot id must be\nprovided.\n\nNote that if a region does not support snapshots on demand, the kernel\nwill reject the request with -EOPNOTSUP.\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\nReviewed-by: Jiri Pirko \u003cjiri@mellanox.com\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "2b93f66863a91251e6e974de05d7ea5d7fba8949",
      "tree": "05d8ea91a9db9fc70f7f5aa22d37762a329df22c",
      "parents": [
        "be9ca9d541232112ed3a878ddfe0a5829bf0e887"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Wed Apr 29 22:30:48 2020 -0700"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Wed Apr 29 22:30:48 2020 -0700"
      },
      "message": "uapi: update bpf.h\n\nMinor spelling in comment\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "081d6c310d3a6e0412431a9652f641dff3f72aee",
      "tree": "76ae697312d68242181a24f2c807b20b37e9a989",
      "parents": [
        "846b6b2da8358d34aa4be8b310f90195e134b5b0"
      ],
      "author": {
        "name": "Petr Machata",
        "email": "petrm@mellanox.com",
        "time": "Tue Apr 28 14:44:33 2020 +0300"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@gmail.com",
        "time": "Thu Apr 30 02:43:23 2020 +0000"
      },
      "message": "tc: pedit: Support JSON dumping\n\nThe action pedit does not currently support dumping to JSON. Convert\nprint_pedit() to the print_* family of functions so that dumping is correct\nboth in plain and JSON mode. In plain mode, the output is character for\ncharacter the same as it was before. In JSON mode, this is an example dump:\n\n$ tc filter add dev dummy0 ingress prio 125 flower \\\n         action pedit ex munge udp dport set 12345 \\\n\t                 munge ip ttl add 1        \\\n\t\t\t munge offset 10 u8 clear\n$ tc -j filter show dev dummy0 ingress | jq\n[\n  {\n    \"protocol\": \"all\",\n    \"pref\": 125,\n    \"kind\": \"flower\",\n    \"chain\": 0\n  },\n  {\n    \"protocol\": \"all\",\n    \"pref\": 125,\n    \"kind\": \"flower\",\n    \"chain\": 0,\n    \"options\": {\n      \"handle\": 1,\n      \"keys\": {},\n      \"not_in_hw\": true,\n      \"actions\": [\n        {\n          \"order\": 1,\n          \"kind\": \"pedit\",\n          \"control_action\": {\n            \"type\": \"pass\"\n          },\n          \"nkeys\": 3,\n          \"index\": 1,\n          \"ref\": 1,\n          \"bind\": 1,\n          \"keys\": [\n            {\n              \"htype\": \"udp\",\n              \"offset\": 0,\n              \"cmd\": \"set\",\n              \"val\": \"3039\",\n              \"mask\": \"ffff0000\"\n            },\n            {\n              \"htype\": \"ipv4\",\n              \"offset\": 8,\n              \"cmd\": \"add\",\n              \"val\": \"1000000\",\n              \"mask\": \"ffffff\"\n            },\n            {\n              \"htype\": \"network\",\n              \"offset\": 8,\n              \"cmd\": \"set\",\n              \"val\": \"0\",\n              \"mask\": \"ffff00ff\"\n            }\n          ]\n        }\n      ]\n    }\n  }\n]\n\nSigned-off-by: Petr Machata \u003cpetrm@mellanox.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@gmail.com\u003e\n"
    },
    {
      "commit": "846b6b2da8358d34aa4be8b310f90195e134b5b0",
      "tree": "b242d047197ffc4f91d63949348e29a6638d825e",
      "parents": [
        "0c42c6b130196d1d7e87acc5122f8fd325e75c5b"
      ],
      "author": {
        "name": "William Tu",
        "email": "u9012063@gmail.com",
        "time": "Sun Apr 26 08:04:15 2020 -0700"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@gmail.com",
        "time": "Thu Apr 30 02:40:10 2020 +0000"
      },
      "message": "erspan: Add type I version 0 support.\n\nThe Type I ERSPAN frame format is based on the barebones\nIP + GRE(4-byte) encapsulation on top of the raw mirrored frame.\nBoth type I and II use 0x88BE as protocol type. Unlike type II\nand III, no sequence number or key is required.\n\nTo creat a type I erspan tunnel device:\n$ ip link add dev erspan11 type erspan \\\n\tlocal 172.16.1.100 remote 172.16.1.200 \\\n\terspan_ver 0\n\nCC: Dmitriy Andreyevskiy \u003cdandreye@cisco.com\u003e\nSigned-off-by: William Tu \u003cu9012063@gmail.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@gmail.com\u003e\n"
    },
    {
      "commit": "0c42c6b130196d1d7e87acc5122f8fd325e75c5b",
      "tree": "70fdfbf9b19b11be652f294d1b6b2b6127bd538e",
      "parents": [
        "d38f2a10dd09850d0c678fc9c62975d1bcfbdeb8"
      ],
      "author": {
        "name": "Paolo Abeni",
        "email": "pabeni@redhat.com",
        "time": "Wed Apr 29 19:17:22 2020 +0200"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@gmail.com",
        "time": "Wed Apr 29 17:36:14 2020 +0000"
      },
      "message": "man: ip.8: add reference to mptcp man-page\n\nWhile at it, additionally fix a mandoc warning in mptcp.8\n\nSigned-off-by: Paolo Abeni \u003cpabeni@redhat.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@gmail.com\u003e\n"
    },
    {
      "commit": "d38f2a10dd09850d0c678fc9c62975d1bcfbdeb8",
      "tree": "75e750ed54e8e7dd584ee798fd9332039bc5d28d",
      "parents": [
        "02ade5a8ea1c23201a99d8cdf7e02a6ba90d7718",
        "2d8b5fe93e9decb56acc243905d82fb22d6c4cfd"
      ],
      "author": {
        "name": "David Ahern",
        "email": "dsahern@gmail.com",
        "time": "Wed Apr 29 16:50:25 2020 +0000"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@gmail.com",
        "time": "Wed Apr 29 16:50:25 2020 +0000"
      },
      "message": "Merge branch \u0027mptcp\u0027 into next\n\nPaolo Abeni  says:\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nThis introduces support for the MPTCP PM netlink interface, allowing admins\nto configure several aspects of the MPTCP path manager. The subcommand is\ndocumented with a newly added man-page.\n\nThis series also includes support for MPTCP subflow diag.\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nSigned-off-by: David Ahern \u003cdsahern@gmail.com\u003e\n"
    },
    {
      "commit": "2d8b5fe93e9decb56acc243905d82fb22d6c4cfd",
      "tree": "75e750ed54e8e7dd584ee798fd9332039bc5d28d",
      "parents": [
        "712fdd98c0839540a50baca0fb858c7a72d18031"
      ],
      "author": {
        "name": "Paolo Abeni",
        "email": "pabeni@redhat.com",
        "time": "Thu Apr 23 15:37:10 2020 +0200"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@gmail.com",
        "time": "Wed Apr 29 16:47:45 2020 +0000"
      },
      "message": "man: mptcp man page\n\ndescribe the mptcp subcommands implemented so far.\n\nSigned-off-by: Paolo Abeni \u003cpabeni@redhat.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@gmail.com\u003e\n"
    },
    {
      "commit": "712fdd98c0839540a50baca0fb858c7a72d18031",
      "tree": "a227e3134854f099c0fa86374dae2d35294e85ac",
      "parents": [
        "7e0767cd862bb5dd2d41c41c5e6f55d633f953ea"
      ],
      "author": {
        "name": "Davide Caratti",
        "email": "dcaratti@redhat.com",
        "time": "Thu Apr 23 15:37:09 2020 +0200"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@gmail.com",
        "time": "Wed Apr 29 16:44:55 2020 +0000"
      },
      "message": "ss: allow dumping MPTCP subflow information\n\n [root@f31 packetdrill]# ss -tni\n\n ESTAB    0        0           192.168.82.247:8080           192.0.2.1:35273\n          cubic wscale:7,8 [...] tcp-ulp-mptcp flags:Mec token:0000(id:0)/5f856c60(id:0) seq:b810457db34209a5 sfseq:1 ssnoff:0 maplen:190\n\nAdditionally extends ss manpage to describe the new entry layout.\n\nSigned-off-by: Davide Caratti \u003cdcaratti@redhat.com\u003e\nSigned-off-by: Paolo Abeni \u003cpabeni@redhat.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@gmail.com\u003e\n"
    },
    {
      "commit": "7e0767cd862bb5dd2d41c41c5e6f55d633f953ea",
      "tree": "5e94d9ef59db9e58d0923604e5f0254a6ed1baa6",
      "parents": [
        "02ade5a8ea1c23201a99d8cdf7e02a6ba90d7718"
      ],
      "author": {
        "name": "Paolo Abeni",
        "email": "pabeni@redhat.com",
        "time": "Thu Apr 23 15:37:08 2020 +0200"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@gmail.com",
        "time": "Wed Apr 29 16:43:18 2020 +0000"
      },
      "message": "add support for mptcp netlink interface\n\nImplement basic commands to:\n- manipulate MPTCP endpoints list\n- manipulate MPTCP connection limits\n\nExamples:\n1. Allows multiple subflows per MPTCP connection\n   $ ip mptcp limits set subflows 2\n\n2. Accept ADD_ADDR announcement from the peer (server):\n   $ ip mptcp limits set add_addr_accepted 2\n\n3. Add a ipv4 address to be annunced for backup subflows:\n   $ ip mptcp endpoint add 10.99.1.2 signal backup\n\n4. Add an ipv6 address used as source for additional subflows:\n   $ ip mptcp endpoint add 2001::2 subflow\n\nSigned-off-by: Paolo Abeni \u003cpabeni@redhat.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@gmail.com\u003e\n"
    },
    {
      "commit": "02ade5a8ea1c23201a99d8cdf7e02a6ba90d7718",
      "tree": "dc8c45a23772d8b5d3f76d59911b2000ee621838",
      "parents": [
        "60f1075c2144c84cee8bafad34fbc44fbb10406c"
      ],
      "author": {
        "name": "David Ahern",
        "email": "dsahern@gmail.com",
        "time": "Wed Apr 29 16:41:39 2020 +0000"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@gmail.com",
        "time": "Wed Apr 29 16:41:39 2020 +0000"
      },
      "message": "Update kernel headers and import mptcp.h\n\nUpdate kernel headers to commit\n    790ab249b55d (\"net: ethernet: fec: Prevent MII event after MII_SPEED write\")\n\nand import mptcp.h\n\nSigned-off-by: David Ahern \u003cdsahern@gmail.com\u003e\n"
    },
    {
      "commit": "be9ca9d541232112ed3a878ddfe0a5829bf0e887",
      "tree": "abf4686609b5e509b9cafa6cd15a48533a85b8ae",
      "parents": [
        "7868f802e2d93a9f6e2d64a6fc608445a33c8a8d"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Mon Apr 27 11:05:43 2020 -0700"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Apr 27 14:56:42 2020 -0700"
      },
      "message": "tc: fq: add timer_slack parameter\n\nCommit 583396f4ca4d (\"net_sched: sch_fq: enable use of hrtimer slack\")\nadded TCA_FQ_TIMER_SLACK parameter, with a default value of 10 usec.\n\nAdd the corresponding tc support to get/set this tunable.\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "7868f802e2d93a9f6e2d64a6fc608445a33c8a8d",
      "tree": "b99adedc15c7847954bbe173551a76fb9ead8782",
      "parents": [
        "d27fc6390ce32ecdba6324e22b1c341791c5c63f"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Mon Apr 27 10:51:55 2020 -0700"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Apr 27 14:56:42 2020 -0700"
      },
      "message": "tc: fq_codel: add drop_batch parameter\n\nCommit 9d18562a2278 (\"fq_codel: add batch ability to fq_codel_drop()\")\nadded the new TCA_FQ_CODEL_DROP_BATCH_SIZE parameter, set by default to 64.\n\nAdd to tc command the ability to get/set the drop_batch\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "d27fc6390ce32ecdba6324e22b1c341791c5c63f",
      "tree": "5fe61698b8a7c44ea835124039f8492645cd425a",
      "parents": [
        "0149dabf2a1bad2f210ca2d987b29083247b7bd0"
      ],
      "author": {
        "name": "Xin Long",
        "email": "lucien.xin@gmail.com",
        "time": "Mon Apr 27 15:14:24 2020 +0800"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Apr 27 14:50:37 2020 -0700"
      },
      "message": "xfrm: also check for ipv6 state in xfrm_state_keep\n\nAs commit f9d696cf414c (\"xfrm: not try to delete ipcomp states when using\ndeleteall\") does, this patch is to fix the same issue for ip6 state where\nxsinfo-\u003eid.proto \u003d\u003d IPPROTO_IPV6.\n\n  # ip xfrm state add src 2000::1 dst 2000::2 spi 0x1000 \\\n    proto comp comp deflate mode tunnel sel src 2000::1 dst \\\n    2000::2 proto gre\n  # ip xfrm sta deleteall\n  Failed to send delete-all request\n  : Operation not permitted\n\nNote that the xsinfo-\u003eproto in common states can never be IPPROTO_IPV6.\n\nFixes: f9d696cf414c (\"xfrm: not try to delete ipcomp states when using deleteall\")\nReported-by: Xiumei Mu \u003cxmu@redhat.com\u003e\nSigned-off-by: Xin Long \u003clucien.xin@gmail.com\u003e\nAcked-by: Andrea Claudi \u003caclaudi@redhat.com\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "0149dabf2a1bad2f210ca2d987b29083247b7bd0",
      "tree": "3f58b2bfa52e02e3c20ef06fde45babab74bc568",
      "parents": [
        "b831c5ffcc78a518dcd267717a299ce158b0475c"
      ],
      "author": {
        "name": "Jiri Pirko",
        "email": "jiri@mellanox.com",
        "time": "Mon Apr 27 08:10:55 2020 +0200"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Apr 27 14:50:27 2020 -0700"
      },
      "message": "tc: m_action: check cookie hex string len\n\nCheck the cookie hex string len is dividable by 2 as the valid hex\nstring always should be.\n\nReported-by: Alex Kushnarov \u003calexanderk@mellanox.com\u003e\nSigned-off-by: Jiri Pirko \u003cjiri@mellanox.com\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "60f1075c2144c84cee8bafad34fbc44fbb10406c",
      "tree": "773ea457a1f1c643422936e7aaf5f91e1502041b",
      "parents": [
        "4aa0c9c9f8dbd40317ef34db11726d50e5fa8440",
        "bcbeb35ca4351928b4b8e4cb28802880312be0f1"
      ],
      "author": {
        "name": "David Ahern",
        "email": "dsahern@gmail.com",
        "time": "Sun Apr 26 18:32:20 2020 +0000"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@gmail.com",
        "time": "Sun Apr 26 18:32:20 2020 +0000"
      },
      "message": "Merge branch \u0027macsec-offload\u0027 into next\n\nIgor Russkikh  says:\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nFrom: Mark Starovoytov \u003cmstarovoitov@marvell.com\u003e\n\nThis series adds support for selecting the offloading mode of a MACsec\ninterface at link creation time.\nAvailable modes are for now \u0027off\u0027, \u0027phy\u0027 and \u0027mac\u0027, \u0027off\u0027 being the default\nwhen an interface is created.\n\nFirst patch adds support for MAC offloading.\n\nLast patch allows a user to change the offloading mode at runtime\nthrough a new attribute, `ip link add link ... offload`:\n\n  # ip link add link enp1s0 type macsec encrypt on offload off\n  # ip link add link enp1s0 type macsec encrypt on offload phy\n  # ip link add link enp1s0 type macsec encrypt on offload mac\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nSigned-off-by: David Ahern \u003cdsahern@gmail.com\u003e\n"
    },
    {
      "commit": "bcbeb35ca4351928b4b8e4cb28802880312be0f1",
      "tree": "773ea457a1f1c643422936e7aaf5f91e1502041b",
      "parents": [
        "998534c99eceafe580746caa5df1e9545fb59cde"
      ],
      "author": {
        "name": "Mark Starovoytov",
        "email": "mstarovoitov@marvell.com",
        "time": "Fri Apr 24 11:38:57 2020 +0300"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@gmail.com",
        "time": "Sun Apr 26 18:32:03 2020 +0000"
      },
      "message": "macsec: add support for specifying offload at link add time\n\nThis patch adds support for configuring offload mode upon MACsec\ndevice creation.\n\nIf offload mode is not specified, then netlink attribute is not\nadded. Default behavior on the kernel side in this case is\nbackward-compatible (offloading is disabled by default).\n\nExample:\n$ ip link add link eth0 macsec0 type macsec port 11 encrypt on offload mac\n\nSigned-off-by: Mark Starovoytov \u003cmstarovoitov@marvell.com\u003e\nSigned-off-by: Igor Russkikh \u003cirusskikh@marvell.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@gmail.com\u003e\n"
    },
    {
      "commit": "998534c99eceafe580746caa5df1e9545fb59cde",
      "tree": "04d80057dbdfa801b561f2da9cfc03771b378ff9",
      "parents": [
        "4aa0c9c9f8dbd40317ef34db11726d50e5fa8440"
      ],
      "author": {
        "name": "Mark Starovoytov",
        "email": "mstarovoitov@marvell.com",
        "time": "Fri Apr 24 11:38:56 2020 +0300"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@gmail.com",
        "time": "Sun Apr 26 18:31:37 2020 +0000"
      },
      "message": "macsec: add support for MAC offload\n\nThis patch enables MAC HW offload usage in iproute, since MACSec\nimplementation supports it now.\n\nSigned-off-by: Mark Starovoytov \u003cmstarovoitov@marvell.com\u003e\nSigned-off-by: Igor Russkikh \u003cirusskikh@marvell.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@gmail.com\u003e\n"
    },
    {
      "commit": "b831c5ffcc78a518dcd267717a299ce158b0475c",
      "tree": "ed2242f5cfea9645429687f1de9f971acb0b9cc4",
      "parents": [
        "8d5d91fd5874744abb685a7cd980a4f0b01be9af"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Apr 20 09:48:57 2020 -0700"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Apr 20 09:48:57 2020 -0700"
      },
      "message": "bridge: man page spelling fixes\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "8d5d91fd5874744abb685a7cd980a4f0b01be9af",
      "tree": "2a2b8f5960ab1970de08ed3545323a62a4c7ff54",
      "parents": [
        "498883a00f522f812cb9d38802c145a5828d7df7"
      ],
      "author": {
        "name": "Bastien Roucariès",
        "email": "rouca@debian.org",
        "time": "Mon Apr 13 01:50:38 2020 +0200"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Apr 20 09:45:37 2020 -0700"
      },
      "message": "State of bridge STP port are now case insensitive\n\nImprove use experience\n\nSigned-off-by: Bastien Roucariès \u003crouca@debian.org\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "498883a00f522f812cb9d38802c145a5828d7df7",
      "tree": "9012e60e01133e196d7ec25103ca505309598ae2",
      "parents": [
        "19bbebc4590ef0322b8358d63957b32faa9345d8"
      ],
      "author": {
        "name": "Bastien Roucariès",
        "email": "rouca@debian.org",
        "time": "Mon Apr 13 01:50:37 2020 +0200"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Apr 20 09:45:37 2020 -0700"
      },
      "message": "Document root_block option\n\nRoot_block is also called root port guard, document it.\n\nSigned-off-by: Bastien Roucariès \u003crouca@debian.org\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "19bbebc4590ef0322b8358d63957b32faa9345d8",
      "tree": "6377f9fd9aa4fab3aa0d8af30dae0c8fe3790fce",
      "parents": [
        "420febf9611d5cb4061055913041be00859210da"
      ],
      "author": {
        "name": "Bastien Roucariès",
        "email": "rouca@debian.org",
        "time": "Mon Apr 13 01:50:36 2020 +0200"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Apr 20 09:45:37 2020 -0700"
      },
      "message": "Better documentation of BDPU guard\n\nDocument that guard disable the port and how to reenable it\n\nSigned-off-by: Bastien Roucariès \u003crouca@debian.org\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "420febf9611d5cb4061055913041be00859210da",
      "tree": "510ce35ae2536bac527372edd0d74976b8035449",
      "parents": [
        "1cad8f8d78fd10d4bf86962ceb3b1e092fe9ef15"
      ],
      "author": {
        "name": "Bastien Roucariès",
        "email": "rouca@debian.org",
        "time": "Mon Apr 13 01:50:35 2020 +0200"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Apr 20 09:45:37 2020 -0700"
      },
      "message": "Document BPDU filter option\n\nDisabled state is also BPDU filter\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "1cad8f8d78fd10d4bf86962ceb3b1e092fe9ef15",
      "tree": "e52f8b1c6d4d6fe246cd0c8406e37258524c08fd",
      "parents": [
        "706f7d35e2cb9cdc935db3b7785b305029ffd736"
      ],
      "author": {
        "name": "Bastien Roucariès",
        "email": "rouca@debian.org",
        "time": "Mon Apr 13 01:50:34 2020 +0200"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Apr 20 09:45:37 2020 -0700"
      },
      "message": "Improve hairpin mode description\n\nMention VEPA and reflective relay.\n\nSigned-off-by: Bastien Roucariès \u003crouca@debian.org\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "706f7d35e2cb9cdc935db3b7785b305029ffd736",
      "tree": "97ca877f3d56081dd29685cca49cfba389793752",
      "parents": [
        "8b9d5728c1d6919f68f9386845ae37575dbdf627"
      ],
      "author": {
        "name": "Bastien Roucariès",
        "email": "rouca@debian.org",
        "time": "Mon Apr 13 01:50:33 2020 +0200"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Apr 20 09:45:37 2020 -0700"
      },
      "message": "Better documentation of mcast_to_unicast option\n\nThis option is useful for Wifi bridge but need some tweak.\n\nDocument it from kernel patches documentation\n\nSigned-off-by: Bastien Roucariès \u003crouca@debian.org\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "8b9d5728c1d6919f68f9386845ae37575dbdf627",
      "tree": "bafaefb3200f3b810b59e22c1a40be8159abb131",
      "parents": [
        "48e05899d0b73429ceca05c08e8ae3eac8fd1eba"
      ],
      "author": {
        "name": "Brian Norris",
        "email": "briannorris@chromium.org",
        "time": "Tue Apr 07 10:43:06 2020 -0700"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Apr 20 09:39:27 2020 -0700"
      },
      "message": "man: replace $(NETNS_ETC_DIR) and $(NETNS_RUN_DIR) in ip-netns(8)\n\nThese can be configured to different paths. Reflect that in the\ngenerated documentation.\n\nSigned-off-by: Brian Norris \u003cbriannorris@chromium.org\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "48e05899d0b73429ceca05c08e8ae3eac8fd1eba",
      "tree": "e003919fe063791eee5267250909515b64b30e9c",
      "parents": [
        "f03ad792f3cdef5ade92392db6710441b35b47dd"
      ],
      "author": {
        "name": "Brian Norris",
        "email": "briannorris@chromium.org",
        "time": "Tue Apr 07 10:43:05 2020 -0700"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Apr 20 09:39:27 2020 -0700"
      },
      "message": "man: add ip-netns(8) as generation target\n\nPrepare for adding new variable substitutions. Unify the sed rules while\nwe\u0027re at it, since there\u0027s no need to write this out 4 times.\n\nSigned-off-by: Brian Norris \u003cbriannorris@chromium.org\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "f03ad792f3cdef5ade92392db6710441b35b47dd",
      "tree": "c52763119070708ee2ea0d2754bf284ba0fda6a1",
      "parents": [
        "14d2df887481dd2130c6ae5d023325262429ce3c"
      ],
      "author": {
        "name": "Benjamin Lee",
        "email": "ben@b1c1l1.com",
        "time": "Tue Apr 14 21:11:12 2020 -0700"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Apr 20 09:34:56 2020 -0700"
      },
      "message": "tc: fq_codel: fix class stat deficit is signed int\n\nThe fq_codel class stat deficit is a signed int.  This is a regression\nfrom when JSON output was added.\n\nFixes: 997f2dc19378 (\"tc: Add JSON output of fq_codel stats\")\nSigned-off-by: Benjamin Lee \u003cben@b1c1l1.com\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "14d2df887481dd2130c6ae5d023325262429ce3c",
      "tree": "088f4b0c566cebd411b73871f3f88b819b7764a8",
      "parents": [
        "6f883f168cf9e1f3be208a10d671a54d781e75a5"
      ],
      "author": {
        "name": "Odin Ugedal",
        "email": "odin@ugedal.com",
        "time": "Wed Apr 15 16:39:35 2020 +0200"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Apr 20 09:33:15 2020 -0700"
      },
      "message": "q_cake: properly print memlimit\n\nLoad memlimit so that it will be printed if it isn\u0027t set to zero.\n\nAlso add a space to properly print it.\n\nSigned-off-by: Odin Ugedal \u003codin@ugedal.com\u003e\nAcked-by: Toke Høiland-Jørgensen \u003ctoke@redhat.com\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "6f883f168cf9e1f3be208a10d671a54d781e75a5",
      "tree": "9c96cebbc7c1d11127ad6ed014ba671911703b3d",
      "parents": [
        "e07c57e94e27d2f15bfb9de4db7ca3ab9d9368ed"
      ],
      "author": {
        "name": "Odin Ugedal",
        "email": "odin@ugedal.com",
        "time": "Wed Apr 15 16:39:34 2020 +0200"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Apr 20 09:33:15 2020 -0700"
      },
      "message": "q_cake: Make fwmark uint instead of int\n\nThis will help avoid overflow, since setting it to 0xffffffff would\nresult in -1 when converted to integer, resulting in being \"-1\", setting\nthe fwmark to 0x00.\n\nSigned-off-by: Odin Ugedal \u003codin@ugedal.com\u003e\nAcked-by: Toke Høiland-Jørgensen \u003ctoke@redhat.com\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "e07c57e94e27d2f15bfb9de4db7ca3ab9d9368ed",
      "tree": "399103e9d03d1ef3fc3216e8ed490e4edbf9959c",
      "parents": [
        "fe821d64e60cee2abc4347b3f67e8a3d698777a0"
      ],
      "author": {
        "name": "Odin Ugedal",
        "email": "odin@ugedal.com",
        "time": "Thu Apr 16 16:08:14 2020 +0200"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Apr 20 09:31:01 2020 -0700"
      },
      "message": "tc_util: detect overflow in get_size\n\nThis detects overflow during parsing of value using get_size:\n\neg. running:\n\n$ tc qdisc add dev lo root cake memlimit 11gb\n\ncurrently gives a memlimit of \"3072Mb\", while with this patch it errors\nwith \u0027illegal value for \"memlimit\": \"11gb\"\u0027, since memlinit is an\nunsigned integer.\n\nSigned-off-by: Odin Ugedal \u003codin@ugedal.com\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "4aa0c9c9f8dbd40317ef34db11726d50e5fa8440",
      "tree": "37df94974ee5266e4ccfeaebf628949caf1f7e03",
      "parents": [
        "59ba1dd01175f8beff964d4e634e7612dc83bb59"
      ],
      "author": {
        "name": "Eran Ben Elisha",
        "email": "eranbe@mellanox.com",
        "time": "Tue Apr 14 09:57:52 2020 +0300"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@gmail.com",
        "time": "Sun Apr 19 22:27:13 2020 +0000"
      },
      "message": "devlink: Add devlink health auto_dump command support\n\nAdd support for configuring auto_dump attribute per reporter.\nWith this attribute, one can indicate whether the devlink kernel core\nshould execute automatic dump on error.\n\nThe change will be reflected in show, set and man commands.\n\nSigned-off-by: Eran Ben Elisha \u003ceranbe@mellanox.com\u003e\nReviewed-by: Aya Levin \u003cayal@mellanox.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@gmail.com\u003e\n"
    },
    {
      "commit": "59ba1dd01175f8beff964d4e634e7612dc83bb59",
      "tree": "e00bc3a898b5e7f11f6d103729aab3317ef6f641",
      "parents": [
        "5c762c3bc226cbfc2d7384b46985a885267961a7",
        "fe821d64e60cee2abc4347b3f67e8a3d698777a0"
      ],
      "author": {
        "name": "David Ahern",
        "email": "dsahern@gmail.com",
        "time": "Sun Apr 19 22:26:27 2020 +0000"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@gmail.com",
        "time": "Sun Apr 19 22:26:27 2020 +0000"
      },
      "message": "Merge branch \u0027master\u0027 into next\n\nSigned-off-by: David Ahern \u003cdsahern@gmail.com\u003e\n"
    },
    {
      "commit": "fe821d64e60cee2abc4347b3f67e8a3d698777a0",
      "tree": "e00bc3a898b5e7f11f6d103729aab3317ef6f641",
      "parents": [
        "6ecd0198c0bc49413699b8177e247995e0234ac5"
      ],
      "author": {
        "name": "Benjamin Lee",
        "email": "ben@b1c1l1.com",
        "time": "Wed Apr 08 22:12:15 2020 -0700"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Apr 13 14:04:00 2020 -0700"
      },
      "message": "man: tc-htb.8: fix class prio is not mandatory\n\nFix description for htb class prio parameter to indicate it\u0027s not\nmandatory.\n\nSigned-off-by: Benjamin Lee \u003cben@b1c1l1.com\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "6ecd0198c0bc49413699b8177e247995e0234ac5",
      "tree": "5eb1471e5e38c4fca43c5b99a3b324f3c2897786",
      "parents": [
        "d8d59421b61f114ac8406aeca73f5747854bd230"
      ],
      "author": {
        "name": "Benjamin Lee",
        "email": "ben@b1c1l1.com",
        "time": "Wed Apr 08 22:12:14 2020 -0700"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Apr 13 14:04:00 2020 -0700"
      },
      "message": "man: tc-htb.8: add missing class parameter quantum\n\nAdd description for htb class parameter quantum.\n\nSigned-off-by: Benjamin Lee \u003cben@b1c1l1.com\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "d8d59421b61f114ac8406aeca73f5747854bd230",
      "tree": "df290d2d11cfd68a11d2007095e0b912eb755440",
      "parents": [
        "20927e0525e0cca165cd1252ac18da07cb082c4d"
      ],
      "author": {
        "name": "Benjamin Lee",
        "email": "ben@b1c1l1.com",
        "time": "Wed Apr 08 22:12:13 2020 -0700"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Apr 13 14:04:00 2020 -0700"
      },
      "message": "man: tc-htb.8: add missing qdisc parameter r2q\n\nAdd description for htb qdisc parameter r2q.\n\nSigned-off-by: Benjamin Lee \u003cben@b1c1l1.com\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "20927e0525e0cca165cd1252ac18da07cb082c4d",
      "tree": "2d16970d983e2576fdeb80a1659fa8234073b6e9",
      "parents": [
        "c4dfddccef4e092065d7bb696d64bb46f4223567"
      ],
      "author": {
        "name": "Petr Machata",
        "email": "petrm@mellanox.com",
        "time": "Sat Apr 04 01:55:34 2020 +0300"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Apr 13 14:02:54 2020 -0700"
      },
      "message": "ip: link_gre: Do not send ERSPAN attributes to GRE tunnels\n\nIn the commit referenced below, ip link started sending ERSPAN-specific\nattributes even for GRE and gretap tunnels. Fix by more carefully\ndistinguishing between the GRE/tap and ERSPAN modes. Do not show\nERSPAN-related help in GRE/tap mode, likewise do not accept ERSPAN\narguments, or send ERSPAN attributes.\n\nFixes: 83c543af872e (\"erspan: set erspan_ver to 1 by default\")\nSigned-off-by: Petr Machata \u003cpetrm@mellanox.com\u003e\nAcked-by: William Tu \u003cu9012063@gmail.com\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "c4dfddccef4e092065d7bb696d64bb46f4223567",
      "tree": "2d71f18e559dc4dfb7d50f6b6c83d7fc5ba25cba",
      "parents": [
        "5c762c3bc226cbfc2d7384b46985a885267961a7"
      ],
      "author": {
        "name": "Jiri Pirko",
        "email": "jiri@mellanox.com",
        "time": "Thu Apr 09 20:29:51 2020 +0200"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Apr 13 13:59:12 2020 -0700"
      },
      "message": "devlink: fix JSON output of mon command\n\nThe current JSON output of mon command is broken. Fix it and make sure\nthat the output is a valid JSON. Also, handle SIGINT gracefully to allow\nto end the JSON properly.\n\nExample:\n$ devlink mon -j -p\n{\n    \"mon\": [ {\n            \"command\": \"new\",\n            \"dev\": {\n                \"netdevsim/netdevsim10\": {}\n            }\n        },{\n            \"command\": \"new\",\n            \"port\": {\n                \"netdevsim/netdevsim10/0\": {\n                    \"type\": \"notset\",\n                    \"flavour\": \"physical\",\n                    \"port\": 1\n                }\n            }\n        },{\n            \"command\": \"new\",\n            \"port\": {\n                \"netdevsim/netdevsim10/0\": {\n                    \"type\": \"eth\",\n                    \"netdev\": \"eth0\",\n                    \"flavour\": \"physical\",\n                    \"port\": 1\n                }\n            }\n        },{\n            \"command\": \"new\",\n            \"port\": {\n                \"netdevsim/netdevsim10/0\": {\n                    \"type\": \"notset\",\n                    \"flavour\": \"physical\",\n                    \"port\": 1\n                }\n            }\n        },{\n            \"command\": \"del\",\n            \"port\": {\n                \"netdevsim/netdevsim10/0\": {\n                    \"type\": \"notset\",\n                    \"flavour\": \"physical\",\n                    \"port\": 1\n                }\n            }\n        },{\n            \"command\": \"del\",\n            \"dev\": {\n                \"netdevsim/netdevsim10\": {}\n            }\n        } ]\n}\n\nSigned-off-by: Jiri Pirko \u003cjiri@mellanox.com\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "5c762c3bc226cbfc2d7384b46985a885267961a7",
      "tree": "fd856d0bcc9bc7b01c1a17d27ef03bdc08ea4053",
      "parents": [
        "74c8610f3b8d9f9cb997af8cd176ab452bdf4e55",
        "27136cab54f11c4c90b7aab7641b29c79e533dcf"
      ],
      "author": {
        "name": "David Ahern",
        "email": "dsahern@gmail.com",
        "time": "Thu Apr 09 14:42:33 2020 +0000"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@gmail.com",
        "time": "Thu Apr 09 14:42:33 2020 +0000"
      },
      "message": "Merge branch \u0027master\u0027 into next\n\nSigned-off-by: David Ahern \u003cdsahern@gmail.com\u003e\n"
    },
    {
      "commit": "74c8610f3b8d9f9cb997af8cd176ab452bdf4e55",
      "tree": "1d6202e93af58ac18db0756cffa57eef26a1f56b",
      "parents": [
        "f91f788c70e92a80b53f8e6c83ac3059aa0b9ddc"
      ],
      "author": {
        "name": "Petr Machata",
        "email": "petrm@mellanox.com",
        "time": "Sat Apr 04 02:05:31 2020 +0300"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@gmail.com",
        "time": "Thu Apr 09 14:39:59 2020 +0000"
      },
      "message": "man: tc-pedit: Drop the claim that pedit ex is only for IPv4\n\nThis sentence predates addition of extended pedit for IPv6 packets.\n\nReported-by: Ido Schimmel \u003cidosch@mellanox.com\u003e\nSigned-off-by: Petr Machata \u003cpetrm@mellanox.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@gmail.com\u003e\n"
    },
    {
      "commit": "f91f788c70e92a80b53f8e6c83ac3059aa0b9ddc",
      "tree": "41e3cbf8120edafcdaa75faab99c200cb982d1b8",
      "parents": [
        "2d9a8dc439ee75d8f89f88712a33d09b7115fbeb"
      ],
      "author": {
        "name": "Petr Machata",
        "email": "petrm@mellanox.com",
        "time": "Sat Apr 04 02:05:30 2020 +0300"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@gmail.com",
        "time": "Thu Apr 09 14:39:58 2020 +0000"
      },
      "message": "man: tc-pedit: Add examples for dsfield and retain\n\nDescribe a way to update just the DSCP and just the ECN part of the\ndsfield. That is useful on its own, but also it shows how retain works.\n\nSigned-off-by: Petr Machata \u003cpetrm@mellanox.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@gmail.com\u003e\n"
    },
    {
      "commit": "2d9a8dc439ee75d8f89f88712a33d09b7115fbeb",
      "tree": "be4ed5f0e1a98822e3878e1af9c06906ce3292bf",
      "parents": [
        "1c3ed78001711f482ae252c7cb35a60337199dca"
      ],
      "author": {
        "name": "Petr Machata",
        "email": "petrm@mellanox.com",
        "time": "Sat Apr 04 02:05:29 2020 +0300"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@gmail.com",
        "time": "Thu Apr 09 14:39:58 2020 +0000"
      },
      "message": "tc: p_ip6: Support pedit of IPv6 dsfield\n\nSupport keywords dsfield, traffic_class and tos in the IPv6 context.\n\nSigned-off-by: Petr Machata \u003cpetrm@mellanox.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@gmail.com\u003e\n"
    },
    {
      "commit": "1c3ed78001711f482ae252c7cb35a60337199dca",
      "tree": "6fc393445ad6af3fdcf2f57bf9d3977780481d3e",
      "parents": [
        "0827cc53f346e70c30300824517e44a57a2170bd"
      ],
      "author": {
        "name": "Jiri Pirko",
        "email": "jiri@mellanox.com",
        "time": "Thu Apr 02 11:55:39 2020 +0200"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@gmail.com",
        "time": "Thu Apr 09 14:39:28 2020 +0000"
      },
      "message": "devlink: remove unused \"jw\" field\n\nThis field is not used. Remove it.\n\nSigned-off-by: Jiri Pirko \u003cjiri@mellanox.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@gmail.com\u003e\n"
    },
    {
      "commit": "27136cab54f11c4c90b7aab7641b29c79e533dcf",
      "tree": "2f473912ba70b5f242e409ce37bdf384a26fa564",
      "parents": [
        "e00248d2965fff4ce6424a7c22868a1f8713aa03"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Apr 06 10:07:54 2020 -0700"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Apr 06 10:07:54 2020 -0700"
      },
      "message": "man/tc-actions: fix formatting\n\nFix error from make check.\nn-old.tmac: \u003cstandard input\u003e: line 86: \u0027R\u0027 is a string (producing the registered sign), not a macro.\nError in tc-actions.8\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "e00248d2965fff4ce6424a7c22868a1f8713aa03",
      "tree": "d60136ab67113217c2216a06d7cf1e6b612c481b",
      "parents": [
        "885f4b0d7ad6edcb2c99034abe69c916973185f9"
      ],
      "author": {
        "name": "Jiri Pirko",
        "email": "jiri@mellanox.com",
        "time": "Sat Apr 04 18:16:21 2020 +0200"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Apr 06 10:06:00 2020 -0700"
      },
      "message": "man: add man page for devlink dpipe\n\nAdd simple man page for devlink dpipe.\n\nSigned-off-by: Jiri Pirko \u003cjiri@mellanox.com\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "885f4b0d7ad6edcb2c99034abe69c916973185f9",
      "tree": "eba9d9f18a4ab88ea28e64b9432a142c43865c60",
      "parents": [
        "b2522187d85fcf75533bb123c9574df282286db6"
      ],
      "author": {
        "name": "Jiri Pirko",
        "email": "jiri@mellanox.com",
        "time": "Sat Apr 04 18:16:20 2020 +0200"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Apr 06 10:00:32 2020 -0700"
      },
      "message": "devlink: remove \"dev\" object sub help messages\n\nRemove duplicate sub help messages for \"dev\" object and have them all\nshow help message for \"dev\".\n\nSigned-off-by: Jiri Pirko \u003cjiri@mellanox.com\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "b2522187d85fcf75533bb123c9574df282286db6",
      "tree": "b8578a2a99f1a9f911d761f4add31f32333db711",
      "parents": [
        "342f462efa9f51966c4e92ad5d3e487680ba16d4"
      ],
      "author": {
        "name": "Jiri Pirko",
        "email": "jiri@mellanox.com",
        "time": "Sat Apr 04 18:16:19 2020 +0200"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Apr 06 10:00:32 2020 -0700"
      },
      "message": "devlink: Fix help message for dpipe\n\nHave one help message for all dpipe commands, as it is done for the rest\nof the devlink object. Possible and required options to the help.\n\nSigned-off-by: Jiri Pirko \u003cjiri@mellanox.com\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "342f462efa9f51966c4e92ad5d3e487680ba16d4",
      "tree": "1939d9a6b87d8dd2ea1ba161afed0dafaff577dc",
      "parents": [
        "192e7b3ffa1de43dc65b95b8c19a1e73baa251ff"
      ],
      "author": {
        "name": "Jiri Pirko",
        "email": "jiri@mellanox.com",
        "time": "Sat Apr 04 18:16:18 2020 +0200"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Apr 06 10:00:32 2020 -0700"
      },
      "message": "devlink: rename dpipe_counters_enable struct field to dpipe_counters_enabled\n\nTo be consistent with the rest of the code and name of netlink\nattribute, rename the dpipe_counters_enable struct fielt\nto dpipe_counters_enabled.\n\nSigned-off-by: Jiri Pirko \u003cjiri@mellanox.com\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "192e7b3ffa1de43dc65b95b8c19a1e73baa251ff",
      "tree": "95eb5c3543bdf73943f6eb5743cd498c753e9326",
      "parents": [
        "0b1875cdc69f49184445781a62e0bf603bdfc414"
      ],
      "author": {
        "name": "Jiri Pirko",
        "email": "jiri@mellanox.com",
        "time": "Sat Apr 04 18:16:17 2020 +0200"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Apr 06 10:00:32 2020 -0700"
      },
      "message": "devlink: Add alias \"counters_enabled\" for \"counters\" option\n\nTo be consistent with netlink attribute name and also with the\n\"dpipe table show\" output, add \"counters_enabled\" for \"counters\" in\n\"dpipe table set\" command.\n\nSigned-off-by: Jiri Pirko \u003cjiri@mellanox.com\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "0b1875cdc69f49184445781a62e0bf603bdfc414",
      "tree": "016d267d0f35763f276a3bd2764218691435f01d",
      "parents": [
        "90ce848b05fc1883ddafcf57af4c7fcbafd85833"
      ],
      "author": {
        "name": "Jiri Pirko",
        "email": "jiri@mellanox.com",
        "time": "Sat Apr 04 18:16:16 2020 +0200"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Apr 06 10:00:32 2020 -0700"
      },
      "message": "devlink: fix encap mode manupulation\n\nDEVLINK_ATTR_ESWITCH_ENCAP_MODE netlink attribute carries enum. But the\ncode assumes bool value. Fix this by treating the encap mode in the same\nway as other eswitch mode attributes, switching from \"enable\"/\"disable\"\nto \"basic\"/\"none\", according to the enum. Maintain the backward\ncompatibility to allow user to pass \"enable\"/\"disable\" too. Also to be\nin-sync with the rest of the \"mode\" commands, rename to \"encap-mode\".\nAdjust the help and man page accordingly.\n\nSigned-off-by: Jiri Pirko \u003cjiri@mellanox.com\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "90ce848b05fc1883ddafcf57af4c7fcbafd85833",
      "tree": "e6c49a9a5db50dfa7de706aa35883aa6f6efa82d",
      "parents": [
        "b37a863cb2d09ad0736334bd6606c05b802c85cf"
      ],
      "author": {
        "name": "Jiri Pirko",
        "email": "jiri@mellanox.com",
        "time": "Sat Apr 04 18:16:15 2020 +0200"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Apr 06 10:00:32 2020 -0700"
      },
      "message": "devlink: Fix help and man of \"devlink health set\" command\n\nFix the help and man page of \"devlink health set\" command to be aligned\nwith the rest of helps and man pages.\n\nSigned-off-by: Jiri Pirko \u003cjiri@mellanox.com\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    }
  ],
  "next": "b37a863cb2d09ad0736334bd6606c05b802c85cf"
}
