)]}'
{
  "log": [
    {
      "commit": "89210b9ec1c445ae963d181b5816d12a0cdafbb6",
      "tree": "97d8125a1e8560de3d938dce60146adf654bdc23",
      "parents": [
        "70ba338cd8314410380b8bdae9e5f302e8e98039"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Apr 29 11:28:23 2024 -0700"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Apr 29 11:28:23 2024 -0700"
      },
      "message": "uapi: update vdpa.h\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "70ba338cd8314410380b8bdae9e5f302e8e98039",
      "tree": "2dddad3fcf1657d832f750d611cf1127d96ff336",
      "parents": [
        "911c62bf9de61da7aa03e1cd5e5db26322d12aa9"
      ],
      "author": {
        "name": "Yedaya Katsman",
        "email": "yedaya.ka@gmail.com",
        "time": "Tue Apr 23 21:38:20 2024 +0300"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Thu Apr 25 12:00:25 2024 -0700"
      },
      "message": "ip: Exit exec in child process if setup fails\n\nIf we forked, returning from the function will make the calling code to\ncontinue in both the child and parent process. Make cmd_exec exit if\nsetup failed and it forked already.\n\nAn example of issues this causes, where a failure in setup causes\nmultiple unnecessary tries:\n\n```\n$ ip netns\nef\nab\n$ ip -all netns exec ls\n\nnetns: ef\nsetting the network namespace \"ef\" failed: Operation not permitted\n\nnetns: ab\nsetting the network namespace \"ab\" failed: Operation not permitted\n\nnetns: ab\nsetting the network namespace \"ab\" failed: Operation not permitted\n```\n\nSigned-off-by: Yedaya Katsman \u003cyedaya.ka@gmail.com\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "911c62bf9de61da7aa03e1cd5e5db26322d12aa9",
      "tree": "352a629618126879d84b3e13beea9cf8f4c57522",
      "parents": [
        "11543416d9bcdf58c385c635295b074dcdb6bc5a"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Tue Apr 23 09:01:46 2024 -0700"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Tue Apr 23 09:01:46 2024 -0700"
      },
      "message": "use missing argument helper\n\nThere is a helper in utilities to handle missing argument,\nbut it was not being used consistently.\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "11543416d9bcdf58c385c635295b074dcdb6bc5a",
      "tree": "387b53ece022b65c94ec5c34dc612f4717613736",
      "parents": [
        "dedcf62f3956ab671813e9461d8780a0e8b1e6ac"
      ],
      "author": {
        "name": "Jiayun Chen",
        "email": "jiayunchen@smail.nju.edu.cn",
        "time": "Tue Apr 16 09:32:15 2024 +0800"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Sat Apr 20 20:07:28 2024 -0700"
      },
      "message": "man: fix doc, ip link does support \"change\"\n\nip link does support \"change\".\n\nif (matches(*argv, \"set\") \u003d\u003d 0 ||\n    matches(*argv, \"change\") \u003d\u003d 0)\n    return iplink_modify(RTM_NEWLINK, 0,\n                 argc-1, argv+1);\n\nThe attached patch documents this.\n\nSigned-off-by: Jiayun Chen \u003cjiayunchen@smail.nju.edu.cn\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "dedcf62f3956ab671813e9461d8780a0e8b1e6ac",
      "tree": "a079f2af8dfb90ff7075b1981f1e4c2e70f708a8",
      "parents": [
        "0a1e1522cde95a5daea4efd2ef16bc356164c068"
      ],
      "author": {
        "name": "Arınç ÜNAL",
        "email": "arinc.unal@arinc9.com",
        "time": "Sat Apr 13 17:48:48 2024 +0300"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Tue Apr 16 08:31:56 2024 -0700"
      },
      "message": "man: use clsact qdisc for port mirroring examples on matchall and mirred\n\nThe clsact qdisc supports ingress and egress. Instead of using two qdiscs\nto do ingress and egress port mirroring, clsact can be used. Therefore, use\nclsact for the port mirroring examples on the tc-matchall.8 and tc-mirred.8\ndocuments.\n\nSigned-off-by: Arınç ÜNAL \u003carinc.unal@arinc9.com\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "0a1e1522cde95a5daea4efd2ef16bc356164c068",
      "tree": "df3ed7e45d5590f90c43a6cb4d8d86610639d8a8",
      "parents": [
        "e67c9a73532af543573ffafd08a04e2d34579272"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Apr 15 09:09:55 2024 -0700"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Apr 15 09:13:21 2024 -0700"
      },
      "message": "mnl: initialize generic netlink version\n\nThe version field in mnlu was being passed in but never set.\nThis meant that all places mnlu_gen_socket was used, the version would\nbe uninitialized data from malloc().\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "e67c9a73532af543573ffafd08a04e2d34579272",
      "tree": "e73ea3ef813bcf60c83d6f059d17c26a7ca1ba0f",
      "parents": [
        "f740f5a165eb398322af1d2c56e0fcb90ac19c73"
      ],
      "author": {
        "name": "Yusuke Ichiki",
        "email": "public@yusuke.pub",
        "time": "Tue Apr 02 11:08:17 2024 +0900"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Wed Apr 03 10:13:52 2024 -0700"
      },
      "message": "man: fix brief explanation of `ip netns attach NAME PID`\n\nRewrite the explanation as it was duplicated with that of\n`ip netns add NAME`.\n\nSigned-off-by: Yusuke Ichiki \u003cpublic@yusuke.pub\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "f740f5a165eb398322af1d2c56e0fcb90ac19c73",
      "tree": "5ff8b76e07fdb5b43c12e5b3e3a15eea10d41dcf",
      "parents": [
        "037a3a0d66ef110a22720c23934bdee34191539f"
      ],
      "author": {
        "name": "Max Gautier",
        "email": "mg@max.gautier.name",
        "time": "Mon Mar 18 16:49:13 2024 +0100"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Thu Mar 28 13:35:52 2024 -0700"
      },
      "message": "arpd: create /var/lib/arpd on first use\n\nThe motivation is to build distributions packages without /var to go\ntowards stateless systems, see link below (TL;DR: provisionning anything\noutside of /usr on boot).\n\nWe only try do create the database directory when it\u0027s in the default\nlocation, and assume its parent (/var/lib in the usual case) exists.\n\nLinks: https://0pointer.net/blog/projects/stateless.html\nSigned-off-by: Max Gautier \u003cmg@max.gautier.name\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "037a3a0d66ef110a22720c23934bdee34191539f",
      "tree": "03a2c4c626a4503d0728758af84ffc38ae5d4b9f",
      "parents": [
        "9ccf8fa8d4d7279bb70507e09ffa712359639287"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Wed Mar 27 16:55:09 2024 -0700"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Thu Mar 28 13:33:05 2024 -0700"
      },
      "message": "ila: allow show, list and lst as synonyms\n\nAcross ip commands show, list and misspelling lst are treated\nthe same.\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "9ccf8fa8d4d7279bb70507e09ffa712359639287",
      "tree": "4a350529ec962c49da5224d0f1e67d2d975fcf7a",
      "parents": [
        "43b53968634e2d4271bfa4f96e12e4d9cd57b8c7"
      ],
      "author": {
        "name": "Date Huang",
        "email": "tjjh89017@hotmail.com",
        "time": "Fri Mar 22 20:39:23 2024 +0800"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Tue Mar 26 10:11:05 2024 -0700"
      },
      "message": "bridge: vlan: fix compressvlans usage\n\nAdd the missing \u0027compressvlans\u0027 to man page\n\nSigned-off-by: Date Huang \u003ctjjh89017@hotmail.com\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "43b53968634e2d4271bfa4f96e12e4d9cd57b8c7",
      "tree": "cba148ed6216394c2fc49f29affdab1c8262aba8",
      "parents": [
        "70e4a176241b38953036eabcca71f070f9f38166"
      ],
      "author": {
        "name": "Date Huang",
        "email": "tjjh89017@hotmail.com",
        "time": "Fri Mar 22 20:39:22 2024 +0800"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Tue Mar 26 10:11:05 2024 -0700"
      },
      "message": "bridge: vlan: fix compressvlans usage\n\nFix the incorrect short opt for compressvlans and color\nin usage\n\nSigned-off-by: Date Huang \u003ctjjh89017@hotmail.com\u003e\nAcked-by: Nikolay Aleksandrov \u003crazor@blackwall.org\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "70e4a176241b38953036eabcca71f070f9f38166",
      "tree": "0988843e9f3db5c5dbd0af003aa8ebe17895d6f3",
      "parents": [
        "4da7bfbf917bacfe19974634de0006be24f0b89f"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Sun Mar 24 18:16:06 2024 -0700"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Sun Mar 24 18:16:06 2024 -0700"
      },
      "message": "uapi: update vdpa.h\n\nAutogenerated from 6.9-rc1.\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "4da7bfbf917bacfe19974634de0006be24f0b89f",
      "tree": "adea32f3cd9572acb68abcdb47bd289337697787",
      "parents": [
        "b22a3430bd17c4f75e6f113ecfeb8ea386d6b408"
      ],
      "author": {
        "name": "Denis Kirjanov",
        "email": "kirjanov@gmail.com",
        "time": "Mon Mar 18 05:16:40 2024 -0400"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Tue Mar 19 21:17:55 2024 -0700"
      },
      "message": "ifstat: don\u0027t set errno if strdup fails\n\nthe strdup man page states that the errno value\nset by the function so there is not need to set it.\n\nSigned-off-by: Denis Kirjanov \u003cdkirjanov@suse.de\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "b22a3430bd17c4f75e6f113ecfeb8ea386d6b408",
      "tree": "fbcd0fecc040cefb06902e9cd87e562651a932eb",
      "parents": [
        "4b3b5375a7829c348a762da3172b8973bd86396e"
      ],
      "author": {
        "name": "Denis Kirjanov",
        "email": "kirjanov@gmail.com",
        "time": "Mon Mar 18 05:15:41 2024 -0400"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Tue Mar 19 21:17:55 2024 -0700"
      },
      "message": "ifstat: handle strdup return value\n\nget_nlmsg_extended is missing the check as\nit\u0027s done in get_nlmsg\n\nv2: don\u0027t set the errno value explicitly\n\nSigned-off-by: Denis Kirjanov \u003cdkirjanov@suse.de\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "4b3b5375a7829c348a762da3172b8973bd86396e",
      "tree": "d8d2868dea3dc7f014a6a11d2cc058e146a0f574",
      "parents": [
        "11740815bfe69d6ee2cad7c608a8edc70147209a"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Sat Mar 16 08:14:56 2024 -0700"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Sat Mar 16 08:14:56 2024 -0700"
      },
      "message": "uapi: update headers\n\nUser headers based on pre 6.9-rc1\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "11740815bfe69d6ee2cad7c608a8edc70147209a",
      "tree": "93d9d196c3a804c42507b4f4aa6bb7e0ef6e5167",
      "parents": [
        "69d55c213da8650b6ac8b54777475874673b0cdd"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Tue Mar 12 15:44:50 2024 -0700"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Wed Mar 13 10:07:33 2024 -0700"
      },
      "message": "tc-simple.8: take Jamal\u0027s prompt off examples\n\nThe examples on tc-simple man page had extra stuff in\nthe prompt which is not necessary.\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "69d55c213da8650b6ac8b54777475874673b0cdd",
      "tree": "67af9fc3f47464afaec556e318826e25a85b16f8",
      "parents": [
        "af0ddbfa51f92fcf53c56b5ab82093cf8eb13f6b"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Tue Mar 12 15:42:16 2024 -0700"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Wed Mar 13 10:07:33 2024 -0700"
      },
      "message": "simple: support json output\n\nLast action that never got JSON support.\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "af0ddbfa51f92fcf53c56b5ab82093cf8eb13f6b",
      "tree": "5da23c56f467b9b4848feb20f433d124a733ef88",
      "parents": [
        "ba52b3d4dd4fda0032c6fa2eea77dd1bc5ee624e"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Tue Mar 12 15:40:59 2024 -0700"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Wed Mar 13 10:07:33 2024 -0700"
      },
      "message": "skbmod: support json in print\n\nThis tc action never got jsonized.\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "ba52b3d4dd4fda0032c6fa2eea77dd1bc5ee624e",
      "tree": "403e1feb00ca3f59a99bf9258e91e7b26ec17285",
      "parents": [
        "fc4226d2475ad0acb201d388a93d3892320a6878"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Tue Mar 12 15:40:26 2024 -0700"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Wed Mar 13 10:07:33 2024 -0700"
      },
      "message": "pedit: log errors to stderr\n\nThe errors should bo to stderr, not to stdout.\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "fc4226d2475ad0acb201d388a93d3892320a6878",
      "tree": "129130298ffe4aec75c4ef13d9c549e7c9f8848d",
      "parents": [
        "f31afe64d6d8ce8c722c95a25a9146d0deceed59"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Mar 11 12:26:35 2024 -0700"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Wed Mar 13 10:07:33 2024 -0700"
      },
      "message": "tc: support JSON for legacy stats\n\nThe extended stats already supported JSON output, add to the\nlegacy stats as well.\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "f31afe64d6d8ce8c722c95a25a9146d0deceed59",
      "tree": "4e98f93e9dc390a8c9703c3ffe0062974d367bec",
      "parents": [
        "38656eeb35bdbefd781ec4af66929a6d2f84b975"
      ],
      "author": {
        "name": "Luca Boccassi",
        "email": "bluca@debian.org",
        "time": "Tue Mar 12 22:24:22 2024 +0000"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Wed Mar 13 10:02:26 2024 -0700"
      },
      "message": "man: fix typo found by Lintian\n\nSigned-off-by: Luca Boccassi \u003cbluca@debian.org\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "38656eeb35bdbefd781ec4af66929a6d2f84b975",
      "tree": "e1217b050ae47e83fc80b21c617cb4bbc6afba6f",
      "parents": [
        "9a6b231ea1b09e450688c5814a4c89a57cdbee77"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Fri Mar 08 09:16:01 2024 -0800"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Wed Mar 13 09:56:29 2024 -0700"
      },
      "message": "tc: remove no longer used helpers\n\nThe removal of tick usage in netem, means that some of the\nhelper functions in tc are no longer used and can be safely removed.\nOther functions can be made static.\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "9a6b231ea1b09e450688c5814a4c89a57cdbee77",
      "tree": "eb08529a63f2cbf373ee06f9beaa2f41e1734dbb",
      "parents": [
        "56511223ef26245b111e95baeeafd83d00ce7c2f"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Wed Mar 13 09:54:44 2024 -0700"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Wed Mar 13 09:54:44 2024 -0700"
      },
      "message": "netem: use 64 bit value for latency and jitter\n\nThe current version of netem in iproute2 has a maximum of 4.3 seconds\nbecause of scaled 32 bit clock values. Some users would like to be\nable to use larger delays to emulate things like storage delays.\n\nSince kernel version 4.15, netem qdisc had netlink parameters\nto express wider range of delays in nanoseconds. But the iproute2\nside was never updated to use them.\n\nThis does break compatibility with older kernels (4.14 and earlier).\nWith these out of support kernels, the latency/delay parameter\nwill end up being ignored.\n\nReported-by: Marc Blanchet \u003cmarc.blanchet@viagenie.ca\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "56511223ef26245b111e95baeeafd83d00ce7c2f",
      "tree": "87dc0cafc548fc591ddd8b4c32dc8d8d5e1c3c5d",
      "parents": [
        "9fb634deec9e426c3a2478297ca3f093d2c225cb"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Fri Mar 08 09:15:59 2024 -0800"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Wed Mar 13 09:43:56 2024 -0700"
      },
      "message": "README: add note about kernel version compatibility\n\nSince next netem changes will break some usages of out of support kernels,\nadd an explicit policy about range of kernel versions.\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "9fb634deec9e426c3a2478297ca3f093d2c225cb",
      "tree": "42b7971d5cc8bf6120c20b8a53fcb49f017f5b77",
      "parents": [
        "38b0e6c120a8fff487745926b7a5e9146a06cb8f"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Mar 11 16:14:18 2024 -0700"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Tue Mar 12 15:11:43 2024 -0700"
      },
      "message": "tc: make exec_util arg const\n\nThe callbacks in exec_util should not be modifying underlying\nqdisc operations structure.\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "38b0e6c120a8fff487745926b7a5e9146a06cb8f",
      "tree": "a3ec50f61709ffa412bfd9aae1dae14f5109141e",
      "parents": [
        "fa740c21b441e3f3828abe859444119dce2c9cab"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Mar 11 16:12:30 2024 -0700"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Tue Mar 12 15:11:43 2024 -0700"
      },
      "message": "tc: make action_util arg const\n\nThe callbacks in action_util should not be modifying underlying\nqdisc operations structure.\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "fa740c21b441e3f3828abe859444119dce2c9cab",
      "tree": "983362e44a3e60f76b30877f19cddc5ab615270d",
      "parents": [
        "8576afbb893b3c7ae05075d05d6126c927f44cc0"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Mar 11 16:10:24 2024 -0700"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Tue Mar 12 15:11:43 2024 -0700"
      },
      "message": "tc: make filter_util args const\n\nThe callbacks in filter_util should not be modifying underlying\nqdisc operations structure.\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "8576afbb893b3c7ae05075d05d6126c927f44cc0",
      "tree": "ba993ba663d7abc2cb0ff3ce2081ca54ba6e037b",
      "parents": [
        "ade05d59c3dd09283e967f647ca2c52a0e40a3bf"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Mar 11 16:08:34 2024 -0700"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Tue Mar 12 15:11:43 2024 -0700"
      },
      "message": "tc: make qdisc_util arg const\n\nThe callbacks in qdisc_util should not be modifying underlying\nqdisc operations structure.\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "ade05d59c3dd09283e967f647ca2c52a0e40a3bf",
      "tree": "7d3cd1629fde58bb893eb7ffedd6b55874c2cfcd",
      "parents": [
        "88f0b157e9963c020f29678c0004fc6bbca4bb46",
        "a9fce55334f7b8659079680007e518ce2beb34a8"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Mar 11 16:39:39 2024 -0700"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Mar 11 16:39:39 2024 -0700"
      },
      "message": "Merge branch \u0027main\u0027 of git://git.kernel.org/pub/scm/network/iproute2/iproute2-next\n"
    },
    {
      "commit": "88f0b157e9963c020f29678c0004fc6bbca4bb46",
      "tree": "7f749009b51570f8a42ccd9c8a78b77178751a2b",
      "parents": [
        "0891990b0a93f395e08fc1b9ef3e53f5ee2154c2"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Mar 11 10:32:05 2024 -0700"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Mar 11 10:32:05 2024 -0700"
      },
      "message": "tc/action: remove trailing whitespace\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "0891990b0a93f395e08fc1b9ef3e53f5ee2154c2",
      "tree": "f248a1fb4f8e8ef1247b1e9583283b63c59c2b45",
      "parents": [
        "e5fd785830671180e934a84a44da93c51cce839d"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Mar 11 09:18:44 2024 -0700"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Mar 11 09:18:44 2024 -0700"
      },
      "message": "rt_names: whitespace cleanup\n\nFix indentation.\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "e5fd785830671180e934a84a44da93c51cce839d",
      "tree": "e24ca2d68215e57b4759fe5c032629821eabb250",
      "parents": [
        "857a328934a0aafba82c2549d60d365ae370e96e"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Mar 11 08:53:55 2024 -0700"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Mar 11 08:53:55 2024 -0700"
      },
      "message": "v6.8.0\n"
    },
    {
      "commit": "a9fce55334f7b8659079680007e518ce2beb34a8",
      "tree": "2529ef67ff3247137689e2ccdd6ebb71b5fe9ad2",
      "parents": [
        "2558ab97c0c5ad8635a0db963a654cbfec65d924"
      ],
      "author": {
        "name": "Denis Kirjanov",
        "email": "kirjanov@gmail.com",
        "time": "Mon Mar 04 09:13:40 2024 -0500"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Wed Mar 06 16:23:10 2024 +0000"
      },
      "message": "iproute2: move generic_proc_open into lib\n\nthe function has the same definition in ifstat and ss\n\nv2: fix the typo in the chagelog\nv3: rebase on master\n\nSigned-off-by: Denis Kirjanov \u003cdkirjanov@suse.de\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "2558ab97c0c5ad8635a0db963a654cbfec65d924",
      "tree": "8a573e859d50b5ed12153e10584ec4593bfeb86a",
      "parents": [
        "b69e1e0445ab3cf2a90738317507a29a483c26b3"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Wed Feb 28 20:37:28 2024 -0800"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Wed Mar 06 16:20:49 2024 +0000"
      },
      "message": "ifstat: support 64 interface stats\n\nThe 32 bit statistics are problematic since 32 bit value can\neasily wraparound at high speed. Use 64 bit stats if available.\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "857a328934a0aafba82c2549d60d365ae370e96e",
      "tree": "ee35db8d48f29505ae5e30b48c75f72a4cf036cc",
      "parents": [
        "b8daf861a45d066712a3146640ae925ab7403e2c"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Fri Mar 01 13:33:24 2024 +0100"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Mar 04 08:25:34 2024 -0800"
      },
      "message": "ss: fix output of MD5 signature keys configured on TCP sockets\n\nda9cc6ab introduced printing of MD5 signature keys when found.\nBut when changing printf() to out() calls with 90351722,\nthe implicit printf call in print_escape_buf() was overlooked.\nThat results in a funny output in the first line:\n\"\u003call-your-tcp-signature-keys-concatenated\u003eState\"\nand ambiguity as to which of those bytes belong to which socket.\n\nAdd a static void out_escape_buf() immediately before we use it.\n\nda9cc6ab (ss: print MD5 signature keys configured on TCP sockets, 2017-10-06)\n90351722 (ss: Replace printf() calls for \"main\" output by calls to helper, 2017-12-12)\n\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "b8daf861a45d066712a3146640ae925ab7403e2c",
      "tree": "521b7edf2af67ffb2aef048a1c8c0086125814ac",
      "parents": [
        "67685422bfee1b886b907e03129b12c8a1ebb6a4"
      ],
      "author": {
        "name": "Takanori Hirano",
        "email": "me@hrntknr.net",
        "time": "Mon Mar 04 12:02:04 2024 +0000"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Mar 04 08:20:46 2024 -0800"
      },
      "message": "tc: Fix json output for f_u32\n\nSigned-off-by: Takanori Hirano \u003cme@hrntknr.net\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "67685422bfee1b886b907e03129b12c8a1ebb6a4",
      "tree": "cfc1b89348493b23ab9cf6c20d8963ad26b59b86",
      "parents": [
        "68eef949c29e02261063de641762e37fda7193d3"
      ],
      "author": {
        "name": "Denis Kirjanov",
        "email": "kirjanov@gmail.com",
        "time": "Thu Feb 29 07:26:34 2024 -0500"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Sun Mar 03 17:12:11 2024 -0800"
      },
      "message": "ifstat: handle unlink return value\n\nPrint an error message if we can\u0027t remove the history file\n\nv2: exit if unlink failed\nv3: restore the changelog\n\nSigned-off-by: Denis Kirjanov \u003cdkirjanov@suse.de\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "b69e1e0445ab3cf2a90738317507a29a483c26b3",
      "tree": "062743f0871e38f3d9310a8df04f80c1b0dae264",
      "parents": [
        "2f8b36e146a555fd6a96590bf191ac634e3b350b"
      ],
      "author": {
        "name": "Denis Kirjanov",
        "email": "kirjanov@gmail.com",
        "time": "Wed Feb 28 08:58:58 2024 -0500"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Sun Mar 03 22:32:50 2024 +0000"
      },
      "message": "nstat: convert sprintf to snprintf\n\nUse snprintf to print only valid data.\nThat\u0027s the similar change done for ifstat.\n\nSigned-off-by: Denis Kirjanov \u003cdkirjanov@suse.de\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "2f8b36e146a555fd6a96590bf191ac634e3b350b",
      "tree": "063972a89637d4a58ec3d72246e34ba05315c1d4",
      "parents": [
        "4ce906c3d515973ec3f7c714495d6e3bd15645af"
      ],
      "author": {
        "name": "Denis Kirjanov",
        "email": "kirjanov@gmail.com",
        "time": "Wed Feb 28 08:58:57 2024 -0500"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Sun Mar 03 22:32:46 2024 +0000"
      },
      "message": "nstat: use stack space for history file name\n\nas the name doesn\u0027t require a lot of storage put\nit on the stack. Moreover the memory allocated via\nmalloc wasn\u0027t returned.\n\nSigned-off-by: Denis Kirjanov \u003cdkirjanov@suse.de\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "4ce906c3d515973ec3f7c714495d6e3bd15645af",
      "tree": "d62641013a706b6bfa396a330e0030898ab2abff",
      "parents": [
        "94107bba2456a855f92f697ce9822586440bc122"
      ],
      "author": {
        "name": "Denis Kirjanov",
        "email": "kirjanov@gmail.com",
        "time": "Wed Feb 28 08:58:56 2024 -0500"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Sun Mar 03 22:32:39 2024 +0000"
      },
      "message": "nstat: constify name argument in generic_proc_open\n\nthe argument passed to the function\nis always a constant value\n\nSigned-off-by: Denis Kirjanov \u003cdkirjanov@suse.de\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "94107bba2456a855f92f697ce9822586440bc122",
      "tree": "4141159ca8d90abf8e19ca72884bb65feb8f3f2f",
      "parents": [
        "ae5c6f9b0391409f302fadfffa1021911affe89f"
      ],
      "author": {
        "name": "Justin Iurman",
        "email": "justin.iurman@uliege.be",
        "time": "Thu Feb 22 16:45:39 2024 +0100"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Sun Mar 03 22:29:19 2024 +0000"
      },
      "message": "man8: ioam: add doc for monitor command\n\nAdd a sentence in the doc to describe what the new \"monitor\" command\ndoes.\n\nSigned-off-by: Justin Iurman \u003cjustin.iurman@uliege.be\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "ae5c6f9b0391409f302fadfffa1021911affe89f",
      "tree": "e5bde593f68795272d56c85961d4cb2483e55356",
      "parents": [
        "691b688900a66016be481186531ef4e1bf7bc611"
      ],
      "author": {
        "name": "Justin Iurman",
        "email": "justin.iurman@uliege.be",
        "time": "Thu Feb 22 16:45:38 2024 +0100"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Sun Mar 03 22:29:19 2024 +0000"
      },
      "message": "ip: ioam6: add monitor command\n\nAdd the \"ip ioam monitor\" command to be able to read all IOAM data\nreceived. This is based on a netlink multicast group.\n\nSigned-off-by: Justin Iurman \u003cjustin.iurman@uliege.be\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "691b688900a66016be481186531ef4e1bf7bc611",
      "tree": "1d2849d0e779545471f6eb0efef1549a393461ca",
      "parents": [
        "4306b28650fe55650d8bb7943b0ab8f63319140f"
      ],
      "author": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Sun Mar 03 22:24:26 2024 +0000"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Sun Mar 03 22:24:26 2024 +0000"
      },
      "message": "Update kernel headers\n\nUpdate kernel headers to commit\n    4b2765ae410a (\"Merge tag \u0027for-netdev\u0027 of https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next\")\n\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "68eef949c29e02261063de641762e37fda7193d3",
      "tree": "d53f90b7e598b3c391ba6f5f16555be794aca043",
      "parents": [
        "2bae5a315abe86de17f6093d641d43109f07ce86"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Thu Feb 29 16:09:24 2024 -0800"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Thu Feb 29 16:09:24 2024 -0800"
      },
      "message": "uapi: update in6.h\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "4306b28650fe55650d8bb7943b0ab8f63319140f",
      "tree": "4c0571b740fa709b0ceeebce3b1fd2ba7c9e7c9b",
      "parents": [
        "7c05edd3eceee354f0a2fca7c90f72971a0daccf",
        "1d7f908103be90e8ac836ef0ce03b72997664b5a"
      ],
      "author": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Tue Feb 27 04:09:35 2024 +0000"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Tue Feb 27 04:09:35 2024 +0000"
      },
      "message": "Merge remote-tracking branch \u0027main/main\u0027 into next\n\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "7c05edd3eceee354f0a2fca7c90f72971a0daccf",
      "tree": "c928cfb1135a821f74b1e0ec5e2f41d24e6e0796",
      "parents": [
        "d2f1c3c9a8a38493cdec9fb93534ccec76c48fe2",
        "50763d53310c1f95bd846ce9961d40e0e0e66376"
      ],
      "author": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Tue Feb 27 04:08:34 2024 +0000"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Tue Feb 27 04:08:34 2024 +0000"
      },
      "message": "Merge branch \u0027ss-socket-local-storage\u0027 into next\n\nQuentin Deslandes  says:\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nBPF allows programs to store socket-specific data using\nBPF_MAP_TYPE_SK_STORAGE maps. The data is attached to the socket itself,\nand Martin added INET_DIAG_REQ_SK_BPF_STORAGES, so it can be fetched\nusing the INET_DIAG mechanism.\n\nCurrently, ss doesn\u0027t request the socket-local data, this patch aims to\nfix this.\n\nThe first patch requests the socket-local data for the requested map ID\n(--bpf-map-id\u003d) or all the maps (--bpf-maps). It then prints the map_id\nin COL_EXT.\n\nPatch #2 uses libbpf and BTF to pretty print the map\u0027s content, like\n`bpftool map dump` would do.\n\nPatch #3 updates ss\u0027 man page to explain new options.\n\nWhile I think it makes sense for ss to provide the socket-local storage\ncontent for the sockets, it\u0027s difficult to conciliate the column-based\noutput of ss and having readable socket-local data. Hence, the\nsocket-local data is printed in a readable fashion over multiple lines\nunder its socket statistics, independently of the column-based approach.\n\nHere is an example of ss\u0027 output with --bpf-maps:\n[...]\nESTAB                  340116             0 [...]\n    map_id: 114 [\n        (struct my_sk_storage){\n            .field_hh \u003d (char)3,\n            (union){\n                .a \u003d (int)17,\n                .b \u003d (int)17,\n            },\n        }\n    ]\n\nChanged this series to an RFC as the merging window for net-next is\nclosed.\n\nChanges from v8:\n* Remove usage of libbpf_bpf_map_type_str() which requires libbpf-1.0+\n  and provide very little added value (David).\n* Use ENABLE_BPF_SKSTORAGE_SUPPORT to gate the BPF socket-local storage\n  support, instead of HAVE_LIBBPF. iproute2 depends on libbpf-0.1, but\n  this change needs libbpf-0.5+. If the requirements are not met, ss can\n  still be compiled and used without BPF socket-local storage support, but\n  a warning will be printed at compile time.\nChanges from v7:\n* Fix comment format and checkpatch warnings (Stephen, David).\n* Replaced Co-authored-by with Co-developed-by + Signed-off-by for\n  Martin\u0027s contribution on patch #1 to follow checkpatch requirements,\n  with Martin\u0027s approval.\nChanges from v6:\n* Remove column dedicated to BPF socket-local storage (COL_SKSTOR),\n  use COL_EXT instead (Matthieu).\nChanges from v5:\n* Add support for --oneline when printing socket-local data.\n* Use \\t to indent instead of \"  \" to be consistent with other columns.\n* Removed Martin\u0027s ack on patch #2 due to amount of lines changed.\nChanges from v4:\n* Fix return code for 2 calls.\n* Fix issue when inet_show_netlink() retries a request.\n* BPF dump object is created in bpf_map_opts_load_info().\nChanges from v3:\n* Minor refactoring to reduce number of HAVE_LIBBF usage.\n* Update ss\u0027 man page.\n* btf_dump structure created to print the socket-local data is cached\n  in bpf_map_opts. Creation of the btf_dump structure is performed if\n  needed, before printing the data.\n* If a map can\u0027t be pretty-printed, print its ID and a message instead\n  of skipping it.\n* If show_all\u003dtrue, send an empty message to the kernel to retrieve all\n  the maps (as Martin suggested).\nChanges from v2:\n* bpf_map_opts_is_enabled is not inline anymore.\n* Add more #ifdef HAVE_LIBBPF to prevent compilation error if\n  libbpf support is disabled.\n* Fix erroneous usage of args instead of _args in vout().\n* Add missing btf__free() and close(fd).\nChanges from v1:\n* Remove the first patch from the series (fix) and submit it separately.\n* Remove double allocation of struct rtattr.\n* Close BPF map FDs on exit.\n* If bpf_map_get_fd_by_id() fails with ENOENT, print an error message\n  and continue to the next map ID.\n* Fix typo in new command line option documentation.\n* Only use bpf_map_info.btf_value_type_id and ignore\n  bpf_map_info.btf_vmlinux_value_type_id (unused for socket-local storage).\n* Use btf_dump__dump_type_data() instead of manually using BTF to\n  pretty-print socket-local storage data. This change alone divides the size\n  of the patch series by 2.\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@kernel.org\u003e\n"
    },
    {
      "commit": "50763d53310c1f95bd846ce9961d40e0e0e66376",
      "tree": "c928cfb1135a821f74b1e0ec5e2f41d24e6e0796",
      "parents": [
        "e3ecf048579afd7a673700d04893671627e85d57"
      ],
      "author": {
        "name": "Quentin Deslandes",
        "email": "qde@naccy.de",
        "time": "Wed Feb 21 16:16:21 2024 +0100"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Tue Feb 27 04:06:28 2024 +0000"
      },
      "message": "ss: update man page to document --bpf-maps and --bpf-map-id\u003d\n\nDocument new --bpf-maps and --bpf-map-id\u003d options.\n\nSigned-off-by: Quentin Deslandes \u003cqde@naccy.de\u003e\nAcked-by: Martin KaFai Lau \u003cmartin.lau@kernel.org\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "e3ecf048579afd7a673700d04893671627e85d57",
      "tree": "37573183bb7ca0769f81928e86eeecea0a10dece",
      "parents": [
        "8740ca9dcd3ccf1c75c362900cb3218ae3204cf5"
      ],
      "author": {
        "name": "Quentin Deslandes",
        "email": "qde@naccy.de",
        "time": "Wed Feb 21 16:16:20 2024 +0100"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Tue Feb 27 04:06:11 2024 +0000"
      },
      "message": "ss: pretty-print BPF socket-local storage\n\nss is able to print the map ID(s) for which a given socket has BPF\nsocket-local storage defined (using --bpf-maps or --bpf-map-id\u003d). However,\nthe actual content of the map remains hidden.\n\nThis change aims to pretty-print the socket-local storage content following\nthe socket details, similar to what `bpftool map dump` would do. The exact\noutput format is inspired by drgn, while the BTF data processing is similar\nto bpftool\u0027s.\n\nss will use libbpf\u0027s btf_dump__dump_type_data() to ease pretty-printing\nof binary data. This requires out_bpf_sk_storage_print_fn() as a print\ncallback function used by btf_dump__dump_type_data(). vout() is also\nintroduced, which is similar to out() but accepts a va_list as\nparameter.\n\nss\u0027 output remains unchanged unless --bpf-maps or --bpf-map-id\u003d is used,\nin which case each socket containing BPF local storage will be followed by\nthe content of the storage before the next socket\u0027s info is displayed.\n\nSigned-off-by: Quentin Deslandes \u003cqde@naccy.de\u003e\nAcked-by: Martin KaFai Lau \u003cmartin.lau@kernel.org\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "2bae5a315abe86de17f6093d641d43109f07ce86",
      "tree": "9c56809141799e08e2aa8f1c689392d789c5e76f",
      "parents": [
        "533fb3c4bec81ad119470baf5a5454e91d0cc829"
      ],
      "author": {
        "name": "Yedaya Katsman",
        "email": "yedaya.ka@gmail.com",
        "time": "Sat Feb 17 23:21:02 2024 +0200"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Feb 26 16:33:24 2024 -0800"
      },
      "message": "ip: Add missing command exaplantions in man page\n\nThere are a few commands missing from the ip command syntax list, add\nthem. They are also missing from the see also section, add them there as\nwell.\nNote there isn\u0027t a ip-ila man page, so I didn\u0027t link to it.\n\nAlso fix a few punctuation mistakes.\n\nSigned-off-by: Yedaya Katsman \u003cyedaya.ka@gmail.com\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "533fb3c4bec81ad119470baf5a5454e91d0cc829",
      "tree": "d02fc19bf43066ae3abc33df1c4c1a1bafe462a7",
      "parents": [
        "1d7f908103be90e8ac836ef0ce03b72997664b5a"
      ],
      "author": {
        "name": "Denis Kirjanov",
        "email": "kirjanov@gmail.com",
        "time": "Tue Feb 20 08:45:44 2024 -0500"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Feb 26 12:25:27 2024 -0800"
      },
      "message": "iptuntap: use TUNDEV macro\n\nthe code already has a path to the tan/tap device\n\nSigned-off-by: Denis Kirjanov \u003cdkirjanov@suse.de\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "8740ca9dcd3ccf1c75c362900cb3218ae3204cf5",
      "tree": "46e9f422606b9140b320801b33f6e5553d756634",
      "parents": [
        "d2f1c3c9a8a38493cdec9fb93534ccec76c48fe2"
      ],
      "author": {
        "name": "Quentin Deslandes",
        "email": "qde@naccy.de",
        "time": "Wed Feb 21 16:16:19 2024 +0100"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Mon Feb 26 16:05:47 2024 +0000"
      },
      "message": "ss: add support for BPF socket-local storage\n\nWhile sock_diag is able to return BPF socket-local storage in response\nto INET_DIAG_REQ_SK_BPF_STORAGES requests, ss doesn\u0027t request it.\n\nThis change introduces the --bpf-maps and --bpf-map-id\u003d options to request\nBPF socket-local storage for all SK_STORAGE maps, or only specific ones.\n\nThe bigger part of this change will check the requested map IDs and\nensure they are valid. The column COL_EXT is used to print the\nsocket-local data into.\n\nWhen --bpf-maps is used, ss will send an empty\nINET_DIAG_REQ_SK_BPF_STORAGES request, in return the kernel will send\nall the BPF socket-local storage entries for a given socket. The BTF\ndata for each map is loaded on demand, as ss can\u0027t predict which map ID\nare used.\n\nWhen --bpf-map-id\u003dID is used, a file descriptor to the requested maps is\nopen to 1) ensure the map doesn\u0027t disappear before the data is printed,\nand 2) ensure the map type is BPF_MAP_TYPE_SK_STORAGE. The BTF data for\neach requested map is loaded before the request is sent to the kernel.\n\nCo-developed-by: Martin KaFai Lau \u003cmartin.lau@kernel.org\u003e\nSigned-off-by: Martin KaFai Lau \u003cmartin.lau@kernel.org\u003e\nSigned-off-by: Quentin Deslandes \u003cqde@naccy.de\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "1d7f908103be90e8ac836ef0ce03b72997664b5a",
      "tree": "848fd92f205ccd28196735de8d4ccc9652f33c01",
      "parents": [
        "ecac96e37d6ff4659a0f812dd8b3b9c0d7cc61fc"
      ],
      "author": {
        "name": "Xin Long",
        "email": "lucien.xin@gmail.com",
        "time": "Mon Feb 19 14:16:04 2024 -0500"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Feb 19 11:41:45 2024 -0800"
      },
      "message": "man: ip-link.8: add a note for gso_ipv4_max_size\n\nAs Paolo noticed, a skb-\u003elen check against gso_max_size was added in:\n\n  https://lore.kernel.org/netdev/20231219125331.4127498-1-edumazet@google.com/\n\ngso_max_size needs to be set to a value greater than or equal to\ngso_ipv4_max_size to make BIG TCP IPv4 work properly.\n\nTo not break the current setup, this patch just adds a note into its\nman doc for this.\n\nReported-by: Xiumei Mu \u003cxmu@redhat.com\u003e\nSigned-off-by: Xin Long \u003clucien.xin@gmail.com\u003e\n"
    },
    {
      "commit": "ecac96e37d6ff4659a0f812dd8b3b9c0d7cc61fc",
      "tree": "3024f041d2295b032516f5e1d6cf609c9446b73e",
      "parents": [
        "4b6e97b5f3d85ccad89bba9853520e8a28304156"
      ],
      "author": {
        "name": "Yedaya Katsman",
        "email": "yedaya.ka@gmail.com",
        "time": "Fri Feb 16 16:49:39 2024 +0200"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Feb 19 10:09:29 2024 -0800"
      },
      "message": "ip: Update command usage in man page\n\nThe usage in the man page was out of date with the usage help, fix it.\nAlso sort the commands alphabetically, the same as the command usage.\n\nSigned-off-by: Yedaya Katsman \u003cyedaya.ka@gmail.com\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "4b6e97b5f3d85ccad89bba9853520e8a28304156",
      "tree": "823b31dca97386298c69bb10a10b3864be499d70",
      "parents": [
        "bc5468c5ebc5085b931b2d0e73702b977d25c5f4"
      ],
      "author": {
        "name": "Takanori Hirano",
        "email": "me@hrntknr.net",
        "time": "Tue Feb 13 10:01:04 2024 +0000"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Feb 19 10:08:56 2024 -0800"
      },
      "message": "tc: Support json option in tc-cgroup, tc-flow and tc-route\n\nFix json corruption when using the \"-json\" option in some cases\n\nSigned-off-by: Takanori Hirano \u003cme@hrntknr.net\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "bc5468c5ebc5085b931b2d0e73702b977d25c5f4",
      "tree": "10cf4448a5a5e830bf2f971d99705e0ee38ad01c",
      "parents": [
        "d9b886d745ada3b8481e041ceca579c6f3acbea3"
      ],
      "author": {
        "name": "Takanori Hirano",
        "email": "me@hrntknr.net",
        "time": "Sun Feb 11 01:38:48 2024 +0000"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Feb 19 10:08:49 2024 -0800"
      },
      "message": "tc: Change of json format in tc-fw\n\nIn the case of a process such as mapping a json to a structure,\nit can be difficult if the keys have the same name but different types.\nSince handle is used in hex string, change it to fw.\n\nSigned-off-by: Takanori Hirano \u003cme@hrntknr.net\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "d2f1c3c9a8a38493cdec9fb93534ccec76c48fe2",
      "tree": "de6cd59150a3d5ac961350f564277421c9a5461d",
      "parents": [
        "7e646c80d7573bc4791b268a8dee472f11c33ff1"
      ],
      "author": {
        "name": "Denis Kirjanov",
        "email": "kirjanov@gmail.com",
        "time": "Wed Feb 14 07:56:59 2024 -0500"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Sun Feb 18 17:44:36 2024 +0000"
      },
      "message": "ifstat: convert sprintf to snprintf\n\nUse snprintf to print only valid data\n\nv2: adjust formatting\nv3: fix the issue with a buffer length\n\nSigned-off-by: Denis Kirjanov \u003cdkirjanov@suse.de\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "7e646c80d7573bc4791b268a8dee472f11c33ff1",
      "tree": "af526955357371cd122696c9bbc1a12ec01c56fe",
      "parents": [
        "f900302f3295fdde36f508ebfb9a2a68f115fe09"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Sat Feb 10 09:32:31 2024 -0800"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Sun Feb 18 17:41:56 2024 +0000"
      },
      "message": "netlink: display information from missing type extack\n\nThe kernel will now send missing type information in error response.\nPrint it if present.\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "f900302f3295fdde36f508ebfb9a2a68f115fe09",
      "tree": "f362e07c2370e3130a96497f995696146d670d58",
      "parents": [
        "e8dcb1214a21241f32405c88680f14cc57266067",
        "d9b886d745ada3b8481e041ceca579c6f3acbea3"
      ],
      "author": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Sun Feb 18 17:41:39 2024 +0000"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Sun Feb 18 17:41:39 2024 +0000"
      },
      "message": "Merge remote-tracking branch \u0027main/main\u0027 into next\n\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "d9b886d745ada3b8481e041ceca579c6f3acbea3",
      "tree": "7b9e599827367255389cf5d419de496809f89dca",
      "parents": [
        "d06f6a3d1766b42cb0d93537a77c46cdcb877745"
      ],
      "author": {
        "name": "Stephen Gallagher",
        "email": "sgallagh@redhat.com",
        "time": "Tue Feb 06 11:52:34 2024 -0500"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Wed Feb 14 19:06:36 2024 -0800"
      },
      "message": "iproute2: fix type incompatibility in ifstat.c\n\nThroughout ifstat.c, ifstat_ent.val is accessed as a long long unsigned\ntype, however it is defined as __u64. This works by coincidence on many\nsystems, however on ppc64le, __u64 is a long unsigned.\n\nThis patch makes the type definition consistent with all of the places\nwhere it is accessed.\n\nFixes: 5a52102b7c8f (\"ifstat: Add extended statistics to ifstat\")\n\nReviewed-by: Andrea Claudi \u003caclaudi@redhat.com\u003e\n\nSigned-off-by: Stephen Gallagher \u003csgallagh@redhat.com\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "d06f6a3d1766b42cb0d93537a77c46cdcb877745",
      "tree": "9b46190d8f24a6694425ec0a8104dce5752593b1",
      "parents": [
        "e91dfaaaea5f6c8e6f5746cac34f8b0f5d665870"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Sat Feb 10 16:47:25 2024 -0800"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Sat Feb 10 16:47:25 2024 -0800"
      },
      "message": "tc: u32: check return value from snprintf\n\nAdd assertion to check for case of snprintf failing (bad format?)\nor buffer getting full.\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "e91dfaaaea5f6c8e6f5746cac34f8b0f5d665870",
      "tree": "3ac9f5929a3de85f2c716419cd251d16c0985c1c",
      "parents": [
        "b958d3c25dccdf83c2499ab7f6d6931e878efa46"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Fri Feb 09 16:48:29 2024 -0800"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Sat Feb 10 09:48:55 2024 -0800"
      },
      "message": "tc: drop no longer used prototype from tc_util.h\n\nPart of the ipt removal missed this.\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "b958d3c25dccdf83c2499ab7f6d6931e878efa46",
      "tree": "cd76a0a56e5ac07ffb28c201a84b68e372ec81ea",
      "parents": [
        "46031294e3e20356b0bb64f1dfe8c6c57e4d8764"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Fri Feb 09 12:57:21 2024 -0800"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Sat Feb 10 09:48:55 2024 -0800"
      },
      "message": "tc: print unknown action on stderr\n\nThis is an error, and should not go to stdout.\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "46031294e3e20356b0bb64f1dfe8c6c57e4d8764",
      "tree": "907d83d131d36aba73b755352e8d04777e32df2a",
      "parents": [
        "49a8b895adb4c6f737ce25448a80006251b03a9e"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Fri Feb 09 12:56:43 2024 -0800"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Sat Feb 10 09:48:55 2024 -0800"
      },
      "message": "tc: bpf: fix extra newline in JSON output\n\nDon\u0027t print newline at end of bpf if in JSON mode.\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "49a8b895adb4c6f737ce25448a80006251b03a9e",
      "tree": "6c9180511aa75bb79d4a005441dba565fec27f36",
      "parents": [
        "e449400508eff4cb4ac69e3a798a18e7aaa34c1b"
      ],
      "author": {
        "name": "Takanori Hirano",
        "email": "me@hrntknr.net",
        "time": "Fri Feb 09 14:22:50 2024 +0000"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Sat Feb 10 09:48:55 2024 -0800"
      },
      "message": "tc: Support json option in tc-fw.\n\nFix json corruption when using the \"-json\" option in cases where tc-fw is set.\n\nSigned-off-by: Takanori Hirano \u003cme@hrntknr.net\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "e449400508eff4cb4ac69e3a798a18e7aaa34c1b",
      "tree": "56e5cee9e8b829e756daf72956b7a336f8131964",
      "parents": [
        "3c4712b95d0c9d370c26294d3434235cb35a0619"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Fri Feb 09 08:47:06 2024 -0800"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Sat Feb 10 09:48:49 2024 -0800"
      },
      "message": "tc: u32: errors should be printed on stderr\n\nDon\u0027t corrupt stdout with error messages, matters if JSON is used.\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "3c4712b95d0c9d370c26294d3434235cb35a0619",
      "tree": "9e4e1844557b05f0278e6c034f7fe1d01845528e",
      "parents": [
        "9cf6493cab29533998fca32dc3d5e71838ae279f"
      ],
      "author": {
        "name": "Andrea Claudi",
        "email": "aclaudi@redhat.com",
        "time": "Fri Feb 09 16:25:46 2024 +0100"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Fri Feb 09 08:45:10 2024 -0800"
      },
      "message": "docs, man: fix some typos\n\nFix some typos and spelling errors in iproute2 documentation.\n\nReviewed-by: Petr Machata \u003cpetrm@nvidia.com\u003e\nSigned-off-by: Andrea Claudi \u003caclaudi@redhat.com\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "9cf6493cab29533998fca32dc3d5e71838ae279f",
      "tree": "f983e35fce5613b5d31b8865ea0e6d29a3d10029",
      "parents": [
        "8f340a07513858570cffcef7d5667a50a4f37458"
      ],
      "author": {
        "name": "Andrea Claudi",
        "email": "aclaudi@redhat.com",
        "time": "Fri Feb 09 16:25:45 2024 +0100"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Fri Feb 09 08:45:10 2024 -0800"
      },
      "message": "treewide: fix typos in various comments\n\nFix various typos and spelling errors in some iproute2 comments.\n\nReviewed-by: Petr Machata \u003cpetrm@nvidia.com\u003e\nSigned-off-by: Andrea Claudi \u003caclaudi@redhat.com\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "8f340a07513858570cffcef7d5667a50a4f37458",
      "tree": "87fa42b8f9f9c7c1805f8072a2759d66eb05d1a3",
      "parents": [
        "00e8a64dac3be0203b149d3fe0307723ff76403e"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Thu Feb 08 09:25:08 2024 -0800"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Thu Feb 08 09:25:08 2024 -0800"
      },
      "message": "ip: detect rtnl_listen errors while monitoring netns\n\nIf rtnl_listen detects error (such as netlink socket EOF),\nthen exit with status 2 like other iproute2 monitor commands.\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "00e8a64dac3be0203b149d3fe0307723ff76403e",
      "tree": "600a32fc4e15657f5dc2924483b0b54adb455ff8",
      "parents": [
        "f4dc6a784f6e2cee091027434f05a501f4cc1411"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Thu Feb 08 09:23:07 2024 -0800"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Thu Feb 08 09:23:07 2024 -0800"
      },
      "message": "ip: detect errors in netconf monitor mode\n\nIf rtnl_listen() returns error while looking for netconf events,\nthen exit with status of 2 as other iproute2 monitor actions do.\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "f4dc6a784f6e2cee091027434f05a501f4cc1411",
      "tree": "38d345c41cdd85f0f70cabb6557d9d8a0d5482ca",
      "parents": [
        "35c02157396c847e57f52b5d6d345af2b961a794"
      ],
      "author": {
        "name": "Maks Mishin",
        "email": "maks.mishinfz@gmail.com",
        "time": "Wed Feb 07 02:54:16 2024 +0300"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Thu Feb 08 09:21:39 2024 -0800"
      },
      "message": "ctrl: Fix fd leak in ctrl_listen()\n\nUse the same pattern for handling rtnl_listen() errors that\nis used across other iproute2 commands. All other commands\nexit with status of 2 if rtnl_listen fails.\n\nReported-off-by: Maks Mishin \u003cmaks.mishinFZ@gmail.com\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "35c02157396c847e57f52b5d6d345af2b961a794",
      "tree": "cc8b06fdbbc71880df5a0931141e5c08cefee26f",
      "parents": [
        "e33309752730dea0cfc6627a4e5f8a5899753c87"
      ],
      "author": {
        "name": "Maks Mishin",
        "email": "maks.mishinfz@gmail.com",
        "time": "Wed Feb 07 02:54:03 2024 +0300"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Thu Feb 08 09:12:42 2024 -0800"
      },
      "message": "ctrl: Fix fd leak in ctrl_list()\n\nif ctrl_list is called with get operation and wrong number\nof parameters, it would forget to close the local netlink\nhandle.\n\nSigned-off-by: Maks Mishin \u003cmaks.mishinFZ@gmail.com\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "e8dcb1214a21241f32405c88680f14cc57266067",
      "tree": "32b021361b8784bd9e3b4e772082d73815fceb36",
      "parents": [
        "cb47f27143ca352b5e7afdce0aff43fbc1ef0fbc"
      ],
      "author": {
        "name": "Aahil Awatramani",
        "email": "aahila@google.com",
        "time": "Thu Jan 25 23:11:47 2024 +0000"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Wed Feb 07 16:26:36 2024 +0000"
      },
      "message": "ip/bond: add coupled_control support\n\ncoupled_control specifies whether the LACP state machine\u0027s MUX in the\n802.3ad mode should have separate Collecting and Distributing states per\nIEEE 802.1AX-2008 5.4.15 for coupled and independent control state.\n\nBy default this setting is on and does not separate the Collecting and\nDistributing states, maintaining the bond in coupled control. If set off,\nwill toggle independent control state machine which will seperate\nCollecting and Distributing states.\n\nSigned-off-by: Aahil Awatramani \u003caahila@google.com\u003e\n\nv2:\n  Dropped uapi header change\n  Use of print_on_off and parse_on_off\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "cb47f27143ca352b5e7afdce0aff43fbc1ef0fbc",
      "tree": "5bd273d2548623f4a57427011886fd8877818123",
      "parents": [
        "91e3be8fdf1b9c48c7bfc98516aac3d51858a9a5"
      ],
      "author": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Wed Feb 07 16:25:36 2024 +0000"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Wed Feb 07 16:25:36 2024 +0000"
      },
      "message": "Update kernel headers\n\nUpdate kernel headers to commit:\n    1e8f1477aba5 (\"Merge branch \u0027net-phy-c22-c45-enumeration\u0027\")\n\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "e33309752730dea0cfc6627a4e5f8a5899753c87",
      "tree": "8677e6233d978edd1f9403d2e2e10bc6518a712d",
      "parents": [
        "32bb7f8f99d27edd66071dbda4a58b3f27c911fd"
      ],
      "author": {
        "name": "Yedaya Katsman",
        "email": "yedaya.ka@gmail.com",
        "time": "Mon Feb 05 21:29:23 2024 +0200"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Feb 05 14:12:11 2024 -0800"
      },
      "message": "ip: Add missing -echo option to usage\n\nIn commit b264b4c6568c (\"ip: add NLM_F_ECHO support\") the \"-echo\" option\nwas added, but not to the options in the usage. Add it.\n\nNote there doesn\u0027t seem to be any praticular order for the options here,\nso it\u0027s placed kind of randomly.\n\nFixes: b264b4c6568c (\"ip: add NLM_F_ECHO support\")\nSigned-off-by: Yedaya Katsman \u003cyedaya.ka@gmail.com\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "32bb7f8f99d27edd66071dbda4a58b3f27c911fd",
      "tree": "b3e0f2b07bd1da71ceb21758dc80a3cc265e56b4",
      "parents": [
        "327741c6e8ed32086074556b2729d467599791ea"
      ],
      "author": {
        "name": "Yedaya Katsman",
        "email": "yedaya.ka@gmail.com",
        "time": "Sat Feb 03 22:03:05 2024 +0200"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Feb 05 08:53:36 2024 -0800"
      },
      "message": "ip: Add missing stats command to usage\n\nThe stats command was added in 54d82b0699a0 (\"ip: Add a new family of\ncommands, \"stats\"\"), but wasn\u0027t included in the subcommand list in the\nhelp usage.\nAdd it in the right position alphabetically.\n\nFixes: 54d82b0699a0 (\"ip: Add a new family of commands, \"stats\"\")\nSigned-off-by: Yedaya Katsman \u003cyedaya.ka@gmail.com\u003e\nReviewed-by: Petr Machata \u003cme@pmachata.org\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "327741c6e8ed32086074556b2729d467599791ea",
      "tree": "3acaa91c38af0678e57a79609812ec20253291ad",
      "parents": [
        "ddcc9329352a2158241cb21fa11df21ca23759d6"
      ],
      "author": {
        "name": "Yedaya Katsman",
        "email": "yedaya.ka@gmail.com",
        "time": "Sat Jan 27 18:45:08 2024 +0200"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Wed Jan 31 16:03:56 2024 -0800"
      },
      "message": "ip: remove non-existent amt subcommand from usage\n\nCommit 6e15d27aae94 (\"ip: add AMT support\") added \"amt\" to the list\nof \"first level\" commands list, which isn\u0027t correct, as it isn\u0027t present\nin the cmds list. remove it from the usage help.\n\nFixes: 6e15d27aae94 (\"ip: add AMT support\")\nSigned-off-by: Yedaya Katsman \u003cyedaya.ka@gmail.com\u003e\nReviewed-by: Jiri Pirko \u003cjiri@nvidia.com\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "ddcc9329352a2158241cb21fa11df21ca23759d6",
      "tree": "607009c0f4b6d24f9744b006f7e98aaedb48be3d",
      "parents": [
        "69e3b2fadcd32683db2942f31fe41f0fbb2185f8"
      ],
      "author": {
        "name": "Denis Kirjanov",
        "email": "denis.kirjanov@suse.com",
        "time": "Fri Jan 26 05:08:55 2024 -0500"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Tue Jan 30 12:39:50 2024 -0800"
      },
      "message": "ifstat: make load_info() more verbose on error\n\nconvert frprintf calls to perror() so the caller\ncan see the reason of an error\n\nSigned-off-by: Denis Kirjanov \u003cdkirjanov@suse.de\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "91e3be8fdf1b9c48c7bfc98516aac3d51858a9a5",
      "tree": "73c3e7e8f8043e4c7bb1ac7d04ac23129d64b785",
      "parents": [
        "139a74134c52a7f96cc7b16a53988097dd2d4175",
        "cf0eae9a9fc4a40e98bac883919dc872244ee570"
      ],
      "author": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Tue Jan 30 15:49:23 2024 +0000"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Tue Jan 30 15:49:23 2024 +0000"
      },
      "message": "Merge branch \u0027echo-tc-filter-actions\u0027 into next\n\nVictor Nogueira  says:\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nContinuing on what Hangbin Liu started [1], this patch set adds support for\nthe NLM_F_ECHO flag for tc actions and filters. For qdiscs it will require\nsome kernel surgery, and we\u0027ll send it soon after this surgery is merged.\n\nWhen user space configures the kernel with netlink messages, it can set\nNLM_F_ECHO flag to request the kernel to send the applied configuration\nback to the caller. This allows user space to receive back configuration\ninformation that is populated by the kernel. Often because there are\nparameters that can only be set by the kernel which become visible with the\necho, or because user space lets the kernel choose a default value.\n\nTo illustrate a use case where the kernel will give us a default value,\nthe example below shows the user not specifying the action index:\n\n    tc -echo actions add action mirred egress mirror dev lo\n\n    total acts 0\n    Added action\n          action order 1: mirred (Egress Mirror to device lo) pipe\n          index 1 ref 1 bind 0\n          not_in_hw\n\nNote that the echoed response indicates that the kernel gave us a value\nof index 1\n\n[1] https://lore.kernel.org/netdev/20220916033428.400131-2-liuhangbin@gmail.com/\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@kernel.org\u003e\n"
    },
    {
      "commit": "cf0eae9a9fc4a40e98bac883919dc872244ee570",
      "tree": "73c3e7e8f8043e4c7bb1ac7d04ac23129d64b785",
      "parents": [
        "071144c0bbb9a95f5c529fd536488cebcc652374"
      ],
      "author": {
        "name": "Victor Nogueira",
        "email": "victor@mojatatu.com",
        "time": "Wed Jan 24 12:34:56 2024 -0300"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Tue Jan 30 15:49:13 2024 +0000"
      },
      "message": "tc: Add NLM_F_ECHO support for filters\n\nIf the user specifies this flag for a filter command the kernel will\nreturn the command\u0027s result back to user space.\nFor example:\n\n  tc -echo filter add dev lo parent ffff: protocol ip matchall action ok\n\n  added filter dev lo parent ffff: protocol ip pref 49152 matchall chain 0\n\nAs illustrated above, the kernel will give us a pref of 491252\n\nThe same can be done for other filter commands (replace, delete, and\nchange). For example:\n\n  tc -echo filter del dev lo parent ffff: pref 49152 protocol ip matchall\n\n  deleted filter dev lo parent ffff: protocol ip pref 49152 matchall chain 0\n\nSigned-off-by: Victor Nogueira \u003cvictor@mojatatu.com\u003e\nReviewed-by: Hangbin Liu \u003cliuhangbin@gmail.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "071144c0bbb9a95f5c529fd536488cebcc652374",
      "tree": "c76c98df0c7facc5e8d7b8ea7b4466bfcf0269c5",
      "parents": [
        "139a74134c52a7f96cc7b16a53988097dd2d4175"
      ],
      "author": {
        "name": "Victor Nogueira",
        "email": "victor@mojatatu.com",
        "time": "Wed Jan 24 12:34:55 2024 -0300"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Tue Jan 30 15:49:12 2024 +0000"
      },
      "message": "tc: add NLM_F_ECHO support for actions\n\nThis patch adds the -echo flag to tc command line and support for it in\ntc actions. If the user specifies this flag for an action command, the\nkernel will return the command\u0027s result back to user space.\nFor example:\n\n  tc -echo actions add action mirred egress mirror dev lo\n\n  total acts 0\n  Added action\n        action order 1: mirred (Egress Mirror to device lo) pipe\n        index 10 ref 1 bind 0\n        not_in_hw\n\nAs illustrated above, the kernel will give us an index of 10\n\nThe same can be done for other action commands (replace, change, and\ndelete). For example:\n\n  tc -echo actions delete action mirred index 10\n\n  total acts 0\n  Deleted action\n        action order 1: mirred (Egress Mirror to device lo) pipe\n        index 10 ref 0 bind 0\n        not_in_hw\n\nSigned-off-by: Victor Nogueira \u003cvictor@mojatatu.com\u003e\nReviewed-by: Hangbin Liu \u003cliuhangbin@gmail.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "69e3b2fadcd32683db2942f31fe41f0fbb2185f8",
      "tree": "0f7514df0ef4219230a55fafd7551ce9c9dabcd8",
      "parents": [
        "0c3400cc8f576b9f9e4099b67ae53596111323cd"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Sat Jan 27 13:58:14 2024 -0800"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Sat Jan 27 13:59:49 2024 -0800"
      },
      "message": "bpf: fix warning from basename()\n\nThe function basename() expects a mutable character string,\nwhich now causes a warning:\n\nbpf_legacy.c: In function ‘bpf_load_common’:\nbpf_legacy.c:975:38: warning: passing argument 1 of ‘__xpg_basename’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]\n  975 |                          basename(cfg-\u003eobject), cfg-\u003emode \u003d\u003d EBPF_PINNED ?\n      |                                   ~~~^~~~~~~~\nIn file included from bpf_legacy.c:21:\n/usr/include/libgen.h:34:36: note: expected ‘char *’ but argument is of type ‘const char *’\n   34 | extern char *__xpg_basename (char *__path) __THROW;\n\nFixes: f20ff2f19552 (\"bpf: keep parsed program mode in struct bpf_cfg_in\")\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "0c3400cc8f576b9f9e4099b67ae53596111323cd",
      "tree": "b3d9ec89eef9ba5d22373ffba04de28a7976878b",
      "parents": [
        "64ed1886e719f40acb554ac895305acb43f27bea"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Thu Jan 25 16:49:10 2024 -0800"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Thu Jan 25 16:49:10 2024 -0800"
      },
      "message": "spelling fixes\n\nUse codespell and ispell to fix some spelling errors\nin comments and README\u0027s.\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "139a74134c52a7f96cc7b16a53988097dd2d4175",
      "tree": "8819908e2037ae49a67e9fb52e9ad9e91f3da0a2",
      "parents": [
        "fbf0acb941507a47e6fbec3eec39500b73c32f53"
      ],
      "author": {
        "name": "Victor Nogueira",
        "email": "victor@mojatatu.com",
        "time": "Tue Jan 23 18:38:11 2024 -0300"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Thu Jan 25 18:15:50 2024 +0000"
      },
      "message": "m_mirred: Allow mirred to block\n\nSo far the mirred action has dealt with syntax that handles\nmirror/redirection for netdev. A matching packet is redirected or mirrored\nto a target netdev.\n\nIn this patch we enable mirred to mirror to a tc block as well.\nIOW, the new syntax looks as follows:\n... mirred \u003cingress | egress\u003e \u003cmirror | redirect\u003e [index INDEX] \u003c \u003cblockid BLOCKID\u003e | \u003cdev \u003cdevname\u003e\u003e \u003e\n\nExamples of mirroring or redirecting to a tc block:\n$ tc filter add block 22 protocol ip pref 25 \\\n  flower dst_ip 192.168.0.0/16 action mirred egress mirror blockid 22\n\n$ tc filter add block 22 protocol ip pref 25 \\\n  flower dst_ip 10.10.10.10/32 action mirred egress redirect blockid 22\n\nCo-developed-by: Jamal Hadi Salim \u003cjhs@mojatatu.com\u003e\nSigned-off-by: Jamal Hadi Salim \u003cjhs@mojatatu.com\u003e\nCo-developed-by: Pedro Tammela \u003cpctammela@mojatatu.com\u003e\nSigned-off-by: Pedro Tammela \u003cpctammela@mojatatu.com\u003e\nSigned-off-by: Victor Nogueira \u003cvictor@mojatatu.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "64ed1886e719f40acb554ac895305acb43f27bea",
      "tree": "cc4a02dd9329f8ab6ef2da516a55c243cd06ed64",
      "parents": [
        "da5a2d94dc012a923133e94bed25a67f6bd74657"
      ],
      "author": {
        "name": "Pedro Tammela",
        "email": "pctammela@mojatatu.com",
        "time": "Mon Jan 22 18:05:46 2024 -0300"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Jan 22 20:30:18 2024 -0800"
      },
      "message": "bpf: include libgen.h for basename\n\nIn musl basename() is only available via libgen.h\n\nSigned-off-by: Pedro Tammela \u003cpctammela@mojatatu.com\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "da5a2d94dc012a923133e94bed25a67f6bd74657",
      "tree": "cf1b75bb9c7825a695979da8f905a6383761f7fb",
      "parents": [
        "325c96e749436fc8305e7a67a6f1e54e37045450"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Jan 22 20:26:08 2024 -0800"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Jan 22 20:26:08 2024 -0800"
      },
      "message": "color: handle case where fmt is NULL\n\nThere are cases where NULL is passed as format string when\nnothing is to be printed. This is commonly done in the print_bool\nfunction when a flag is false. Glibc seems to handle this case nicely\nbut for musl it will cause a segmentation fault\n\nSince nothing needs to be printed, in this case; just check\nfor NULL and return.\n\nReported-by: Pedro Tammela \u003cpctammela@mojatatu.com\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "325c96e749436fc8305e7a67a6f1e54e37045450",
      "tree": "29d88cb8b13c5158db1a4b3b20cd87a132d98222",
      "parents": [
        "2636010b2aebbb29d510b8a905255336308d05ae"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Jan 22 10:11:00 2024 -0800"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Jan 22 10:11:00 2024 -0800"
      },
      "message": "uapi: update virtio_config.h\n\nUpdated from to 6.8.0-rc1.\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "2636010b2aebbb29d510b8a905255336308d05ae",
      "tree": "4ef8409c87e09ccbaf1294ba17eddc4d03fd4c33",
      "parents": [
        "ec34e06f6276b8cf678ae09f9389f9922b480f70"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Jan 22 10:01:20 2024 -0800"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Jan 22 10:03:39 2024 -0800"
      },
      "message": "man: fix duplicate words in l2tp, sfb and tipc\n\nDoing simple regex found a couple more duplicates.\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "ec34e06f6276b8cf678ae09f9389f9922b480f70",
      "tree": "012827b0fc71c30f67f86e82c74bec31bfd1b7f9",
      "parents": [
        "3062aaf77027c69d1ab34c3483522f195c8856ad"
      ],
      "author": {
        "name": "Simon Egli",
        "email": "simon@egli.online",
        "time": "Mon Jan 22 16:39:32 2024 +0100"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Jan 22 10:00:22 2024 -0800"
      },
      "message": "man: correct double word in htb\n\nThere was a word too much in the documentation of tc-htb\n\nSigned-off-by: Simon Egli \u003csimon@egli.online\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "fbf0acb941507a47e6fbec3eec39500b73c32f53",
      "tree": "3f5ec57b26feb5ca6f773939b458db62b951780b",
      "parents": [
        "4a6c579ae947cc08dcc12173a040b474c506923e"
      ],
      "author": {
        "name": "Christian Göttsche",
        "email": "cgzones@googlemail.com",
        "time": "Mon Jan 08 12:10:20 2024 +0100"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Mon Jan 22 03:53:19 2024 +0000"
      },
      "message": "ss: add option to suppress queue columns\n\nAdd a new option `-Q/--no-queues` to ss(8) to suppress the two standard\ncolumns Send-Q and Recv-Q.  This helps to keep the output steady for\nmonitoring purposes (like listening sockets).\n\nSigned-off-by: Christian Göttsche \u003ccgzones@googlemail.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "4a6c579ae947cc08dcc12173a040b474c506923e",
      "tree": "38875bb9fa8df6a1e77bf9c3ba35d188368ab39a",
      "parents": [
        "97d3edd74383628a01d7d6a1197196dd500d5357",
        "3062aaf77027c69d1ab34c3483522f195c8856ad"
      ],
      "author": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Mon Jan 22 03:44:13 2024 +0000"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Mon Jan 22 03:44:13 2024 +0000"
      },
      "message": "Merge branch \u0027main\u0027 into next\n\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "3062aaf77027c69d1ab34c3483522f195c8856ad",
      "tree": "38875bb9fa8df6a1e77bf9c3ba35d188368ab39a",
      "parents": [
        "91cca2aee76bb00ad81ce94da4d7e60670512fa3"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Sun Jan 21 09:19:19 2024 -0800"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Sun Jan 21 09:19:19 2024 -0800"
      },
      "message": "tc: better clockid handling\n\nAll clockid values not available on some older glibc versions.\nAlso, add some comments.\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "91cca2aee76bb00ad81ce94da4d7e60670512fa3",
      "tree": "9a3a0f122fbf1e2ec4cbabc9249b5276dab2a0d1",
      "parents": [
        "a10e05ad35ade0a42d08512e7d2e09a769bf1ad9"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Fri Jan 19 08:38:58 2024 -0800"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Fri Jan 19 08:38:58 2024 -0800"
      },
      "message": "tc: unify clockid handling\n\nThere are three places in tc which all have same code for\nhandling clockid (copy/paste). Move it into tc_util.c.\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "a10e05ad35ade0a42d08512e7d2e09a769bf1ad9",
      "tree": "ba52b440adfea73bd50c577c028c84ad0176f653",
      "parents": [
        "067a17ed32afd73d2bada22b8e2e4028522bbca1"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Thu Jan 18 08:13:21 2024 -0800"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Thu Jan 18 08:13:21 2024 -0800"
      },
      "message": "uapi: remove tc_ipt.h\n\nRemoved upstream.\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "067a17ed32afd73d2bada22b8e2e4028522bbca1",
      "tree": "798f438609a9e25a54bcce10c4e75679b210f455",
      "parents": [
        "9071483dd20789e14fcea850cf06ff1216f1a64c"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Thu Jan 11 10:38:36 2024 -0800"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Wed Jan 17 09:20:11 2024 -0800"
      },
      "message": "doc: remove out dated actions-general\n\nThis file is rather free form, out dated, and redundant.\nEverything here should be covered on man pages.\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "9071483dd20789e14fcea850cf06ff1216f1a64c",
      "tree": "ee24457cce74971cb5f69bf2076cd251fe5abd4f",
      "parents": [
        "4e3a6bc12072f964e42888350bf6d416788ce254"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Thu Jan 11 09:39:23 2024 -0800"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Wed Jan 17 09:20:07 2024 -0800"
      },
      "message": "doc: remove ifb README\n\nMost of this document goes back to when IFB was first integrated\nand covers the motivation. Only of historical interest.\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "4e3a6bc12072f964e42888350bf6d416788ce254",
      "tree": "a9ca9f38c9fcf1d418577fb6c3f170f95cba3fa9",
      "parents": [
        "6f431a89abc53ef99339b9b773f94f48a501894f"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Thu Jan 11 10:37:33 2024 -0800"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Wed Jan 17 09:20:02 2024 -0800"
      },
      "message": "man/tc-gact: move generic action documentation to man page\n\nConvert from free form doc to man page.\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "6f431a89abc53ef99339b9b773f94f48a501894f",
      "tree": "078a072e76f5afe0862bc414a6e8e52af42ff2cc",
      "parents": [
        "87d804ca0854b09c07872e9fd6036bf5d3e0cc85"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Thu Jan 11 09:36:47 2024 -0800"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Wed Jan 17 09:19:58 2024 -0800"
      },
      "message": "man: get rid of doc/actions/mirred-usage\n\nThe only bit of information not already on the man page\nis some of the limitations.\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "87d804ca0854b09c07872e9fd6036bf5d3e0cc85",
      "tree": "fc9b234d7475dfefa74485716af31c6ff6f5e4ab",
      "parents": [
        "84c45b8acb30e75d9452653e763f422ba99e6a50"
      ],
      "author": {
        "name": "Matthieu Baerts (NGI0)",
        "email": "matttbe@kernel.org",
        "time": "Sat Jan 13 18:10:21 2024 +0100"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Wed Jan 17 09:18:04 2024 -0800"
      },
      "message": "ss: show extra info when \u0027--processes\u0027 is not used\n\nA recent modification broke \"extra\" options for all protocols showing\ninfo about the processes when \u0027-p\u0027 / \u0027--processes\u0027 option was not used\nas well. In other words, all the additional bits displayed at the end or\nat the next line were no longer printed if the user didn\u0027t ask to show\ninfo about processes as well.\n\nThe reason is that, the \"current_field\" pointer never switched to the\n\"Ext\" column. If the user didn\u0027t ask to display the processes, nothing\nhappened when trying to print extra bits using the \"out()\" function,\nbecause the current field was still pointing to the \"Process\" one, now\nmarked as disabled.\n\nBefore the commit mentioned below, it was not an issue not to switch to\nthe \"Ext\" or \"Process\" columns because they were never marked as\n\"disabled\".\n\nHere is a quick list of options that were no longer displayed if \u0027-p\u0027 /\n\u0027--processes\u0027 was not set:\n\n- AF_INET(6):\n  -o, --options\n  -e, --extended\n  --tos\n  --cgroup\n  --inet-sockopt\n  -m, --memory\n  -i, --info\n\n- AF_PACKET:\n  -e, --extended\n\n- AF_XDP:\n  -e, --extended\n\n- AF_UNIX:\n  -m, --memory\n  -e, --extended\n\n- TIPC:\n  --tipcinfo\n\nThat was just by quickly reading the code, I probably missed some. But\nthis shows that the impact can be quite important for all scripts using\n\u0027ss\u0027 to monitor connections or to report info.\n\nFixes: 1607bf53 (\"ss: prevent \"Process\" column from being printed unless requested\")\nSigned-off-by: Matthieu Baerts (NGI0) \u003cmatttbe@kernel.org\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "84c45b8acb30e75d9452653e763f422ba99e6a50",
      "tree": "0e07c9a486bdc62f3a018347d264cd20298acfdc",
      "parents": [
        "dc517768cc183f4d1e35f307c04b159a12ce24f4"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Wed Jan 17 09:17:42 2024 -0800"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Wed Jan 17 09:17:42 2024 -0800"
      },
      "message": "Reapply \"ss: prevent \"Process\" column from being printed unless requested\"\n\nThis reverts commit f22c49730c3691c25a1147081363eb35aa9d1048.\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "dc517768cc183f4d1e35f307c04b159a12ce24f4",
      "tree": "641460016483e1a47845396995a231746c3532ad",
      "parents": [
        "f22c49730c3691c25a1147081363eb35aa9d1048"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Jan 15 09:39:36 2024 -0800"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Jan 15 09:39:36 2024 -0800"
      },
      "message": "uapi: update headers from 6.8-rc1\n\nRemoval of no longer used TC structs.\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    }
  ],
  "next": "f22c49730c3691c25a1147081363eb35aa9d1048"
}
