)]}'
{
  "log": [
    {
      "commit": "204a721033556114c81c47d00375f2d52e98e463",
      "tree": "9757de01d7e7db00ffb4308b9472ea386a2c8ca2",
      "parents": [
        "4758e1dd1803cde25c12fb6828f51a16dc721130",
        "ac0b672924c8993a2da2cb9b6f97908967095a97"
      ],
      "author": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Wed Sep 23 15:01:51 2026 -0600"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Wed Sep 23 15:01:51 2026 -0600"
      },
      "message": "Merge remote-tracking branch \u0027main/main\u0027 into next\n\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "4758e1dd1803cde25c12fb6828f51a16dc721130",
      "tree": "78a2652582a58336c7f06b0e88c4aed1d3ac58b4",
      "parents": [
        "7d9336b7917862362937ce09119701f02bd98a96",
        "07a6444c127e95b478c54f6803610500025bbafa"
      ],
      "author": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Wed Sep 23 15:00:40 2026 -0600"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Wed Sep 23 15:00:40 2026 -0600"
      },
      "message": "Merge branch \u0027netns-cookie\u0027 into next\n\nIdo Schimmel  says:\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nThe kernel identifies a network namespace by a 64-bit cookie that is\nassigned when the namespace is created and never changes.\n\nThe cookie is reported by a growing number of trace events such as the\nTCP-MD5 and TCP-AO events and the net device events (e.g.,\nnet:net_dev_xmit). This allows filtering events that occur in a specific\nnetwork namespace, for example:\n\n # perf record -a -e net:net_dev_xmit --filter \u0027net_cookie \u003d\u003d 12\u0027\n\nIt is also available to tracing BPF programs that can access\n\u0027net_cookie\u0027 in \u0027struct net\u0027.\n\nHowever, no utility currently reports the cookie of a given network\nnamespace, so mapping a cookie in a trace to a namespace requires a\ncustom program that calls getsockopt(SO_NETNS_COOKIE) from within the\nnamespace.\n\nSince Linux 6.18, the cookie is also the generic namespace ID and can be\nretrieved via the NS_GET_ID ioctl on a network namespace file\ndescriptor. Unlike SO_NETNS_COOKIE, this does not require entering the\nnamespace, so the cookie of any namespace whose file can be opened can\nbe retrieved without privileges. A kernel selftest [1] ensures that both\ninterfaces report the same value for a given network namespace.\n\nThis patchset extends ip-netns to display the network namespace cookie.\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": "07a6444c127e95b478c54f6803610500025bbafa",
      "tree": "78a2652582a58336c7f06b0e88c4aed1d3ac58b4",
      "parents": [
        "f49fa3143008653662eccf0e50678e62eb8761c7"
      ],
      "author": {
        "name": "Ido Schimmel",
        "email": "idosch@nvidia.com",
        "time": "Wed Sep 23 19:17:56 2026 +0300"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Wed Sep 23 15:00:19 2026 -0600"
      },
      "message": "ip: netns: add \"ip netns cookie\" command\n\n\"ip netns list\" only reports named network namespaces, i.e., those that\nare bind mounted under /var/run/netns. Network namespaces created by\ncontainer runtimes are usually not named, but there is still a need to\nretrieve their cookie, for example, in order to correlate the records\nin a trace to a container.\n\nAdd a command that reports the cookie of a single network namespace,\nreferenced either by name or by the PID of a process running in it. If\nneither is specified, the cookie of the current network namespace is\nreported:\n\n # ip netns add red\n # ip netns cookie red\n 11\n # ip -j netns cookie red\n [{\"cookie\":11}]\n # ip netns exec red ip netns cookie\n 11\n # ip netns cookie $$\n 7\n # ip netns cookie\n 7\n\nAn error is returned when the kernel does not support the NS_GET_ID\nioctl:\n\n # uname -r\n 6.12.109-virtme-g39a867754a8a\n # ip netns add red\n # ip netns cookie red\n Cannot get cookie of network namespace \"red\": Inappropriate ioctl for device\n\nAssisted-by: LLM\nReviewed-by: Petr Machata \u003cpetrm@nvidia.com\u003e\nSigned-off-by: Ido Schimmel \u003cidosch@nvidia.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "f49fa3143008653662eccf0e50678e62eb8761c7",
      "tree": "962a6c58bb8098d182bfb2ac6c4606e5cf9beef1",
      "parents": [
        "d4a9994510af2de01a7d1102832d8361da8d00e4"
      ],
      "author": {
        "name": "Ido Schimmel",
        "email": "idosch@nvidia.com",
        "time": "Wed Sep 23 19:17:55 2026 +0300"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Wed Sep 23 15:00:14 2026 -0600"
      },
      "message": "ip: netns: report the network namespace cookie\n\nThe kernel identifies a network namespace by a 64-bit cookie that is\nassigned when the namespace is created and never changes. User space can\nquery the cookie using the SO_NETNS_COOKIE socket option and since Linux\n6.18, the cookie is also the generic namespace ID and can be retrieved\nvia the NS_GET_ID ioctl on a network namespace file descriptor.\n\nReport the cookie in \"ip netns list\". In JSON mode it is always\nreported. In plain text mode it is only reported when details are\nrequested (\"-d\") to avoid breaking scripts that rely on the current\noutput format:\n\n # ip netns add red\n # ip netns add blue\n # ip netns list\n blue\n red\n # ip -d netns list\n blue (cookie: 12)\n red (cookie: 11)\n # ip -j netns list\n [{\"name\":\"blue\",\"cookie\":12},{\"name\":\"red\",\"cookie\":11}]\n\nThe cookie is not reported on kernels that do not support the NS_GET_ID\nioctl:\n\n # uname -r\n 6.12.109-virtme-g39a867754a8a\n # ip netns add red\n # ip netns add blue\n # ip -d netns list\n blue\n red\n # ip -j netns list\n [{\"name\":\"blue\"},{\"name\":\"red\"}]\n\nThe new functionality can be used to filter networking events that occur\nin a specific network namespace:\n\n # perf record -a -e net:net_dev_xmit --filter \u0027net_cookie \u003d\u003d 12\u0027\n\nAssisted-by: LLM\nReviewed-by: Petr Machata \u003cpetrm@nvidia.com\u003e\nSigned-off-by: Ido Schimmel \u003cidosch@nvidia.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "d4a9994510af2de01a7d1102832d8361da8d00e4",
      "tree": "f332be95934556a7f4cceb9bbcaa44b76c266fff",
      "parents": [
        "7d9336b7917862362937ce09119701f02bd98a96"
      ],
      "author": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Wed Sep 23 14:59:46 2026 -0600"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Wed Sep 23 14:59:46 2026 -0600"
      },
      "message": "uapi: Import nsfs.h from last sync point\n\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "7d9336b7917862362937ce09119701f02bd98a96",
      "tree": "1a9ad94486d9e48fcecc3b362db48e70a6b83a92",
      "parents": [
        "fce739fa4f2ec83206d8d9435aa94ce22f09cdb1"
      ],
      "author": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Wed Sep 23 14:54:07 2026 -0600"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Wed Sep 23 14:54:07 2026 -0600"
      },
      "message": "Update kernel headers\n\nUpdate kernel headers to commit:\n\t944ae66642b7: (\"tcp: remove dead code in tcp_rcv_state_process()\")\n\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "ac0b672924c8993a2da2cb9b6f97908967095a97",
      "tree": "d994de821c0c9f94f44458d77ebd08f91eeccbc5",
      "parents": [
        "e6471d772f3e15a813e6c9a81b4b7adcfad22899"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Sep 21 11:24:33 2026 -0700"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Sep 21 11:24:33 2026 -0700"
      },
      "message": "uapi: update magic.h\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "e6471d772f3e15a813e6c9a81b4b7adcfad22899",
      "tree": "9d89fbf363fc587a5c94fef8b4e37e2be7e5e8cb",
      "parents": [
        "37921dc5cc83b89548f3cc571388d97ac690c17e"
      ],
      "author": {
        "name": "Aman Sharma",
        "email": "amanrsdev@gmail.com",
        "time": "Wed Sep 16 16:27:59 2026 +0530"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Wed Sep 16 08:39:49 2026 -0700"
      },
      "message": "man: ip-route: document uid parameter for route get\n\nThe \u0027ip route get\u0027 command accepts a \u0027uid NUMBER\u0027 parameter\nto simulate route selection as if sent by a specific user.\nThis is useful for testing per-user routing policies.\n\nAdd documentation for this parameter in the \u0027ip route get\u0027\nsection of the man page, and to the SYNOPSIS.\n\nSigned-off-by: Aman Sharma \u003camanrsdev@gmail.com\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "37921dc5cc83b89548f3cc571388d97ac690c17e",
      "tree": "2b35222513cafd2c60211c820e50fa4a3528e0b8",
      "parents": [
        "873daf67da6d330b2d5778a335463a03ff30c1f2"
      ],
      "author": {
        "name": "Prijesh Patel",
        "email": "prijeshpatel.dev@gmail.com",
        "time": "Fri Sep 11 09:59:25 2026 -0400"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Sun Sep 13 23:01:14 2026 -0700"
      },
      "message": "man: ip-route: document tcp_usec_ts route feature\n\nip route supports a \"tcp_usec_ts\" per-route feature\n(RTAX_FEATURE_TCP_USEC_TS) to request microsecond-resolution TCP\ntimestamps for connections to/from a given destination, but this was\nnever added to the ip-route(8) man page or its FEATURES synopsis.\n\nDocument tcp_usec_ts alongside the existing ecn feature.\n\nSigned-off-by: Prijesh Patel \u003cprijeshpatel.dev@gmail.com\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "873daf67da6d330b2d5778a335463a03ff30c1f2",
      "tree": "dd9e03ff28df10ddbefc198ae6b16e51f27bc8bf",
      "parents": [
        "8016d5a12e6ce33faf2c469ded258ea85810d8c5"
      ],
      "author": {
        "name": "Prabhakar Pujeri",
        "email": "prabhakar.pujeri@dell.com",
        "time": "Mon Aug 31 10:40:57 2026 +0000"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Tue Sep 01 08:58:20 2026 -0700"
      },
      "message": "u32: fix IPv6 port match pretty printing\n\nparse_ip6() stores source and destination ports in the 32-bit key at\noffset 40.  print_ipv6() checks offset 20 instead, so it does not print\nthe decoded port fields.  The source and destination labels in that case\nare also reversed relative to the layout produced by pack_key16().\n\nHandle offset 40 and use the source label for the high half and the\ndestination label for the low half.  This matches the parser and the\nequivalent IPv4 printer in both text and JSON output.\n\nFixes: d13cee6d598d (\"Add IPV6 match pretty print\")\nSigned-off-by: Prabhakar Pujeri \u003cprabhakar.pujeri@dell.com\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "8016d5a12e6ce33faf2c469ded258ea85810d8c5",
      "tree": "22d2732c8964a5b776ff8f025efee75bc5fde2ad",
      "parents": [
        "e82aa16eb17ee318c57fc8d5e6484f77a49e8661"
      ],
      "author": {
        "name": "Luigi Leonardi",
        "email": "leonardi@redhat.com",
        "time": "Mon Aug 17 14:54:21 2026 +0200"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Aug 24 21:05:27 2026 -0700"
      },
      "message": "ss: fix vsock port filter\n\nparse_hostcond() initializes aafilter.port to -1L (0xFFFFFFFFFFFFFFFF)\nas a sentinel for \"no port filter\". When parsing a vsock port it called\nget_u32() via a cast:\n\n    get_u32((__u32 *)\u0026a.port, port, 0)\n\nget_u32() only writes 4 bytes, leaving the upper 32 bits of the 8-byte\nlong set from the -1 initialization. For example, for port 27354 this\nproduces 0xFFFFFFFF00006ADA, which never compares equal to sockstat.lport and\ncauses all vsock port filters to silently match nothing.\n\nFix by parsing into a temporary __u32 and assigning it to a.port, which\nzero-extends the value correctly. When the user specifies \u0027*\u0027 the if\nblock is skipped entirely and the -1 sentinel is preserved.\n\nFixes: 012cb515 (\"ss: change aafilter port from int to long (inode support)\")\nSuggested-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\nSigned-off-by: Luigi Leonardi \u003cleonardi@redhat.com\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "e82aa16eb17ee318c57fc8d5e6484f77a49e8661",
      "tree": "d794d4675869aebf8c05763be24c1ff1e6b902f3",
      "parents": [
        "4766edf1462e2438999e4584e0a3675d8ea28e6d"
      ],
      "author": {
        "name": "Luigi Leonardi",
        "email": "leonardi@redhat.com",
        "time": "Mon Aug 17 14:54:20 2026 +0200"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Aug 24 20:57:35 2026 -0700"
      },
      "message": "ss: widen sockstat lport/rport to long\n\nCommit 012cb515 (\"ss: change aafilter port from int to long (inode\nsupport)\") widened aafilter.port to long but left sockstat.lport and\nsockstat.rport as int, so values above INT_MAX are truncated on the\nsocket side and never compare equal to the filter.\n\nWiden both to long and update the sscanf specifiers in\nproc_parse_inet_addr() and unix_show().\n\nFixes: 012cb515 (\"ss: change aafilter port from int to long (inode support)\")\nSuggested-by: Stefano Garzarella \u003csgarzare@redhat.com\u003e\nSigned-off-by: Luigi Leonardi \u003cleonardi@redhat.com\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "4766edf1462e2438999e4584e0a3675d8ea28e6d",
      "tree": "8f008bac48a53b29b0e443f15bb0eec3c50ade22",
      "parents": [
        "21a61425cb9a0993e422b1d2ee2f331b66548d86"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Aug 24 09:46:34 2026 -0700"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Aug 24 09:46:34 2026 -0700"
      },
      "message": "iplink/can: fix format string warnings\n\nClang complains about non-literal format string\n\n  iplink_can.c:531:36: warning: format string is not a string literal\n        [-Wformat-nonliteral]\n    531 |                 can_print_timing_min_max(\"tdcv\", tdcv, *tdcv_min, *...\n        |                                                  ^~~~\n\nSmall change to use \"%s\" in can_print_timing_min_max.\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "21a61425cb9a0993e422b1d2ee2f331b66548d86",
      "tree": "93708dd61ab5a12d93697645b09ea5b5d12c88e5",
      "parents": [
        "5faf18f672c17eebc472ce98bef9f2692595b2d3"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Sun Aug 23 16:22:16 2026 -0700"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Sun Aug 23 16:49:17 2026 -0700"
      },
      "message": "tc/f_u32: fix const strchr() warning\n\nNewer GCC propogates const char across strchr() which\nrequires spliting temp variable.\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "5faf18f672c17eebc472ce98bef9f2692595b2d3",
      "tree": "b41277c73b445fa5201f9422155b8a98fbb65b28",
      "parents": [
        "9361f61abb6dc277772d59863dbd71d1dbd5f665"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Sun Aug 23 16:05:36 2026 -0700"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Sun Aug 23 16:49:17 2026 -0700"
      },
      "message": "lib: fix warning from ll_addr_a2n\n\nRecent versions of strchr() propogate const char *.\nThis triggers warnings about lost of const.\nResolve this by reworking the loop parsing hex values.\nThis also adds checking for garbage after the hex value.\n\nAlso:\n - arg is no longer modified\n - Trailing garbage (\"00:11:zz\", \"00:11:\") are now rejected\n - An address longer than len bytes now fails\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "9361f61abb6dc277772d59863dbd71d1dbd5f665",
      "tree": "21c37d83fdaa25a12f7096c3cae49d98a5542b96",
      "parents": [
        "c55514260cc383f40dcc9ebe2d7320c9ecb3fe11"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Sun Aug 23 16:17:58 2026 -0700"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Sun Aug 23 16:49:17 2026 -0700"
      },
      "message": "json_print: fix Gcc-17 warnings\n\nLastest version of Gcc and Clang warn about value of 2 in\nlogical operator. Example:\n warning: use of logical ‘\u0026\u0026’ with constant operand ‘2’ [-Wconstant-logical-operand]\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "c55514260cc383f40dcc9ebe2d7320c9ecb3fe11",
      "tree": "4dfcadac34ebb1d6fa3d52856296ba7c26a52c12",
      "parents": [
        "fce739fa4f2ec83206d8d9435aa94ce22f09cdb1"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Sun Aug 23 15:22:35 2026 -0700"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Sun Aug 23 16:49:11 2026 -0700"
      },
      "message": "uapi: update from 7.3 merge\n\nAuto-generated uapi headers.\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "fce739fa4f2ec83206d8d9435aa94ce22f09cdb1",
      "tree": "ee9b733c0e675c7a3806fd4a9c9f31602f00564c",
      "parents": [
        "30365d0967bd4ec993600bb8f27532061bec7413",
        "880505966c17d90243c39e446d79da6236fb06ba"
      ],
      "author": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Fri Aug 21 15:20:54 2026 -0600"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Fri Aug 21 15:20:54 2026 -0600"
      },
      "message": "Merge remote-tracking branch \u0027main\u0027 into next\n\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "30365d0967bd4ec993600bb8f27532061bec7413",
      "tree": "28950f7d8c5f86c56882299713a959895269d50b",
      "parents": [
        "9204c0f64f400714795a65da0e43b2b0c4087897"
      ],
      "author": {
        "name": "Louis Scalbert",
        "email": "louis.scalbert@6wind.com",
        "time": "Thu Aug 20 18:43:52 2026 +0200"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Fri Aug 21 15:19:28 2026 -0600"
      },
      "message": "ip/bond: add lacp_strict support\n\nlacp_strict defines the behavior of a LACP bonding interface\nwhen no slaves are in Collecting_Distributing state while at least\n\u0027min_links\u0027 slaves have carrier.\n\nIn the default (off) mode, the bonding master remains up and a\nsingle slave is selected for TX/RX, while traffic received on other\nslaves is dropped. This preserves the existing behavior.\n\nIn lacp_strict mode, the bonding master reports carrier down in this\nsituation.\n\nLink: https://lore.kernel.org/netdev/20260603150331.1919611-1-louis.scalbert@6wind.com/\nSigned-off-by: Louis Scalbert \u003clouis.scalbert@6wind.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "880505966c17d90243c39e446d79da6236fb06ba",
      "tree": "04571875601dc4e5a8e50b6a46b58e4bf14e16cd",
      "parents": [
        "da2ccdf862cb1eab45de082cc71fcb4e5d712e78"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Aug 17 19:26:23 2026 -0700"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Aug 17 19:26:23 2026 -0700"
      },
      "message": "v7.2.0\n"
    },
    {
      "commit": "da2ccdf862cb1eab45de082cc71fcb4e5d712e78",
      "tree": "c822a724f3a2d2cb8ca93b2329358ee90d02c2e2",
      "parents": [
        "7385bcedf313c1e2edfc1e17c0a3659e2f137d7d"
      ],
      "author": {
        "name": "Asbjørn Sloth Tønnesen",
        "email": "ast@fiberby.net",
        "time": "Wed Aug 12 17:38:55 2026 +0000"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Wed Aug 12 18:37:56 2026 -0700"
      },
      "message": "man/ip-ntable: fix app_probes typo\n\n\"app_probs\" should obviously have been \"app_probes\".\n\nSigned-off-by: Asbjørn Sloth Tønnesen \u003cast@fiberby.net\u003e\n"
    },
    {
      "commit": "7385bcedf313c1e2edfc1e17c0a3659e2f137d7d",
      "tree": "9a984bf3228913fea5128cf00c65dfdfacca4e5d",
      "parents": [
        "faceb3260ab264402ac7515538f1bb73179f6b08"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Wed Aug 05 08:44:36 2026 -0700"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Wed Aug 05 08:44:36 2026 -0700"
      },
      "message": "SECURITY: add threat model\n\nAdd some new paragraphs to the SECURITY file describing the\nthreat model. This may help reduce bogus security vulnerability\nreports generated by AI.\n\nThis text is AI generated mostly for AI consumption.\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "9204c0f64f400714795a65da0e43b2b0c4087897",
      "tree": "5fe45c2480551bff83f5be5510a53bf7d1d831e4",
      "parents": [
        "ad2b2d95fd1149abeb50727474a3e597372fcc6f",
        "5696fee4c69fe3cc12e8cc821630633f616db8e2"
      ],
      "author": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Mon Aug 03 12:07:30 2026 -0600"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Mon Aug 03 12:07:30 2026 -0600"
      },
      "message": "Merge remote-tracking branch \u0027main\u0027 into next\n\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "ad2b2d95fd1149abeb50727474a3e597372fcc6f",
      "tree": "5241c55cfdb35e1ff46e8631858826fbc05017f1",
      "parents": [
        "68f2b2cc05d366d83de229a7302ad7e6eac1a2e2"
      ],
      "author": {
        "name": "Jack Ma",
        "email": "jack4it@gmail.com",
        "time": "Thu Jul 23 01:25:08 2026 +0000"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Mon Aug 03 12:05:46 2026 -0600"
      },
      "message": "ip nexthop: support fdb destination port\n\nThe kernel gained NHA_DST_PORT, an optional per-nexthop UDP destination\nport for fdb nexthops.  VXLAN uses it to reach several receivers that\nshare an underlay IP but listen on different ports, load-balancing a\nflow across (IP, port) legs of one nexthop group.\n\nWire it into `ip nexthop`:\n\n  ip nexthop add id 1 via 192.0.2.1 fdb dst_port 4790\n\nThe port is parsed on add (sent as NHA_DST_PORT, __be16, network order)\nand printed back on dump/get.  The kernel only accepts it together with\nfdb and a gateway.\n\nSigned-off-by: Jack Ma \u003cjack4it@gmail.com\u003e\nReviewed-by: Ido Schimmel \u003cidosch@nvidia.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "68f2b2cc05d366d83de229a7302ad7e6eac1a2e2",
      "tree": "3fa3562427b248706a806d62a6bb30cfc30b3e0b",
      "parents": [
        "b8cdda55904b70eef1f66da17a231e2e1ba379e0"
      ],
      "author": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Mon Aug 03 12:05:21 2026 -0600"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Mon Aug 03 12:05:21 2026 -0600"
      },
      "message": "Update kernel headers\n\nUpdate kernel headers to commit:\n\t69963a0678a3: (\"Merge branch \u0027add-support-for-rtl8261c-d\u0027\")\n\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "faceb3260ab264402ac7515538f1bb73179f6b08",
      "tree": "b1c18dd34ebd693c5670cd61b74499f866103040",
      "parents": [
        "5696fee4c69fe3cc12e8cc821630633f616db8e2"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Tue Jul 28 14:31:22 2026 -0700"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Tue Jul 28 14:31:22 2026 -0700"
      },
      "message": "ip: drop unnecessary fallback to ioctl for tx queue length\n\nKernel has been reporting TxQ length with netlink since\nthe 2.5 so the ioctl path is dead code.\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "5696fee4c69fe3cc12e8cc821630633f616db8e2",
      "tree": "3d3124c135d4381bb6dc29f24a54711bcceb0256",
      "parents": [
        "ee2a4a86625688d8c2b468ec15d7ae35a4f5717f"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Thu Jul 23 18:38:59 2026 +0000"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Jul 27 11:10:27 2026 -0700"
      },
      "message": "add print_hexstring helper\n\nhexstring_n2a() writes into a caller-supplied buffer and silently\ntruncates when it is too small: the loop stops once fewer than three\nbytes remain and returns the partial string. Callers using a fixed\nSPRINT_BUF therefore drop trailing bytes for keys wider than 31 bytes.\n\nAdd a new function print_hexstring() that formats and prints a binary\nattribute in one call.\n\nConvert the callers that dump a binary attribute straight to output\nover to print_hexstring().\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\nReported-by: Gris Ge \u003ccnfourt@gmail.com\u003e\n"
    },
    {
      "commit": "b8cdda55904b70eef1f66da17a231e2e1ba379e0",
      "tree": "a9979af0dc6c1e7537b689a5e5f83abe0c07d983",
      "parents": [
        "ce0464ea123844bfffa74e524fd5527420da13ee"
      ],
      "author": {
        "name": "Yuyang Huang",
        "email": "sigefriedhyy@gmail.com",
        "time": "Sat Jul 18 15:48:00 2026 +0900"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Wed Jul 22 16:56:32 2026 -0600"
      },
      "message": "ipmaddr: use RTM_GETMULTICAST to list multicast addresses\n\nReplace /proc/net/igmp and /proc/net/igmp6 parsing in \"ip maddr show\"\nwith RTM_GETMULTICAST dumps. The kernel dumps IPv6 multicast addresses\nvia netlink since the beginning, IPv4 since v6.15 (eb4e17a1d915), and\nreports the group users count via IFA_MC_USERS since kernel commits\n7cb8198761e6 and e1d0f3f08391.\n\nThe netlink result is only used when it carries the same information\nas procfs: if the dump fails (e.g. no IPv4 dump support) or any entry\nlacks IFA_MC_USERS, the result is discarded and the procfs parsers\nrun as before, so output is unchanged on older kernels.\n\nLink-layer multicast addresses are still read from\n/proc/net/dev_mcast as there is no netlink API for them.\n\nWhen a device is given, its ifindex is passed in the dump request so\nstrict-check kernels filter the dump server side; received entries\nare checked against the ifindex again for kernels that ignore the\nrequest field. An unknown device keeps printing an empty list.\n\nSigned-off-by: Yuyang Huang \u003csigefriedhyy@gmail.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "ce0464ea123844bfffa74e524fd5527420da13ee",
      "tree": "853b2e258ca446b16edff886f6ab9c61a73530df",
      "parents": [
        "144c45b656ad1b9f128f490d158b61ddfbac4908"
      ],
      "author": {
        "name": "Andrea Mayer",
        "email": "andrea.mayer@uniroma2.it",
        "time": "Sun Jul 12 04:11:55 2026 +0200"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Wed Jul 22 16:55:07 2026 -0600"
      },
      "message": "seg6: man: document the lookup attribute for SRv6 encap routes\n\nDocument the new optional \"lookup\" attribute for seg6 encap routes. It\nselects the FIB table for the post-encap SID route lookup and accepts a\ntable number or a table name.\n\nSigned-off-by: Andrea Mayer \u003candrea.mayer@uniroma2.it\u003e\nReviewed-by: Nicolas Dichtel \u003cnicolas.dichtel@6wind.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "144c45b656ad1b9f128f490d158b61ddfbac4908",
      "tree": "c46c552f057c5d73f9f31ff4bfc4d1b8aa1cb8d6",
      "parents": [
        "9b464a11979d89da380f5453bd80535969864993"
      ],
      "author": {
        "name": "Andrea Mayer",
        "email": "andrea.mayer@uniroma2.it",
        "time": "Sun Jul 12 04:11:54 2026 +0200"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Wed Jul 22 16:55:02 2026 -0600"
      },
      "message": "seg6: add support for lookup attribute in SRv6 encap routes\n\nAdd support for the new optional \"lookup\" attribute for seg6 encap\nroutes. It selects the FIB table for the post-encap SID route lookup\nand accepts a table number or a table name.\n\nExamples:\n\n  # SID route installed in the underlay table 500\n  ip -6 route add fc00::100/128 via fd00::1 dev veth0 table 500\n\n  # encap route in vrf-100; the first SID is looked up in table 500\n  ip -6 route add cafe::1/128 vrf vrf-100 \\\n      encap seg6 mode encap segs fc00::100 lookup 500 dev veth0\n\n  # or if the SID is already handled by the main table\n  ip -6 route add cafe::1/128 vrf vrf-100 \\\n      encap seg6 mode encap segs fc00::100 lookup main dev veth0\n\nWhen the attribute is omitted, the post-encap SID route lookup behaves\nas before, using the current routing context (e.g. the tables selected\naccording to the routing policy database).\n\nSigned-off-by: Andrea Mayer \u003candrea.mayer@uniroma2.it\u003e\nReviewed-by: Nicolas Dichtel \u003cnicolas.dichtel@6wind.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "9b464a11979d89da380f5453bd80535969864993",
      "tree": "fc4fd3ca2f5f17ebd376832733ead3cf21fd2499",
      "parents": [
        "35a237091c24858cac6c6679175bb6a628cbe400"
      ],
      "author": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Wed Jul 22 16:54:30 2026 -0600"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Wed Jul 22 16:54:30 2026 -0600"
      },
      "message": "Update kernel headers\n\nUpdate kernel headers to commit:\n\t1df10cef2d1e: (\"net: sxgbe: fix null pointer dereference in probe error path\")\n\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "35a237091c24858cac6c6679175bb6a628cbe400",
      "tree": "6f61fdac60675b46b29bec93065f8f0f5cd704b0",
      "parents": [
        "39eb3a40d967b2111369001342f733e0b0f52d8c"
      ],
      "author": {
        "name": "Tao Cui",
        "email": "cuitao@kylinos.cn",
        "time": "Thu Jul 16 19:52:37 2026 +0800"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Thu Jul 16 14:41:02 2026 -0600"
      },
      "message": "rdma: display resource limits in curr/max format\n\nParse the new RDMA_NLDEV_ATTR_RES_SUMMARY_ENTRY_MAX netlink attribute\nto show resource limits alongside current counts in curr/max format:\n\n  Before: 0: mlx5_0: qp 123  cq 45  mr 200  pd 10\n  After:  0: mlx5_0: qp 123/131072  cq 45/65536  mr 200/1000000  pd 10/32768\n\nJSON output provides separate \u003cname\u003e and \u003cname\u003e-max fields per resource\ntype, so scripts can compute usage against the device limit; resources\nwithout an upper bound (e.g. cm_id, ctx) are reported without a -max\nfield:\n\n  $ rdma resource show -j\n  [{\n      \"ifindex\": 0,\n      \"ifname\": \"mlx5_0\",\n      \"qp\": 123, \"qp-max\": 131072,\n      \"cq\": 45, \"cq-max\": 65536,\n      \"mr\": 200, \"mr-max\": 1000000,\n      \"pd\": 10, \"pd-max\": 32768,\n      \"cm_id\": 0, \"ctx\": 0\n  }]\n\nBackward compatible: no output change when the kernel lacks the new\nattribute.\n\nSigned-off-by: Tao Cui \u003ccuitao@kylinos.cn\u003e\nLink: https://lore.kernel.org/all/20260615003646.168704-1-cui.tao@linux.dev/\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "39eb3a40d967b2111369001342f733e0b0f52d8c",
      "tree": "c6fff58016e2844645522a8c978df13927a2f1dd",
      "parents": [
        "20e860c632e314a9e985f8a549ff962c1cfcaf98"
      ],
      "author": {
        "name": "Tao Cui",
        "email": "cuitao@kylinos.cn",
        "time": "Thu Jul 16 19:52:36 2026 +0800"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Thu Jul 16 14:41:02 2026 -0600"
      },
      "message": "rdma: update uapi headers\n\nUpdate rdma_netlink.h file upto kernel commit 5911f6d6e7cc\n(\"RDMA/nldev: Add resource summary max values for usage display\")\n\nSigned-off-by: Tao Cui \u003ccuitao@kylinos.cn\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "20e860c632e314a9e985f8a549ff962c1cfcaf98",
      "tree": "ca31668358da641140962789ea1896215a573321",
      "parents": [
        "37c491d82cebef070173878e167076a1956dcd92"
      ],
      "author": {
        "name": "Ivan Vecera",
        "email": "ivecera@redhat.com",
        "time": "Mon Jul 13 11:21:19 2026 +0200"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Wed Jul 15 09:12:45 2026 -0600"
      },
      "message": "ip: display DPLL pin information in link details\n\nParse the IFLA_DPLL_PIN nested attribute and display the associated\nDPLL pin ID in \u0027ip link show\u0027 detail output. This allows users to see\nwhich DPLL recovered clock pin is associated with a network interface\nwithout having to cross-reference with \u0027dpll pin show\u0027.\n\nExample output:\n  $ ip -d link show eth0\n  ... parentbus pci parentdev 0000:51:00.0 dpll-pin 4\n\nSigned-off-by: Ivan Vecera \u003civecera@redhat.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "37c491d82cebef070173878e167076a1956dcd92",
      "tree": "f90b6e62b49e7085bf1093fab379cfe67e40f4fc",
      "parents": [
        "32e2a8832a53059cb249825215f302b883e4007a"
      ],
      "author": {
        "name": "Ratheesh Kannoth",
        "email": "rkannoth@marvell.com",
        "time": "Thu Jul 09 09:20:16 2026 +0530"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Thu Jul 09 08:39:30 2026 -0600"
      },
      "message": "devlink: support u64-array values in devlink param show/set\n\nAdd support for DEVLINK_VAR_ATTR_TYPE_U64_ARRAY parameters that carry\nmultiple DEVLINK_ATTR_PARAM_VALUE_DATA attributes. Parse and display\nu64 array values in param show, and accept space- or comma-separated\nu64 values in devlink and port param set commands.\n\n- Show search order\n\ndevlink -jp dev param show pci/0002:01:00.0 name npc_srch_order\n{\n    \"param\": {\n        \"pci/0002:01:00.0\": [ {\n                \"name\": \"npc_srch_order\",\n                \"type\": \"driver-specific\",\n                \"values\": [ {\n                        \"cmode\": \"runtime\",\n                        \"value\": [ 15,17,14,18,13,19,12,20,11,21,10,22,9,23,8,24,7,25,6,26,5,27,4,28,3,29,2,30,1,31,0,16 ]\n                    } ]\n            } ]\n    }\n}\n\ndevlink dev param show pci/0002:01:00.0 name npc_srch_order\npci/0002:01:00.0:\n  name npc_srch_order type driver-specific\n    values:\n      cmode runtime value 15 17 14 18 13 19 12 20 11 21 10 22 9 23 8 24 7 25 6 26 5 27 4 28 3 29 2 30 1 31 0 16\n\n- Set search order\n\ndevlink dev param set pci/0002:01:00.0 name npc_srch_order value 31,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,\\\n                22,23,24,25,26,27,28,29,30 cmode runtime\n\nSigned-off-by: Ratheesh Kannoth \u003crkannoth@marvell.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "32e2a8832a53059cb249825215f302b883e4007a",
      "tree": "4b26d50e2d938427ce0c1a8a79f065a6a4d41c5e",
      "parents": [
        "41b13849fcd17b4035aa6fc242c2c664b100323e"
      ],
      "author": {
        "name": "Ratheesh Kannoth",
        "email": "rkannoth@marvell.com",
        "time": "Thu Jul 09 09:20:15 2026 +0530"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Thu Jul 09 08:39:21 2026 -0600"
      },
      "message": "devlink: use DEVLINK_VAR_ATTR_TYPE_* in param show/set\n\nReplace MNL_TYPE_* constants with DEVLINK_VAR_ATTR_TYPE_* when\nhandling DEVLINK_ATTR_PARAM_TYPE in param value display and set\npaths. The kernel uAPI now exposes these values directly via\ndevlink_var_attr_type.\n\nSigned-off-by: Ratheesh Kannoth \u003crkannoth@marvell.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "41b13849fcd17b4035aa6fc242c2c664b100323e",
      "tree": "79d86ead931489ab29fea190d4b4b646a6a82200",
      "parents": [
        "3c0b939e88e440a3059944f84e05f34fe67c571f"
      ],
      "author": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Thu Jul 09 08:38:28 2026 -0600"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Thu Jul 09 08:38:28 2026 -0600"
      },
      "message": "Update kernel headers\n\nUpdate kernel headers to commit:\n\tfe3e786ef4eb: (\"selftests: drv-net: rss_ctx: Add retries to test_rss_context_overlap to reduce flakes\")\n\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "3c0b939e88e440a3059944f84e05f34fe67c571f",
      "tree": "d2e31d87e7b87656559f29c59ddbd9d3c41ed58d",
      "parents": [
        "92f89d0e66b2a2a889c39cd6d0846b95e61e9a87"
      ],
      "author": {
        "name": "Yafang Shao",
        "email": "laoar.shao@gmail.com",
        "time": "Wed Jul 01 10:50:05 2026 +0800"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Thu Jul 09 08:31:36 2026 -0600"
      },
      "message": "ss: stop displaying dccp sockets\n\nDCCP support was retired in kernel commit 2a63dd0edf38 (\"net: Retire\nDCCP socket.\"). However, ss still attempts to query DCCP sockets via\nnetlink, which triggers repeated SELinux warnings in dmesg:\n\n  SELinux: unrecognized netlink message: protocol\u003d4 nlmsg_type\u003d19 \\\n    sclass\u003dnetlink_tcpdiag_socket pid\u003d188945 comm\u003dss\n\nStop sending DCCPDIAG_GETSOCK netlink messages to suppress these\nwarnings and align ss with the kernel change.\n\nAfter this commit, running `ss -d` fails with:\n\n  # ./misc/ss -d\n  ./misc/ss: invalid option -- \u0027d\u0027\n  [...]\n\n  # ./misc/ss --dccp\n  ./misc/ss: unrecognized option \u0027--dccp\u0027\n  [...]\n\nSigned-off-by: Yafang Shao \u003claoar.shao@gmail.com\u003e\nCc: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\nCc: Kuniyuki Iwashima \u003ckuniyu@google.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "92f89d0e66b2a2a889c39cd6d0846b95e61e9a87",
      "tree": "44ba088f2d64a8ca6a0fdb6e7b5e4f448ab22270",
      "parents": [
        "2c8846a613f1f4d633c2553d5d0f370a53dea4dc"
      ],
      "author": {
        "name": "Marco Baffo",
        "email": "marco@mandelbit.com",
        "time": "Thu Jul 09 12:28:19 2026 +0200"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Thu Jul 09 08:30:11 2026 -0600"
      },
      "message": "ip: add OVPN device mode support\n\novpn devices (OpenVPN data channel offload, kernel v6.16) can already\nbe created with \"ip link add ovpn0 type ovpn\", but the mode is always\nleft to the kernel default (p2p mode).\n\nAdd ovpn link type support so that point-to-point (p2p) or multi-peer\n(mp) mode can be selected at creation time and shown by\n\"ip -d link show\".\n\nExample:\n\n  $ ip link add ovpn0 type ovpn mode mp\n\nSigned-off-by: Marco Baffo \u003cmarco@mandelbit.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "ee2a4a86625688d8c2b468ec15d7ae35a4f5717f",
      "tree": "76680f6471b6ab2e11a36c71c7a83b2aed4ac3f4",
      "parents": [
        "66d16c41058218baac53b834bed680388ac20992"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Sun Jun 28 14:52:07 2026 -0700"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Sun Jun 28 14:57:57 2026 -0700"
      },
      "message": "man: fix troff warnings and whitespace\n\nFix troff warnings about line breaks around URL\u0027s.\nRemove unnecessary whitespace at end of line.\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "66d16c41058218baac53b834bed680388ac20992",
      "tree": "d4b864c16e9041e292a4dbc993980b423de799d8",
      "parents": [
        "db4d810dbf851f472a45cf939e88d45d62aae201"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Sun Jun 28 13:46:50 2026 -0700"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Sun Jun 28 13:46:50 2026 -0700"
      },
      "message": "bridge: whitespace cleanup\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "db4d810dbf851f472a45cf939e88d45d62aae201",
      "tree": "ccc189fe090be1fbc0cb99bf45518773bb59d078",
      "parents": [
        "328ba79f864fb90f9f77ec73b14239b18c22b2f6"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Sun Jun 28 13:46:07 2026 -0700"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Sun Jun 28 13:46:07 2026 -0700"
      },
      "message": "CREDITS: remove trailing whitespace\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "328ba79f864fb90f9f77ec73b14239b18c22b2f6",
      "tree": "5da017f9467eeeceb72ae5a12fb31ca325d2421a",
      "parents": [
        "c2e67ec8fce49815565c92a8d6c523aead933f74"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Sun Jun 28 13:45:44 2026 -0700"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Sun Jun 28 13:45:44 2026 -0700"
      },
      "message": ".mailmap: remove trailing whitespace\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "c2e67ec8fce49815565c92a8d6c523aead933f74",
      "tree": "0226a9e58ac284defd06fa4e73c5ea3cffb2727c",
      "parents": [
        "2c8846a613f1f4d633c2553d5d0f370a53dea4dc"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Sun Jun 28 13:42:43 2026 -0700"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Sun Jun 28 13:44:37 2026 -0700"
      },
      "message": "uapi: update headers from 7.2-pre-rc1\n\nUpdate kernel headers including some of the changes for ATM cleanups.\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "2c8846a613f1f4d633c2553d5d0f370a53dea4dc",
      "tree": "8974d2a735c9bee7ade5c4b92bd5b191387b1202",
      "parents": [
        "eab9dbb9f9633d69ffa4c91444859d0998e07446",
        "d7d8203844bad5f9d8a6f3708c9b39141369aa51"
      ],
      "author": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Sun Jun 28 11:31:59 2026 -0600"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Sun Jun 28 11:31:59 2026 -0600"
      },
      "message": "Merge remote-tracking branch \u0027main\u0027 into next\n\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "eab9dbb9f9633d69ffa4c91444859d0998e07446",
      "tree": "d2f449295603768668603458d1dc25ddbf95c63a",
      "parents": [
        "c9a9f12aa619288fd3d4e16bc4b3c73b655a4efe",
        "a310a48e9f0aced6079f1dbb55d9c22c84bd414e"
      ],
      "author": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Sun Jun 28 11:13:03 2026 -0600"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Sun Jun 28 11:13:03 2026 -0600"
      },
      "message": "Merge branch \u0027devlink-per-port-res\u0027 into next\n\nTariq Toukan  says:\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nCurrently, devlink resource show only supports querying a specific\ndevice and displays device-level resources. However, some resources\nare per-port, such as the maximum number of SFs that can be created\non a specific PF port.\n\nThis series extends devlink resource show with full support for\nport-level resources, including a dump mode, per-port querying syntax,\nand scope filtering. In preparation for these features, the first two\npatches refactor how dpipe tables are handled to unblock dump support\nand ensure errors in secondary queries are non-fatal.\n\nThe series is organized as follows:\n\nPatch 1 splits the dpipe tables display into a separate function.\n\nPatch 2 moves the dpipe tables query into the per-device resource show\ncallback, ensuring it behaves correctly during a multi-device dump.\n\nPatch 3 fixes a pre-existing memory leak in resource_ctx_fini.\n\nPatch 4 adds dump support to resource show (no device required).\n\nPatch 5 shows port-level resources returned in a dump reply.\n\nPatch 6 adds DEV/PORT_INDEX syntax to resource show.\n\nPatch 7 adds scope filter to resource show.\n\nWith this series, users can query resources at all levels:\n\n$ devlink resource show\npci/0000:03:00.0:\n  name local_max_SFs size 508 unit entry\n  name external_max_SFs size 508 unit entry\npci/0000:03:00.0/196608:\n  name max_SFs size 20 unit entry\n\n$ devlink resource show scope dev\npci/0000:03:00.0:\n  name local_max_SFs size 508 unit entry\n  name external_max_SFs size 508 unit entry\n\n$ devlink resource show scope port\npci/0000:03:00.0/196608:\n  name max_SFs size 20 unit entry\n\n$ devlink resource show pci/0000:03:00.0/196608\npci/0000:03:00.0/196608:\n  name max_SFs size 20 unit entry\n\nThis series is the userspace counterpart to the kernel series:\nhttps://lore.kernel.org/all/20260407194107.148063-1-tariqt@nvidia.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": "a310a48e9f0aced6079f1dbb55d9c22c84bd414e",
      "tree": "d2f449295603768668603458d1dc25ddbf95c63a",
      "parents": [
        "c1acbee7c107d30d39999a96d11f05e0c927e14f"
      ],
      "author": {
        "name": "Or Har-Toov",
        "email": "ohartoov@nvidia.com",
        "time": "Tue Jun 09 08:39:53 2026 +0300"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Sun Jun 28 11:12:40 2026 -0600"
      },
      "message": "devlink: add scope filter to resource show\n\nAdd optional \u0027scope { dev | port }\u0027 argument to \u0027devlink resource show\u0027\nwithout a device handle to filter the full dump to device-level or\nport-level resources only.\n\nExample - dump only device-level resources:\n\n  $ devlink resource show scope dev\n  pci/0000:03:00.0:\n    name max_local_SFs size 128 unit entry dpipe_tables none\n    name max_external_SFs size 128 unit entry dpipe_tables none\n  pci/0000:03:00.1:\n    name max_local_SFs size 128 unit entry dpipe_tables none\n    name max_external_SFs size 128 unit entry dpipe_tables none\n\nExample - dump only port-level resources:\n\n  $ devlink resource show scope port\n  pci/0000:03:00.0/196608:\n    name max_SFs size 128 unit entry dpipe_tables none\n  pci/0000:03:00.0/196609:\n    name max_SFs size 128 unit entry dpipe_tables none\n  pci/0000:03:00.1/196708:\n    name max_SFs size 128 unit entry dpipe_tables none\n  pci/0000:03:00.1/196709:\n    name max_SFs size 128 unit entry dpipe_tables none\n\nSigned-off-by: Or Har-Toov \u003cohartoov@nvidia.com\u003e\nSigned-off-by: Tariq Toukan \u003ctariqt@nvidia.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "c1acbee7c107d30d39999a96d11f05e0c927e14f",
      "tree": "eae0fc305668575f2a598602db08eebcbc01a75b",
      "parents": [
        "222f7ea8f440d9bceed1eaa2ae6bc2698c0e1edc"
      ],
      "author": {
        "name": "Or Har-Toov",
        "email": "ohartoov@nvidia.com",
        "time": "Tue Jun 09 08:39:52 2026 +0300"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Sun Jun 28 11:12:40 2026 -0600"
      },
      "message": "devlink: add per-port resource show support\n\nExtend \u0027devlink resource show\u0027 to accept DEV/PORT_INDEX, sending\nDEVLINK_ATTR_PORT_INDEX to the kernel so it returns only that port\u0027s\nresources directly.\n\nFor example:\n\n$ devlink resource show pci/0000:03:00.0/196608\npci/0000:03:00.0/196608:\n  name max_SFs size 128 unit entry dpipe_tables none\n\nSigned-off-by: Or Har-Toov \u003cohartoov@nvidia.com\u003e\nSigned-off-by: Tariq Toukan \u003ctariqt@nvidia.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "222f7ea8f440d9bceed1eaa2ae6bc2698c0e1edc",
      "tree": "f7e7b070ff43afcdd98cfc3e38f85d22c871ad10",
      "parents": [
        "56e4ed9c0355c26cf00fb9f0d853c75f0aa07323"
      ],
      "author": {
        "name": "Or Har-Toov",
        "email": "ohartoov@nvidia.com",
        "time": "Tue Jun 09 08:39:51 2026 +0300"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Sun Jun 28 11:12:40 2026 -0600"
      },
      "message": "devlink: show port resources in resource dump\n\nWhen the kernel returns port-level resource messages during a\nDEVLINK_CMD_RESOURCE_DUMP, display them alongside device-level\nresources.\n\nFor example:\n\n$ devlink resource show\npci/0000:03:00.0:\n  name max_local_SFs size 32 unit entry dpipe_tables none\n  name max_external_SFs size 32 unit entry dpipe_tables none\npci/0000:03:00.0/196608:\n  name max_SFs size 32 unit entry dpipe_tables none\npci/0000:03:00.1:\n  name max_local_SFs size 32 unit entry dpipe_tables none\n  name max_external_SFs size 32 unit entry dpipe_tables none\npci/0000:03:00.1/262144:\n  name max_SFs size 32 unit entry dpipe_tables none\n\nSigned-off-by: Or Har-Toov \u003cohartoov@nvidia.com\u003e\nSigned-off-by: Tariq Toukan \u003ctariqt@nvidia.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "56e4ed9c0355c26cf00fb9f0d853c75f0aa07323",
      "tree": "d786122bfff4f0d42323eb2277511861761952b2",
      "parents": [
        "385193da341602aa2d946ff9a41e22fafe906e5e"
      ],
      "author": {
        "name": "Or Har-Toov",
        "email": "ohartoov@nvidia.com",
        "time": "Tue Jun 09 08:39:50 2026 +0300"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Sun Jun 28 11:12:40 2026 -0600"
      },
      "message": "devlink: add dump support for resource show\n\nAllow \u0027devlink resource show\u0027 without specifying a device to dump\nresources from all devlink devices.\n\nSigned-off-by: Or Har-Toov \u003cohartoov@nvidia.com\u003e\nSigned-off-by: Tariq Toukan \u003ctariqt@nvidia.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "385193da341602aa2d946ff9a41e22fafe906e5e",
      "tree": "ef66c80a49e4d4b99c85dabd2f7ab3df7bacc4c4",
      "parents": [
        "3d6b4b014f69bc21100586a7c4370a43e99e4f60"
      ],
      "author": {
        "name": "Or Har-Toov",
        "email": "ohartoov@nvidia.com",
        "time": "Tue Jun 09 08:39:49 2026 +0300"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Sun Jun 28 11:12:40 2026 -0600"
      },
      "message": "devlink: fix memory leak in resource_ctx_fini\n\nresource_ctx_init() allocates ctx-\u003eresources via resources_alloc()\nwhich calls calloc(). resource_ctx_fini() calls resources_free() to\nfree the list items inside the struct, but never frees the struct\nitself.\n\nSigned-off-by: Or Har-Toov \u003cohartoov@nvidia.com\u003e\nSigned-off-by: Tariq Toukan \u003ctariqt@nvidia.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "3d6b4b014f69bc21100586a7c4370a43e99e4f60",
      "tree": "cf75cc391677061927718813aa2cd55ee444921f",
      "parents": [
        "0e9d87537b62d6f816f6468f7d586a9c5785672e"
      ],
      "author": {
        "name": "Ido Schimmel",
        "email": "idosch@nvidia.com",
        "time": "Tue Jun 09 08:39:48 2026 +0300"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Sun Jun 28 11:12:40 2026 -0600"
      },
      "message": "devlink: Move dpipe tables query to resources show callback\n\nAs previously explained, as part of showing device resources, devlink\nqueries the device\u0027s dpipe tables so that it will be able to show the\nassociation between resources and dpipe tables.\n\nCurrently, the dpipe tables are queried before the device resources.\nThis will become a problem when devlink is extended to support dumping\nthe resources of all available devices.\n\nTherefore, in preparation for resource dump support, move the querying\nof the device\u0027s dpipe tables to the resources show callback which is\ninvoked per-device.\n\nThere is no difference in the output of the resource show command, but\none functional difference is that errors in dpipe tables query are not\nconsidered fatal. This seems reasonable given that errors are unlikely\nand that displaying the dpipe tables is secondary to showing the device\nresources.\n\nReviewed-by: Petr Machata \u003cpetrm@nvidia.com\u003e\nReviewed-by: Jiri Pirko \u003cjiri@nvidia.com\u003e\nSigned-off-by: Ido Schimmel \u003cidosch@nvidia.com\u003e\nSigned-off-by: Tariq Toukan \u003ctariqt@nvidia.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "0e9d87537b62d6f816f6468f7d586a9c5785672e",
      "tree": "1e4c4fe0c769ca9a045e3c9efe390fa81fd37a8b",
      "parents": [
        "c9a9f12aa619288fd3d4e16bc4b3c73b655a4efe"
      ],
      "author": {
        "name": "Ido Schimmel",
        "email": "idosch@nvidia.com",
        "time": "Tue Jun 09 08:39:47 2026 +0300"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Sun Jun 28 11:12:40 2026 -0600"
      },
      "message": "devlink: Split dpipe tables output to a separate function\n\nAs part of showing device resources, devlink also iterates over\navailable dpipe tables and shows the associated tables, if any.\n\nA subsequent patch will show the device resources even if we failed to\nretrieve the dpipe tables. In preparation for this change, split the\nfunctionality of showing the associated dpipe tables into a separate\nfunction.\n\nNo functional changes intended.\n\nReviewed-by: Petr Machata \u003cpetrm@nvidia.com\u003e\nReviewed-by: Jiri Pirko \u003cjiri@nvidia.com\u003e\nSigned-off-by: Ido Schimmel \u003cidosch@nvidia.com\u003e\nSigned-off-by: Tariq Toukan \u003ctariqt@nvidia.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "d7d8203844bad5f9d8a6f3708c9b39141369aa51",
      "tree": "c632640d4143ab4bc0c9cac43bc64953fb833ac7",
      "parents": [
        "62d47c2dbc0eaecdd20c0e19406067488025e92e"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Jun 15 15:50:05 2026 -0700"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Jun 15 15:50:05 2026 -0700"
      },
      "message": "v7.1.0\n"
    },
    {
      "commit": "c9a9f12aa619288fd3d4e16bc4b3c73b655a4efe",
      "tree": "6991a50632a4dc919e33ed2d60a0d4be3fb508ff",
      "parents": [
        "7340b539841dc739bc0b813e8e86825bc1eb5a4c"
      ],
      "author": {
        "name": "Kuniyuki Iwashima",
        "email": "kuniyu@google.com",
        "time": "Mon Jun 08 03:16:58 2026 +0000"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Thu Jun 11 12:59:06 2026 -0600"
      },
      "message": "iplink_geneve: Support IFLA_GENEVE_LOCAL and IFLA_GENEVE_LOCAL6.\n\nIFLA_GENEVE_LOCAL and IFLA_GENEVE_LOCAL6 allow specifying a local\nIPv4/IPv6 address for the backend UDP socket of a GENEVE devcie.\n\nLet\u0027s support the attributes with the \"local\" keyword.\n\n  # for i in $(seq 1 2);\n  do\n          ip link add geneve4_${i} type geneve local 192.168.0.${i} external\n          ip addr add 192.168.0.${i}/24 dev geneve4_${i}\n          ip link set geneve4_${i} up\n\n          ip link add geneve6_${i} type geneve local 2001:9292::${i} external\n          ip addr add 2001:9292::${i}/64 dev geneve6_${i} nodad\n          ip link set geneve6_${i} up\n  done\n\n  # ip -d l | grep geneve\n  9: geneve4_1: \u003cBROADCAST,MULTICAST,UP,LOWER_UP\u003e ...\n      geneve external id 0 local 192.168.0.1 ...\n  10: geneve6_1: \u003cBROADCAST,MULTICAST,UP,LOWER_UP\u003e ...\n      geneve external id 0 local 2001:9292::1 ...\n  11: geneve4_2: \u003cBROADCAST,MULTICAST,UP,LOWER_UP\u003e ...\n      geneve external id 0 local 192.168.0.2 ...\n  12: geneve6_2: \u003cBROADCAST,MULTICAST,UP,LOWER_UP\u003e ...\n      geneve external id 0 local 2001:9292::2 ...\n\n  # ss -ua | grep geneve\n  UNCONN 0      0         192.168.0.2:geneve      0.0.0.0:*\n  UNCONN 0      0         192.168.0.1:geneve      0.0.0.0:*\n  UNCONN 0      0      [2001:9292::2]:geneve            *:*\n  UNCONN 0      0      [2001:9292::1]:geneve            *:*\n\nNote that kernel dumps the wildcard address if the device created\nwith IFLA_GENEVE_COLLECT_METADATA is not dualstack.\n\nSigned-off-by: Kuniyuki Iwashima \u003ckuniyu@google.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "7340b539841dc739bc0b813e8e86825bc1eb5a4c",
      "tree": "5774addbd56a8d2e7dbfa0e2295c6e58db99a4fc",
      "parents": [
        "6592993853c0482733445a952a5b2a73835444a0"
      ],
      "author": {
        "name": "Fernando Fernandez Mancera",
        "email": "fmancera@suse.de",
        "time": "Sun Jun 07 08:57:15 2026 +0200"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Sun Jun 07 07:45:23 2026 -0600"
      },
      "message": "iplink: set NLA_F_NESTED for IPv4 devconf attributes\n\nIn order to use set multiple IPv4 devconf parameters at once,\nNLA_F_NESTED flag is required.\n\nip link set dev enp8s0 inet forwarding on proxy_arp off\n\nFixes: fdb064bf64e5 (\"iplink: add support for setting IPv4 devconf parameters\")\nSigned-off-by: Fernando Fernandez Mancera \u003cfmancera@suse.de\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "6592993853c0482733445a952a5b2a73835444a0",
      "tree": "5bffecef9bbdf7c388b0c618a6580a3f9a854e92",
      "parents": [
        "e942438fd7ed1651bc6ad3db2806677436a0d1bd"
      ],
      "author": {
        "name": "Fernando Fernandez Mancera",
        "email": "fmancera@suse.de",
        "time": "Sun Jun 07 08:57:14 2026 +0200"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Sun Jun 07 07:45:23 2026 -0600"
      },
      "message": "man: iplink: fix indentation level after inet parameter\n\nThe indentation for inet block opens with +8 but closes with -10. Fix\nthe imbalance.\n\nFixes: fdb064bf64e5 (\"iplink: add support for setting IPv4 devconf parameters\")\nSigned-off-by: Fernando Fernandez Mancera \u003cfmancera@suse.de\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "e942438fd7ed1651bc6ad3db2806677436a0d1bd",
      "tree": "1b2cb1c711f941174ab649b5c2f6f4cabc225940",
      "parents": [
        "2d84aef19e9670ba57db6920cb00707b71e6713e"
      ],
      "author": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Sun Jun 07 07:44:44 2026 -0600"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Sun Jun 07 07:44:44 2026 -0600"
      },
      "message": "Update kernel headers\n\nUpdate kernel headers to commit:\n\t903db046d557: (\"net: stmmac: xgmac: report L3/L4 filter match count in ethtool stats\")\n\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "2d84aef19e9670ba57db6920cb00707b71e6713e",
      "tree": "71abd6bcd2f9fda3a4fca8b1ebc2594e043f529a",
      "parents": [
        "fdb064bf64e5df738f5f823a11f315340679d336"
      ],
      "author": {
        "name": "Andy Roulin",
        "email": "aroulin@nvidia.com",
        "time": "Wed Jun 03 10:33:04 2026 -0700"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Thu Jun 04 09:11:53 2026 -0600"
      },
      "message": "iplink: bridge: add stp_mode support\n\nAdd support for the IFLA_BR_STP_MODE bridge attribute that allows\nuserspace to explicitly select the STP mode:\n\n  - auto (0): default, try /sbin/bridge-stp helper in init_net\n  - user (1): directly enable userspace STP without the helper,\n    works in any network namespace\n  - kernel (2): directly enable kernel STP without the helper\n\nA shared file-scope stp_modes[] table indexed by BR_STP_MODE_* drives\nboth directions: parsing uses parse_one_of(), printing goes through a\nstp_mode_to_str() helper that returns \"(unknown)\" for modes not yet\nknown to iproute2, keeping the JSON type of stp_mode consistently a\nstring.\n\nExample usage:\n  ip link set br0 type bridge stp_mode user\n  ip link set br0 type bridge stp_state 1\n\nLink: https://lore.kernel.org/netdev/20260405205224.3163000-1-aroulin@nvidia.com/\nAssisted-by: Claude:claude-opus-4-7\nReviewed-by: Ido Schimmel \u003cidosch@nvidia.com\u003e\nReviewed-by: Nikolay Aleksandrov \u003cnikolay@nvidia.com\u003e\nSigned-off-by: Andy Roulin \u003caroulin@nvidia.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "fdb064bf64e5df738f5f823a11f315340679d336",
      "tree": "042bd761d24b53b92b3c0a888869d92f3112951b",
      "parents": [
        "83ba195fa4f6e9004f59a0121dfb034fa911f65b"
      ],
      "author": {
        "name": "Fernando Fernandez Mancera",
        "email": "fmancera@suse.de",
        "time": "Mon Jun 01 16:32:42 2026 +0200"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Thu Jun 04 08:58:52 2026 -0600"
      },
      "message": "iplink: add support for setting IPv4 devconf parameters\n\nCurrently, modifying IPv4 interface configuration parameters requires\ninteracting with sysctl (/proc/sys/net/ipv4/conf/*). While\nip-netconf exists for monitoring these values, there has been no native\nway to set them directly through iproute2.\n\nThis patch introduces the support for that via \u0027inet\u0027 at the \u0027ip link\nset\u0027. It uses IFLA_INET_CONF netlink attribute to set the parameter.\n\nExample to enable forwarding on an interface:\n\nip link set dev enp8s0 inet forwarding on\n\nSigned-off-by: Fernando Fernandez Mancera \u003cfmancera@suse.de\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n(Code length fixups and s/matches/strcmp/ when applying)\n"
    },
    {
      "commit": "83ba195fa4f6e9004f59a0121dfb034fa911f65b",
      "tree": "b5b31a9059b61fc1d8770f0d435e290331226743",
      "parents": [
        "28352e7c0d6e72bb9ff895f5fe961003efb0b349"
      ],
      "author": {
        "name": "Petr Oros",
        "email": "poros@redhat.com",
        "time": "Tue May 26 13:52:45 2026 +0200"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Wed May 27 15:24:01 2026 -0600"
      },
      "message": "dpll: monitor: add -t/--timestamp and --tshort options\n\nBring dpll monitor in line with the rest of iproute2 by allowing each\nreceived notification to be prefixed with a wall-clock timestamp.\n\n  -t / --timestamp  emit a separate \"Timestamp:\" line before each event,\n                    using the default text form of print_timestamp()\n                    (matches ip / bridge / tc -t monitor)\n  --tshort          emit a compact ISO 8601 prefix\n                    \"[YYYY-MM-DDTHH:MM:SS.uuuuuu]\" inline instead\n                    (matches ip -ts monitor)\n\nWhen combined with -j, the timestamp shows up as a \"timestamp\" /\n\"timestamp_short\" field on each notification object, the same way\nip -j -t mptcp monitor integrates the helper.\n\nThe flag is parsed globally but only consulted from the monitor\ncallback, so passing -t to non-monitor commands is a no-op.\n\n--tshort has no short alias, so its long_options entry uses an\nidentifier above the ASCII range (OPT_TSHORT \u003d 256) following the\niproute2 convention used in misc/ss.c, instead of consuming an\nASCII letter that could later collide with a real short option.\n\nReviewed-by: Ivan Vecera \u003civecera@redhat.com\u003e\nSigned-off-by: Petr Oros \u003cporos@redhat.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "28352e7c0d6e72bb9ff895f5fe961003efb0b349",
      "tree": "2e4ecaa79bccb2f958e92c5627b3db6a00463f5c",
      "parents": [
        "de91e928ff57bc11bdcf76c8d6d302fe788e0440"
      ],
      "author": {
        "name": "Petr Oros",
        "email": "poros@redhat.com",
        "time": "Tue May 26 13:53:09 2026 +0200"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Wed May 27 15:24:00 2026 -0600"
      },
      "message": "dpll: man: restore Frequency monitor status in device show output\n\nThe dpll(8) merge of main into next (commit 62d1e70fa85a37 (\"Merge\nremote-tracking branch \u0027main/main\u0027 into next\")) resolved the conflict\nin the \"dpll device show\" output bullet list by keeping main\u0027s three\nnew entries (Supported modes, Phase offset monitor status, Phase\noffset averaging factor) but inadvertently dropped the\n\"Frequency monitor status (enable/disable)\" entry that was\nintroduced on next by commit 12954bc7d2c3 (\"dpll: add frequency\nmonitoring support\").\n\nThe frequency-monitor feature itself is still present (parser,\ndevice-set documentation and pin \"Measured frequency in Hz\" line\nare intact), only the corresponding bullet in the device-get output\nlist was lost.  Add it back so the listed attributes match what\n\"dpll device show\" actually prints.\n\nSigned-off-by: Petr Oros \u003cporos@redhat.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "de91e928ff57bc11bdcf76c8d6d302fe788e0440",
      "tree": "4f3d5f88a34c402f771b3dec104303063096e8de",
      "parents": [
        "53ee32da16b368e9607680a258be91ef8061c44d"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Wed May 20 10:30:43 2026 +0000"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Fri May 22 16:15:35 2026 -0600"
      },
      "message": "ll_map: add RTEXT_FILTER_NAME_ONLY to ll_link_get() and ll_init_map()\n\niproute2 can spend considerable amount of time in ll_init_map()\nor ll_link_get() to dump verbose netdev attributes, contributing\nto RTNL pressure.\n\nAdd RTEXT_FILTER_NAME_ONLY new flag so that rtnl_fill_ifinfo()\nlimits its output to:\n\n    - struct nlmsghdr\n    - IFLA_IFNAME\n    - IFLA_PROP_LIST (alternate names)\n\nThis is supported in linux 7.2+ (and ignored in old kernels).\n\nRTNL avoidance should be automatically provided in upcoming\nkernel patches.\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "53ee32da16b368e9607680a258be91ef8061c44d",
      "tree": "6a1ea5aaa897a40a9d0056090f1621ccb8157ee1",
      "parents": [
        "a9f9448b345d417db0d87fc4fe61831617d069ce"
      ],
      "author": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Fri May 22 16:14:39 2026 -0600"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Fri May 22 16:14:39 2026 -0600"
      },
      "message": "Update kernel headers\n\nUpdate kernel headers to commit:\n\t95fab46aea57: (\"Merge branch \u0027net-convert-atm-xdp-af_iucv-l2tp_ppp-rxrpc-tipc-to-getsockopt_iter\u0027\")\n\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "a9f9448b345d417db0d87fc4fe61831617d069ce",
      "tree": "9f653a6244e9729ad8a84044790c1e1f183670fd",
      "parents": [
        "de8c3aaa35456ef4f9d4bff0806340aa5d597810"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Wed May 20 10:34:46 2026 -0700"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Fri May 22 16:13:04 2026 -0600"
      },
      "message": "tc/netem: display per-impairment xstats counters\n\nThe kernel now reports struct tc_netem_xstats via TCA_STATS_APP with\nper-impairment counters: delayed, loss, corrupted, duplicated,\nreordered, and ecn_marked.\n\nAdd netem_print_xstats() following the same pattern as\nfq_print_xstats()\n\nExample output of `tc -s qdisc show dev eth0`:\n  qdisc netem 8001: root refcnt 2 limit 1000 delay 100ms loss 5%\n   Sent 1234567 bytes 15483 pkt (dropped 774, overlimits 0 requeues 0)\n   delayed 14709 dropped 774 corrupted 154 duplicated 309 reordered 61 ecn_marked 0\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "de8c3aaa35456ef4f9d4bff0806340aa5d597810",
      "tree": "dfd5bf12a136c37bd1bb4283a6155c555c1447d3",
      "parents": [
        "2bcb830285019bad01dfe7ae789a38c11adede1d"
      ],
      "author": {
        "name": "Mohsin Bashir",
        "email": "hmohsin@meta.com",
        "time": "Thu May 21 20:07:02 2026 -0700"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Fri May 22 16:09:32 2026 -0600"
      },
      "message": "netshaper: Fix man page accuracy and formatting issues\n\nThis is a follow up to a previous patch that was merged before the\nfeedback was provided. See link below for previous patch series.\nhttps://lore.kernel.org/netdev/20260518202353.390827-1-mohsin.bashr@gmail.com\n\nAddress the following concerns:\n\n- Document that parent scope must be node or netdev; queue is\n  rejected by parse_scope_id() but the man page did not state this.\n\n- Document that parent scope node requires an id, while parent scope\n  netdev may omit the id.\n\n- Document that leaf scope must be queue; parse_leaves() enforces\n  this but the man page only implied it by example.\n\n- Replace \"scheduling groups\" with \"intermediate scheduling nodes\"\n  for the node scope to avoid confusion with the group command name.\n\n- Show group handle scope choices explicitly in the synopsis as\n  { node | netdev } instead of an unrestricted HANDLE_SCOPE token.\n\n- Replace unusual { } repeat-group notation for leaves with a\n  separate LEAF_SPEC definition using standard [ SPEC ... ] syntax.\n\n- Use .B/.RB for literal keywords (bw-min, bw-max, weight, id,\n  parent, leaves) and .I for metavariables, matching iproute2\n  man page conventions.\n\n- Clarify example 4 so the 10 Gbit/s cap clearly applies to the\n  node, not the netdev parent.\n\n- Update .TH date.\n\nAssisted-by: Claude:claude-opus-4.7\nSigned-off-by: Mohsin Bashir \u003chmohsin@meta.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "2bcb830285019bad01dfe7ae789a38c11adede1d",
      "tree": "b6204cd3ec104dbcbbb0a26813acdff743f58333",
      "parents": [
        "fcf926464c3eb9acb70382e88286ccf342b4292a",
        "2638fef148e6b36d43abdcb04ed344f1003021a9"
      ],
      "author": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Tue May 19 19:06:02 2026 -0600"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Tue May 19 19:06:02 2026 -0600"
      },
      "message": "Merge branch \u0027netshaper-updates\u0027 into next\n\nMohsin Bashir  says:\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nFrom: Mohsin Bashir \u003chmohsin@meta.com\u003e\n\nThis series extends the netshaper CLI with missing parameter support\nand adds the group command for building scheduling hierarchies.\n\nThe existing netshaper tool only supports setting bw-max on individual\nshapers. This series adds the remaining shaper attributes (bw-min,\nweight) needed for TX scheduling, and introduces the group command\nwhich ties leaf shapers to a parent node in a single operation.\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": "2638fef148e6b36d43abdcb04ed344f1003021a9",
      "tree": "b6204cd3ec104dbcbbb0a26813acdff743f58333",
      "parents": [
        "e14b336a31b49a441883fd218399a537f580040f"
      ],
      "author": {
        "name": "Mohsin Bashir",
        "email": "hmohsin@meta.com",
        "time": "Mon May 18 13:23:53 2026 -0700"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Tue May 19 18:47:08 2026 -0600"
      },
      "message": "netshaper: Update man page for new parameters and group command\n\nDocument bw-min, weight, and the group command in the netshaper\nman page. Node id is required for set/show/delete but optional\nfor the group command. Leaves support optional per-queue weight\nand priority parameters for scheduling within the group.\n\nAssisted-by: Claude:claude-opus-4.7\nSigned-off-by: Mohsin Bashir \u003chmohsin@meta.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "e14b336a31b49a441883fd218399a537f580040f",
      "tree": "3853169fa470fd49f6f2f16e51ebf5da8fe0d6e3",
      "parents": [
        "00a40c697f9cd791e154ae056c473f76fe631fb5"
      ],
      "author": {
        "name": "Mohsin Bashir",
        "email": "hmohsin@meta.com",
        "time": "Mon May 18 13:23:52 2026 -0700"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Tue May 19 18:47:02 2026 -0600"
      },
      "message": "netshaper: Add group command for creating scheduling hierarchies\n\nAdd the group command to create and update scheduling groups via the\nNET_SHAPER_CMD_GROUP netlink operation. This enables building shaper\nhierarchies by specifying a node handle, parent scope, rate parameters,\nand a set of leaf shapers to attach.\n\nThe group command allows the node handle id to be omitted, letting\nthe kernel auto-assign one for new nodes. Group handle and parent\nscopes are validated to accept only node or netdev. Parent node scope\nrequires an explicit id since it must reference an existing node.\n\nLeaf parsing is extracted into parse_leaves() which dynamically\nallocates the leaves array via realloc, avoiding arbitrary limits.\nEach leaf accepts optional weight and priority parameters for\nper-queue scheduling control within the group. Handle and parent\nparsing share parse_scope_id() to avoid code duplication. Common\nargument parsing (dev, bw-min, bw-max, weight) reuses the\nparse_shaper_arg() helper introduced in the previous patch.\n\nExample usage:\n  netshaper group dev foo handle scope node parent scope netdev \\\n      bw-max 1gbit leaves scope queue id 0 weight 3 \\\n      scope queue id 1 weight 2\n\nAssisted-by: Claude:claude-opus-4.7\nSigned-off-by: Mohsin Bashir \u003chmohsin@meta.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "00a40c697f9cd791e154ae056c473f76fe631fb5",
      "tree": "77afe17d83ac220f89a3d796087535fba883c132",
      "parents": [
        "8c3177b174e7e57f93634110b8558c9261dfa23f"
      ],
      "author": {
        "name": "Mohsin Bashir",
        "email": "hmohsin@meta.com",
        "time": "Mon May 18 13:23:51 2026 -0700"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Tue May 19 18:46:48 2026 -0600"
      },
      "message": "netshaper: Extract struct shaper_args and parse_shaper_arg() helper\n\nExtract common shaper parameters (dev, bw-min, bw-max, weight) into\nstruct shaper_args and add parse_shaper_arg() to parse them. This\navoids duplicating argument parsing when the group command is added\nin the next patch.\n\nAssisted-by: Claude:claude-opus-4.7\nSigned-off-by: Mohsin Bashir \u003chmohsin@meta.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "8c3177b174e7e57f93634110b8558c9261dfa23f",
      "tree": "2700875d6f8953dce15e3480d30593fa8aa0464e",
      "parents": [
        "dc5f7db81442ffc7359d59d455d980b4aa85e60a"
      ],
      "author": {
        "name": "Mohsin Bashir",
        "email": "hmohsin@meta.com",
        "time": "Mon May 18 13:23:50 2026 -0700"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Tue May 19 18:46:37 2026 -0600"
      },
      "message": "netshaper: Extend show output with parent, bw-min and weight\n\nExtend print_netshaper_attrs() to display parent scope/id, bw-min,\nand weight fields in the show output. Replace the switch-based\niteration with direct attribute checks for cleaner output formatting.\nUse print_rate() for bandwidth display so that sub-Mbps rates\nlike 100kbit render correctly instead of truncating to 0 mbps.\n\nAssisted-by: Claude:claude-opus-4.7\nSigned-off-by: Mohsin Bashir \u003chmohsin@meta.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "dc5f7db81442ffc7359d59d455d980b4aa85e60a",
      "tree": "556274b93c1362fed13442420d19a9213703969b",
      "parents": [
        "fd9d12a1423e4dd1684cd32751629d47ab935996"
      ],
      "author": {
        "name": "Mohsin Bashir",
        "email": "hmohsin@meta.com",
        "time": "Mon May 18 13:23:49 2026 -0700"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Tue May 19 18:46:24 2026 -0600"
      },
      "message": "netshaper: Add bw-min and weight parameter support\n\nAdd bw-min and weight parameters to the set command. Previously\nonly bw-max was supported. Use boolean flags (has_bw_min,\nhas_bw_max, has_weight) to track which parameters were provided,\nso that zero-valued attrs like bw-max 0 are correctly sent.\nOnly emit rate and weight attrs for the set command. Add device\nname validation and only send handle id when explicitly provided.\nUpdate usage text to reflect the new parameters.\n\nAssisted-by: Claude:claude-opus-4.7\nSigned-off-by: Mohsin Bashir \u003chmohsin@meta.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "fd9d12a1423e4dd1684cd32751629d47ab935996",
      "tree": "d6a0cb1b8e7009fd7cac81ff87e8316a64e3a5a0",
      "parents": [
        "fcf926464c3eb9acb70382e88286ccf342b4292a"
      ],
      "author": {
        "name": "Mohsin Bashir",
        "email": "hmohsin@meta.com",
        "time": "Mon May 18 13:23:48 2026 -0700"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Tue May 19 18:46:07 2026 -0600"
      },
      "message": "netshaper: Extract parse_scope() and parse_rate() helpers\n\nAdd parse_scope() and parse_rate() helpers in preparation for\nadding the group command which will need scope and rate parsing\nat various places in the code. This patch will help to avoid\ncode duplication.\n\nVerify that the tool works as before:\n./netshaper set dev eth2 handle scope queue id 0 bw-max 100kbit\n./netshaper delete dev eth2 handle scope queue id 0 bw-max 100kbit\n\nAssisted-by: Claude:claude-opus-4.7\nSigned-off-by: Mohsin Bashir \u003chmohsin@meta.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "fcf926464c3eb9acb70382e88286ccf342b4292a",
      "tree": "5c1884ff24733ef87059c76ee05e000715022645",
      "parents": [
        "62d1e70fa85a37c77693883f997bfa86aa10381f",
        "5d8d82f60c5288ab8a20d70672dcb738209bd734"
      ],
      "author": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Tue May 19 18:44:24 2026 -0600"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Tue May 19 18:44:24 2026 -0600"
      },
      "message": "Merge branch \u0027neigh-fwd-grat\u0027 into next\n\nDanielle Ratson  says:\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nThe existing neighbor suppression unconditionally suppresses gratuitous\nARP and unsolicited Neighbor Advertisements, which breaks legitimate use\ncases like Multi-Homing and EVPN where these announcements need to\npropagate across the VXLAN fabric.\n\nThis series adds a new neigh_forward_grat option that provides\nindependent control of gratuitous ARP and unsolicited NA forwarding.\nWhen neigh_suppress is enabled and neigh_forward_grat is also enabled,\nregular neighbor discovery is suppressed while gratuitous announcements\nare forwarded.\n\nBoth port-level control (via IFLA_BRPORT_NEIGH_FORWARD_GRAT) and\nper-VLAN control (via BRIDGE_VLANDB_ENTRY_NEIGH_FORWARD_GRAT) are\nprovided. The default value of OFF preserves existing behavior.\n\nThe new attributes use NLA_U8, although the kernel netlink guideline\nrecommends NLA_U32 as the minimum integer type on the grounds that\nalignment makes smaller types equivalent on the wire. For a simple\non/off attribute there is no technical advantage to u32 over u8, and\nkeeping u8 preserves consistency with all surrounding bridge port\nattributes and avoids introducing new helpers alongside the existing\ninfrastructure.\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": "5d8d82f60c5288ab8a20d70672dcb738209bd734",
      "tree": "5c1884ff24733ef87059c76ee05e000715022645",
      "parents": [
        "2c6d5e670539590d466428aeb904780557bdcd32"
      ],
      "author": {
        "name": "Danielle Ratson",
        "email": "danieller@nvidia.com",
        "time": "Sun May 17 11:25:01 2026 +0300"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Tue May 19 18:43:49 2026 -0600"
      },
      "message": "bridge: vlan: Add support for neigh_forward_grat\n\nAdd support for controlling gratuitous ARP and unsolicited NA\nforwarding at the per-VLAN level via the neigh_forward_grat option.\n\nThis allows configuring the option via:\n$ bridge vlan set dev \u003cport\u003e vid \u003cvlan\u003e neigh_forward_grat {on|off}\n\nReviewed-by: Ido Schimmel \u003cidosch@nvidia.com\u003e\nReviewed-by: Petr Machata \u003cpetrm@nvidia.com\u003e\nSigned-off-by: Danielle Ratson \u003cdanieller@nvidia.com\u003e\nAcked-by: Nikolay Aleksandrov \u003crazor@blackwall.org\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "2c6d5e670539590d466428aeb904780557bdcd32",
      "tree": "a423ae97a20c189a5de1f4b8e6905ac2bbc76433",
      "parents": [
        "62d1e70fa85a37c77693883f997bfa86aa10381f"
      ],
      "author": {
        "name": "Danielle Ratson",
        "email": "danieller@nvidia.com",
        "time": "Sun May 17 11:25:00 2026 +0300"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Tue May 19 18:43:42 2026 -0600"
      },
      "message": "iplink: bridge_slave: Add support for neigh_forward_grat\n\nAdd support for controlling gratuitous ARP and unsolicited NA\nforwarding at the port level via the neigh_forward_grat option.\n\nThis allows configuring the option via:\n$ ip link set dev \u003cport\u003e type bridge_slave neigh_forward_grat {on|off}\n\nOr via the bridge command:\n$ bridge link set dev \u003cport\u003e neigh_forward_grat {on|off}\n\nReviewed-by: Ido Schimmel \u003cidosch@nvidia.com\u003e\nReviewed-by: Petr Machata \u003cpetrm@nvidia.com\u003e\nSigned-off-by: Danielle Ratson \u003cdanieller@nvidia.com\u003e\nAcked-by: Nikolay Aleksandrov \u003crazor@blackwall.org\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "62d1e70fa85a37c77693883f997bfa86aa10381f",
      "tree": "8abdc622b6d7ffb097b15cd08215a4ee2876c747",
      "parents": [
        "1ffc5715b9a7e140d6b44935531912a4cab79d86",
        "62d47c2dbc0eaecdd20c0e19406067488025e92e"
      ],
      "author": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Tue May 19 18:38:59 2026 -0600"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Tue May 19 18:38:59 2026 -0600"
      },
      "message": "Merge remote-tracking branch \u0027main/main\u0027 into next\n\nConflicts:\n\tman/man8/dpll.8\n\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "62d47c2dbc0eaecdd20c0e19406067488025e92e",
      "tree": "bcc5db913070d6205f8f00085ec0cea8608fac5c",
      "parents": [
        "87c66f79d8b09779c01c07122b0846f83b566dc1"
      ],
      "author": {
        "name": "Petr Oros",
        "email": "poros@redhat.com",
        "time": "Tue May 12 15:52:24 2026 +0200"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Sun May 17 15:35:09 2026 -0700"
      },
      "message": "dpll: align help and man notation with actual option parsing\n\ndpll uses getopt_long(), which only accepts long options with the\n\"--\" prefix.  The iproute2-wide \"-X[name]\" shorthand used in the\nhelp text and man page implies a single-dash long form\n(e.g. -Version, -json, -pretty) that getopt_long does not parse;\nonly -V/--Version, -j/--json and -p/--pretty actually work.\n\nReplace the misleading shorthand with explicit \"-V | --Version\"\nstyle so the documented forms match what the parser accepts, and\ndrop the redundant second usage line in help() that listed only a\nsubset of the options and implied dpll could be invoked without an\nOBJECT.  No functional change.\n\nSigned-off-by: Petr Oros \u003cporos@redhat.com\u003e\nReviewed-by: Ivan Vecera \u003civecera@redhat.com\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "1ffc5715b9a7e140d6b44935531912a4cab79d86",
      "tree": "d31afa2ea416624289954f39fc1105e02640871f",
      "parents": [
        "2a8b53446ff5636b0f412eb3665f83378d1cb5b2"
      ],
      "author": {
        "name": "David Ahern",
        "email": "dahern@nvidia.com",
        "time": "Tue May 12 13:29:33 2026 -0600"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Fri May 15 13:23:25 2026 -0600"
      },
      "message": "devlink: Drop now duplicate pid fallback for netns\n\nNow that netns_get_fd handles by name and pid, the special\nhandling in devlink to fallback to PID can be removed with\nboth cases handled by the FD attribute.\n\nSigned-off-by: David Ahern \u003cdahern@nvidia.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "2a8b53446ff5636b0f412eb3665f83378d1cb5b2",
      "tree": "17686dc423e642e3fa417b9aeb1a0ed5240e4abb",
      "parents": [
        "22061a6354c08002254003d4e6f7d9e1129371b6"
      ],
      "author": {
        "name": "David Ahern",
        "email": "dahern@nvidia.com",
        "time": "Tue May 12 13:27:41 2026 -0600"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Fri May 15 13:22:46 2026 -0600"
      },
      "message": "rdma: Allow netns to be specified by pid\n\nUpdate rdma dev to work like ip link where the netns can be a\nname or a pid by using netns_get_fd. Update man page and help\naccordingly.\n\nSigned-off-by: David Ahern \u003cdahern@nvidia.com\u003e\nReviewed-by: Leon Romanovsky \u003cleonro@nvidia.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "22061a6354c08002254003d4e6f7d9e1129371b6",
      "tree": "f6217695fde1b62a7656725bf7fbdab3f2ddeca9",
      "parents": [
        "d6a1612bacfe2bf559325610e32a137aa0705598"
      ],
      "author": {
        "name": "David Ahern",
        "email": "dahern@nvidia.com",
        "time": "Tue May 12 13:26:19 2026 -0600"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Fri May 15 13:22:38 2026 -0600"
      },
      "message": "iplink: Drop pid fallback code for netns\n\nPrior commit handles the fallback to pid, so remove\nthe now duplicate code from iplink_parse.\n\nSigned-off-by: David Ahern \u003cdahern@nvidia.com\u003e\nReviewed-by: Leon Romanovsky \u003cleonro@nvidia.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "d6a1612bacfe2bf559325610e32a137aa0705598",
      "tree": "7dc8eb4ccaee58e4ba77f3b0a26d60e7106d08a2",
      "parents": [
        "dde3f17bc311a38e02cc4f0e1a51d44cfbe059f1"
      ],
      "author": {
        "name": "David Ahern",
        "email": "dahern@nvidia.com",
        "time": "Tue May 12 13:26:03 2026 -0600"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Fri May 15 13:22:35 2026 -0600"
      },
      "message": "namespace: Add fallback to netns by pid\n\nUpdate netns_get_fd to try the passed in string as a name first. If the\nnetns filesystem entry does not exist, try converting the string to an\ninteger and if successful return an fd to /proc/\u003cpid\u003e/ns/net.\n\nThis allows netns_get_fd to uniformly handle the 2 common use cases of\nspecifying network namespace by name and pid.\n\nSigned-off-by: David Ahern \u003cdahern@nvidia.com\u003e\nReviewed-by: Leon Romanovsky \u003cleonro@nvidia.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "dde3f17bc311a38e02cc4f0e1a51d44cfbe059f1",
      "tree": "531a06141a6803f907a654840cd19299d8052ef4",
      "parents": [
        "55cbf807b378e876db8091b58ebecfcca8dd6962"
      ],
      "author": {
        "name": "Ivan Vecera",
        "email": "ivecera@redhat.com",
        "time": "Wed May 13 16:51:15 2026 +0200"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Fri May 15 13:21:23 2026 -0600"
      },
      "message": "dpll: add fractional-frequency-offset to parent-device\n\nKernel commit 9c11fcb2e9a54 (\"dpll: add fractional frequency offset\nto pin-parent-device\") added fractional-frequency-offset (PPM) and\nfractional-frequency-offset-ppt (PPT) attributes to the\npin-parent-device nested attribute set, alongside the existing\ntop-level pin attributes. Add their display into\ndpll_pin_print_parent_devices() and add ppm and ppt units to the\nrespective outputs.\n\nExtract dpll_pr_ffo() helper to consolidate the duplicated PPM/PPT\nfallback logic used in both top-level and parent-device contexts.\n\nSigned-off-by: Ivan Vecera \u003civecera@redhat.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "55cbf807b378e876db8091b58ebecfcca8dd6962",
      "tree": "6f3dde70947f2f37c7013abb93a1c797809d1e95",
      "parents": [
        "7579d9faeaf15b115539feedec891eec39284b36"
      ],
      "author": {
        "name": "Ivan Vecera",
        "email": "ivecera@redhat.com",
        "time": "Wed May 13 16:51:14 2026 +0200"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Fri May 15 13:21:12 2026 -0600"
      },
      "message": "dpll: add pin operstate attribute support\n\nKernel commit 781c8893a5da8 (\"dpll: add pin operational state\")\nadded the DPLL_A_PIN_OPERSTATE attribute which reports the operational\nstate of a pin with respect to its parent DPLL device. The attribute\nis nested inside parent-device and can have values: active, standby,\nno-signal, qual-failed.\n\nAdd operstate filtering for pin show command, allowing to filter pins\nby their operational state on parent device. Update bash-completion\nand man page accordingly.\n\nSigned-off-by: Ivan Vecera \u003civecera@redhat.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "7579d9faeaf15b115539feedec891eec39284b36",
      "tree": "8ae504e0252b86a73c3e2f10bd738d4cbb767b71",
      "parents": [
        "b9345a8850efb5e8e271064615cfd1701e0e5e15"
      ],
      "author": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Fri May 15 13:20:51 2026 -0600"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Fri May 15 13:20:51 2026 -0600"
      },
      "message": "Update kernel headers\n\nUpdate kernel headers to commit:\n\t822d4a8e390a: (\"net: usb: usbnet: use proper ep number macros\")\n\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "87c66f79d8b09779c01c07122b0846f83b566dc1",
      "tree": "09e66c023fbacafc1d767f4f716bd73001161c7d",
      "parents": [
        "0bbe88abb731618db7bddd9db462d09b21de4c3b"
      ],
      "author": {
        "name": "Michael Guralnik",
        "email": "michaelgur@nvidia.com",
        "time": "Thu May 07 21:46:09 2026 +0300"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Thu May 07 13:42:05 2026 -0700"
      },
      "message": "rdma: Align FRMR pool UAPI names with merged kernel UAPI\n\nThe FRMR pools UAPI merged in kernel v7.0-rc1 commit dbd0472fd7a5\n(\"RDMA/nldev: Expose kernel-internal FRMR pools in netlink\")\nuses different identifier names than what the iproute2 FRMR pools\nseries was developed against.\n\nUpdate the vendored copy of RDMA UAPI and all references in the rdma\ntool to match the names that actually shipped in the kernel.\n\nFixes: 93368ee34528 (\"rdma: Update headers\")\nSigned-off-by: Michael Guralnik \u003cmichaelgur@nvidia.com\u003e\nSigned-off-by: Chiara Meiohas \u003ccmeiohas@nvidia.com\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "b9345a8850efb5e8e271064615cfd1701e0e5e15",
      "tree": "542a275dff8c150fbfa559ac2e447cab66948c67",
      "parents": [
        "eff6e4dad32c44f67a6d14e74d3f2a3d79068dcd",
        "12954bc7d2c3bdb86eb5e8740119079173c4ef9d"
      ],
      "author": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Thu May 07 09:24:02 2026 -0600"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Thu May 07 09:24:02 2026 -0600"
      },
      "message": "Merge branch \u0027dpll-phase-unit-freq-monitor\u0027 into next\n\nIvan Vecera  says:\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nThis series improves dpll pin output formatting and adds support for\nthe frequency monitoring feature.\n\nPatch 1 adds picosecond unit to phase-adjust-min, phase-adjust-max\nand phase-adjust attributes. It also introduces dpll_pr_phase_offset()\nhelper that properly formats phase-offset as fractional picoseconds by\ndividing the raw kernel value by DPLL_PHASE_OFFSET_DIVIDER.\n\nPatch 2 adds support for the new frequency monitoring feature including\nthe DPLL_A_FREQUENCY_MONITOR device attribute and\nDPLL_A_PIN_MEASURED_FREQUENCY pin attribute. The measured frequency is\ndisplayed as fractional Hz using dpll_pr_measured_frequency() helper\nsince the kernel reports the value in millihertz. It also refactors\nphase-offset-monitor parsing into a shared helper.\n\nTested on EDS2 development board with zl3073x DPLL:\n\n  # dpll pin show package-label REF0P\n  pin id 196:\n    module-name: zl3073x\n    clock-id: 13709406750444215013\n    board-label: SyncE IN M1 CLK1\n    package-label: REF0P\n    type: synce-eth-port\n    frequency: 125000000 Hz\n    measured-frequency: 124999326.000 Hz\n    frequency-supported:\n      2500000 Hz\n      25000000 Hz\n      125000000 Hz\n    capabilities: 0x6 state-can-change priority-can-change\n    phase-adjust-min: -2147483648 ps\n    phase-adjust-max: 2147483647 ps\n    phase-adjust: 0 ps\n    parent-device:\n      id 14 direction input prio 10 state selectable phase-offset 0.000 ps\n      id 15 direction input prio 0 state connected phase-offset 323.000 ps\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": "12954bc7d2c3bdb86eb5e8740119079173c4ef9d",
      "tree": "542a275dff8c150fbfa559ac2e447cab66948c67",
      "parents": [
        "410888eea295a860491aa343d1b8298cb3b40af7"
      ],
      "author": {
        "name": "Ivan Vecera",
        "email": "ivecera@redhat.com",
        "time": "Mon May 04 18:30:14 2026 +0200"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Thu May 07 09:20:23 2026 -0600"
      },
      "message": "dpll: add frequency monitoring support\n\nAdd support for the new frequency monitoring feature from the kernel\npatch series \"dpll: add actual frequency monitoring feature\". This\nincludes:\n\n- DPLL_A_FREQUENCY_MONITOR device attribute (enable/disable)\n- DPLL_A_PIN_MEASURED_FREQUENCY pin attribute displayed as fractional Hz\n  using DPLL_PR_MEASURED_FREQUENCY macro (kernel reports in mHz)\n- device set: frequency-monitor { enable | disable }\n- Refactor phase-offset-monitor to use new dpll_parse_attr_feature_state\n  helper shared with frequency-monitor\n- Update man page and bash-completion\n\nReviewed-by: Petr Oros \u003cporos@redhat.com\u003e\nSigned-off-by: Ivan Vecera \u003civecera@redhat.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "410888eea295a860491aa343d1b8298cb3b40af7",
      "tree": "b8a5f3825dbef64b621123bf701e33fe2538aa24",
      "parents": [
        "eff6e4dad32c44f67a6d14e74d3f2a3d79068dcd"
      ],
      "author": {
        "name": "Ivan Vecera",
        "email": "ivecera@redhat.com",
        "time": "Mon May 04 18:30:13 2026 +0200"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Thu May 07 09:20:08 2026 -0600"
      },
      "message": "dpll: add ps unit to phase-related pin attributes\n\nDisplay phase-adjust-min, phase-adjust-max and phase-adjust values\nwith ps unit. Add DPLL_PR_PHASE_OFFSET macro that properly formats\nphase-offset as fractional picoseconds by dividing the raw kernel\nvalue by DPLL_PHASE_OFFSET_DIVIDER.\n\nReviewed-by: Petr Oros \u003cporos@redhat.com\u003e\nSigned-off-by: Ivan Vecera \u003civecera@redhat.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "eff6e4dad32c44f67a6d14e74d3f2a3d79068dcd",
      "tree": "27818f2b737b4d631df506591e3f7033390cf613",
      "parents": [
        "0fbce40d480fd4b01246ab9ee85d870287805ce3"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Wed May 06 16:06:56 2026 +0000"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Thu May 07 09:18:31 2026 -0600"
      },
      "message": "tc/class: use rtnl_dump_request_n() in tc_class_list()\n\nstrace tc -s class sh dev eth1 parent 2:\n\nstrace is fooled with rtnl_dump_request() way:\n\nsendmsg(3, {msg_name\u003d{sa_family\u003dAF_NETLINK, nl_pid\u003d0, nl_groups\u003d00000000},\n        msg_namelen\u003d12,\n\tmsg_iov\u003d[{iov_base\u003d{nlmsg_len\u003d36,\n\t\t\tnlmsg_type\u003dRTM_GETTCLASS,\n\t\t\tnlmsg_flags\u003dNLM_F_REQUEST|NLM_F_DUMP,\n\t\t\tnlmsg_seq\u003d1778082626, nlmsg_pid\u003d0},\n\t\t\tiov_len\u003d16},\n\t\t{iov_base\u003d{nlmsg_len\u003d0, nlmsg_type\u003dNLMSG_NOOP, nlmsg_flags\u003d0, nlmsg_seq\u003d0, nlmsg_pid\u003d131072},\n\t\t        iov_len\u003d20}],\n\t\tmsg_iovlen\u003d2, msg_controllen\u003d0, msg_flags\u003d0}, 0) \u003d 36\n\nWith rtnl_dump_request_n() we get instead:\n\nsendmsg(3, {msg_name\u003d{sa_family\u003dAF_NETLINK, nl_pid\u003d0, nl_groups\u003d00000000},\n\tmsg_namelen\u003d12,\n\tmsg_iov\u003d[{iov_base\u003d[{nlmsg_len\u003d36,\n\t\t\tnlmsg_type\u003dRTM_GETTCLASS,\n\t\t\tnlmsg_flags\u003dNLM_F_REQUEST|NLM_F_DUMP,\n\t\t\tnlmsg_seq\u003d1778082790, nlmsg_pid\u003d0},\n\t\t{tcm_family\u003dAF_UNSPEC,\n\t\t tcm_ifindex\u003dif_nametoindex(\"eth1\"), tcm_handle\u003d0, tcm_parent\u003d131072, tcm_info\u003d0}],\n\t\tiov_len\u003d36}], msg_iovlen\u003d1, msg_controllen\u003d0, msg_flags\u003d0}, 0) \u003d 36\n\nThis will also permit future attribute additions, like skip stats.\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nAcked-by: Jamal Hadi Salim \u003cjhs@mojatatu.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "0bbe88abb731618db7bddd9db462d09b21de4c3b",
      "tree": "8fc1f928bd8e6d019beecb70c2ecd9f1d94b40fd",
      "parents": [
        "b468824a278648ce384f39a4bb1c9dd45a9b3772"
      ],
      "author": {
        "name": "Ivan Vecera",
        "email": "ivecera@redhat.com",
        "time": "Sun May 03 18:42:00 2026 +0200"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Tue May 05 10:42:33 2026 -0700"
      },
      "message": "dpll: fix man page correctness issues\n\nFix several inaccuracies in dpll.8 man page:\n- Remove bogus \"holdover\" and \"freerun\" from operating modes list,\n  only \"manual\" and \"automatic\" modes exist in the DPLL API\n- Fix typo \"locked-ho-ack\" -\u003e \"locked-ho-acq\" in lock status list\n- Add missing device show output fields: lock-status-error,\n  clock-quality-level, mode-supported, phase-offset-monitor and\n  phase-offset-avg-factor\n- Add missing pin show output fields: panel-label, package-label,\n  fractional-frequency-offset and esync-pulse\n- Remove non-existent exit codes 2 and 255, the tool only returns\n  0 (success) or 1 (failure)\n- Use canonical enable/disable for phase-offset-monitor to match\n  the tool\u0027s help text\n\nFixes: 656cfc3ce05b (\"dpll: Add dpll command\")\nSigned-off-by: Ivan Vecera \u003civecera@redhat.com\u003e\nReviewed-by: Vadim Fedorenko \u003cvadim.fedorenko@linux.dev\u003e\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "0fbce40d480fd4b01246ab9ee85d870287805ce3",
      "tree": "8f619ed7c5cfb71086d72772c1732772d3955ab0",
      "parents": [
        "4f5de57e2ff11a5925dacdf3deeeabee7ba9502a"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Sun May 03 11:51:37 2026 +0000"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Mon May 04 18:58:47 2026 -0600"
      },
      "message": "tc: qdisc: provide tcm_handle and tcm_parent to kernel dump requests\n\nlinux-7.2 can filter \"tc qdisc show ...\" on tcm_handle / tcm_parent and\nreduce dump costs.\n\nOld kernels ignore these values.\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nAcked-by: Jamal Hadi Salim \u003cjhs@mojatatu.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "4f5de57e2ff11a5925dacdf3deeeabee7ba9502a",
      "tree": "cdcd03014841677cb6a9a4c7fbfef8a104ce2db8",
      "parents": [
        "c99a85a7c8eb5cafbe0f4f681b108a58617c983b"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Tue Apr 28 08:28:51 2026 +0000"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Sat May 02 12:06:15 2026 -0600"
      },
      "message": "tc: use ll_init_map() only when needed\n\nSome setups can have thousands of devices.\n\nll_init_map() is rather expensive for them.\n\nOnly call ll_init_map() in the following cases:\n\n1) tc runs in batch mode.\n2) tc runs in monitor mode.\n3) tc dumps qdiscs/classes/filters for all netdev.\n\nThis greatly reduces RTNL pressure on common operations.\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nAcked-by: Jamal Hadi Salim \u003cjhs@mojatatu.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "c99a85a7c8eb5cafbe0f4f681b108a58617c983b",
      "tree": "b7641286cd8bb763ab7dbf725d6d37e3d1eaef4d",
      "parents": [
        "fa2309a9e91ed0634da763aed664380663e6b090"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Tue Apr 21 13:23:59 2026 -0700"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Thu Apr 30 09:44:50 2026 -0600"
      },
      "message": "lib: add input validation for time, rate, and size parsing functions\n\nThe parsing functions get_time(), get_time64(), get_rate(), get_rate64(),\nand get_size64() use strtod() to convert user input but don\u0027t validate\nthe parsed values. This allows negative numbers and overflow values to\nbe passed through, which can cause unexpected behavior or security issues\nwhen these values reach the kernel as unsigned integers.\n\nAdd validation to reject:\n- Negative values (which make no sense for time, rate, or size)\n- Overflow conditions (when strtod() returns HUGE_VAL with ERANGE)\n- Empty strings (already checked, but now with explicit comments)\n\nThis prevents potential issues and provides clearer error reporting.\nFixing it in iproute2 does not mean that the kernel is off the hook\nfor handling negative values. Checks are still needed.\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "fa2309a9e91ed0634da763aed664380663e6b090",
      "tree": "90ef7adbdc792da4764d2e53635ea2b34010a1c7",
      "parents": [
        "03b33c7550e911b04f8ad06a0f93447308079fcf"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Apr 27 10:28:27 2026 -0700"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Thu Apr 30 09:44:30 2026 -0600"
      },
      "message": "man: remove libnetlink man page\n\nThe iproute2 libnetlink is not a public and stable API.\nHaving a man page encourages users to think it is available.\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "03b33c7550e911b04f8ad06a0f93447308079fcf",
      "tree": "c7788688afcbe87600edd075365e16a73c5e5b15",
      "parents": [
        "7bd7f33509d0091a0b3ebdef34f70b6d086560d1"
      ],
      "author": {
        "name": "Danielle Ratson",
        "email": "danieller@nvidia.com",
        "time": "Sun Apr 26 14:51:39 2026 +0300"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Thu Apr 30 09:37:14 2026 -0600"
      },
      "message": "bash-completion: devlink: Fix dev completion trailing colon\n\nCited commit extended \u0027devlink dev show\u0027 to print the instance index when\nthe kernel provides DEVLINK_ATTR_INDEX, printing the device handle followed\nby a colon and the index. The completion code was using the raw text output\nas a word list, causing the device handle to be offered with a trailing\ncolon, e.g. \"pci/0000:01:00.0:\" instead of \"pci/0000:01:00.0\".\n\nSwitch to JSON output and extract device names using jq, consistent\nwith how port completion already works, to reliably get only the device\nhandle names regardless of what additional attributes are printed.\n\nFixes: 36252727bfc6 (\"devlink: show devlink instance index in dev output\")\nSigned-off-by: Danielle Ratson \u003cdanieller@nvidia.com\u003e\nReviewed-by: Ido Schimmel \u003cidosch@nvidia.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "7bd7f33509d0091a0b3ebdef34f70b6d086560d1",
      "tree": "e1c3825c06f672eb9e8e0b455073306f682e2036",
      "parents": [
        "c7f51f540e6a535fbe7fae0ec0cbf2c335759d0c"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Tue Apr 28 07:56:47 2026 +0000"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Thu Apr 30 09:33:11 2026 -0600"
      },
      "message": "ll_map: add RTEXT_FILTER_SKIP_STATS to ll_init_map()\n\nll_init_map() only cares about names and ifindex.\n\nWe can save ~300 bytes per device if we ask the kernel to skip stats,\nnot counting many cpu cycles if per-cpu stats are involved.\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "c7f51f540e6a535fbe7fae0ec0cbf2c335759d0c",
      "tree": "5eab513d41b26b689bd5d5578d4d2c259c1f7464",
      "parents": [
        "e0517e612199cacaf2dc4d54cbed52deec640c94",
        "b468824a278648ce384f39a4bb1c9dd45a9b3772"
      ],
      "author": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Thu Apr 30 09:32:18 2026 -0600"
      },
      "committer": {
        "name": "David Ahern",
        "email": "dsahern@kernel.org",
        "time": "Thu Apr 30 09:32:18 2026 -0600"
      },
      "message": "Merge remote-tracking branch \u0027main/main\u0027 into next\n\nSigned-off-by: David Ahern \u003cdsahern@kernel.org\u003e\n"
    },
    {
      "commit": "b468824a278648ce384f39a4bb1c9dd45a9b3772",
      "tree": "5eab513d41b26b689bd5d5578d4d2c259c1f7464",
      "parents": [
        "f46186fd0332640cb09f719627e5e14d38d54472"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Apr 27 09:26:58 2026 -0700"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Apr 27 11:39:56 2026 -0700"
      },
      "message": "libnetlink: flush stdout only in monitor mode\n\nAs Eric pointed out, fflush() only makes sense in monitor mode.\nIn other modes buffering the output helps with large outputs\nlike route dumps.\n\nMove the fflush() into rtnl_listen() which is the common code\nused by all monitoring subcommands. This also ensures any future\nmonitor subcommand gets correct flushing behavior automatically.\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    },
    {
      "commit": "f46186fd0332640cb09f719627e5e14d38d54472",
      "tree": "3eb2b777630774a364ca4a60a8097a02163094f0",
      "parents": [
        "29daefc0865b9b2cb81b1476cd0d36564699f7e4"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Fri Apr 24 16:22:57 2026 -0700"
      },
      "committer": {
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org",
        "time": "Mon Apr 27 11:39:56 2026 -0700"
      },
      "message": "remove hamradio protocols\n\nThe ax25, rose, and netrom have been removed upstream.\nDrop support for those protocols from iproute2.\n\nSigned-off-by: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\n"
    }
  ],
  "next": "29daefc0865b9b2cb81b1476cd0d36564699f7e4"
}
