From: Jakub Kicinski Date: Thu, 10 Apr 2025 01:46:46 +0000 (-0700) Subject: netlink: specs: rename rtnetlink specs in accordance with family name X-Git-Tag: ceph-for-6.17-rc6~745^2~333^2~12 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=cd5e64fb959a98e2d3122c7e944f17ffa6d0448e;p=ceph-client.git netlink: specs: rename rtnetlink specs in accordance with family name The rtnetlink family names are set to rt-$name within the YAML but the files are called rt_$name. C codegen assumes that the generated file name will match the family. The use of dashes is in line with our general expectation that name properties in the spec use dashes not underscores (even tho, as Donald points out most genl families use underscores in the name). We have 3 un-ideal options to choose from: - accept the slight inconsistency with old families using _, or - accept the slight annoyance with all languages having to do s/-/_/ when looking up family ID, or - accept the inconsistency with all name properties in new YAML spec being separated with - and just the family name always using _. Pick option 1 and rename the rtnl spec files. Reviewed-by: Jacob Keller Reviewed-by: Donald Hunter Link: https://patch.msgid.link/20250410014658.782120-2-kuba@kernel.org Signed-off-by: Jakub Kicinski --- diff --git a/Documentation/netlink/specs/rt-addr.yaml b/Documentation/netlink/specs/rt-addr.yaml new file mode 100644 index 0000000000000..df6b23f06a228 --- /dev/null +++ b/Documentation/netlink/specs/rt-addr.yaml @@ -0,0 +1,204 @@ +# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) + +name: rt-addr +protocol: netlink-raw +protonum: 0 + +doc: + Address configuration over rtnetlink. + +definitions: + - + name: ifaddrmsg + type: struct + members: + - + name: ifa-family + type: u8 + - + name: ifa-prefixlen + type: u8 + - + name: ifa-flags + type: u8 + enum: ifa-flags + enum-as-flags: true + - + name: ifa-scope + type: u8 + - + name: ifa-index + type: u32 + - + name: ifa-cacheinfo + type: struct + members: + - + name: ifa-prefered + type: u32 + - + name: ifa-valid + type: u32 + - + name: cstamp + type: u32 + - + name: tstamp + type: u32 + + - + name: ifa-flags + type: flags + entries: + - + name: secondary + - + name: nodad + - + name: optimistic + - + name: dadfailed + - + name: homeaddress + - + name: deprecated + - + name: tentative + - + name: permanent + - + name: managetempaddr + - + name: noprefixroute + - + name: mcautojoin + - + name: stable-privacy + +attribute-sets: + - + name: addr-attrs + name-prefix: ifa- + attributes: + - + name: address + type: binary + display-hint: ipv4 + - + name: local + type: binary + display-hint: ipv4 + - + name: label + type: string + - + name: broadcast + type: binary + display-hint: ipv4 + - + name: anycast + type: binary + - + name: cacheinfo + type: binary + struct: ifa-cacheinfo + - + name: multicast + type: binary + - + name: flags + type: u32 + enum: ifa-flags + enum-as-flags: true + - + name: rt-priority + type: u32 + - + name: target-netnsid + type: binary + - + name: proto + type: u8 + + +operations: + fixed-header: ifaddrmsg + enum-model: directional + list: + - + name: newaddr + doc: Add new address + attribute-set: addr-attrs + do: + request: + value: 20 + attributes: &ifaddr-all + - ifa-family + - ifa-flags + - ifa-prefixlen + - ifa-scope + - ifa-index + - address + - label + - local + - cacheinfo + - + name: deladdr + doc: Remove address + attribute-set: addr-attrs + do: + request: + value: 21 + attributes: + - ifa-family + - ifa-flags + - ifa-prefixlen + - ifa-scope + - ifa-index + - address + - local + - + name: getaddr + doc: Dump address information. + attribute-set: addr-attrs + dump: + request: + value: 22 + attributes: + - ifa-index + reply: + value: 20 + attributes: *ifaddr-all + - + name: getmulticast + doc: Get / dump IPv4/IPv6 multicast addresses. + attribute-set: addr-attrs + fixed-header: ifaddrmsg + do: + request: + value: 58 + attributes: + - ifa-family + - ifa-index + reply: + value: 58 + attributes: &mcaddr-attrs + - multicast + - cacheinfo + dump: + request: + value: 58 + attributes: + - ifa-family + reply: + value: 58 + attributes: *mcaddr-attrs + +mcast-groups: + list: + - + name: rtnlgrp-ipv4-ifaddr + value: 5 + - + name: rtnlgrp-ipv6-ifaddr + value: 9 diff --git a/Documentation/netlink/specs/rt-link.yaml b/Documentation/netlink/specs/rt-link.yaml new file mode 100644 index 0000000000000..31238455f8e9d --- /dev/null +++ b/Documentation/netlink/specs/rt-link.yaml @@ -0,0 +1,2523 @@ +# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) + +name: rt-link +protocol: netlink-raw +protonum: 0 + +doc: + Link configuration over rtnetlink. + +definitions: + - + name: ifinfo-flags + type: flags + entries: + - + name: up + - + name: broadcast + - + name: debug + - + name: loopback + - + name: point-to-point + - + name: no-trailers + - + name: running + - + name: no-arp + - + name: promisc + - + name: all-multi + - + name: master + - + name: slave + - + name: multicast + - + name: portsel + - + name: auto-media + - + name: dynamic + - + name: lower-up + - + name: dormant + - + name: echo + - + name: vlan-protocols + type: enum + entries: + - + name: 8021q + value: 33024 + - + name: 8021ad + value: 34984 + - + name: rtgenmsg + type: struct + members: + - + name: family + type: u8 + - + name: ifinfomsg + type: struct + members: + - + name: ifi-family + type: u8 + - + name: pad + type: pad + len: 1 + - + name: ifi-type + type: u16 + - + name: ifi-index + type: s32 + - + name: ifi-flags + type: u32 + enum: ifinfo-flags + enum-as-flags: true + - + name: ifi-change + type: u32 + - + name: ifla-bridge-id + type: struct + members: + - + name: prio + type: u16 + - + name: addr + type: binary + len: 6 + display-hint: mac + - + name: ifla-cacheinfo + type: struct + members: + - + name: max-reasm-len + type: u32 + - + name: tstamp + type: u32 + - + name: reachable-time + type: s32 + - + name: retrans-time + type: u32 + - + name: rtnl-link-stats + type: struct + members: + - + name: rx-packets + type: u32 + - + name: tx-packets + type: u32 + - + name: rx-bytes + type: u32 + - + name: tx-bytes + type: u32 + - + name: rx-errors + type: u32 + - + name: tx-errors + type: u32 + - + name: rx-dropped + type: u32 + - + name: tx-dropped + type: u32 + - + name: multicast + type: u32 + - + name: collisions + type: u32 + - + name: rx-length-errors + type: u32 + - + name: rx-over-errors + type: u32 + - + name: rx-crc-errors + type: u32 + - + name: rx-frame-errors + type: u32 + - + name: rx-fifo-errors + type: u32 + - + name: rx-missed-errors + type: u32 + - + name: tx-aborted-errors + type: u32 + - + name: tx-carrier-errors + type: u32 + - + name: tx-fifo-errors + type: u32 + - + name: tx-heartbeat-errors + type: u32 + - + name: tx-window-errors + type: u32 + - + name: rx-compressed + type: u32 + - + name: tx-compressed + type: u32 + - + name: rx-nohandler + type: u32 + - + name: rtnl-link-stats64 + type: struct + members: + - + name: rx-packets + type: u64 + - + name: tx-packets + type: u64 + - + name: rx-bytes + type: u64 + - + name: tx-bytes + type: u64 + - + name: rx-errors + type: u64 + - + name: tx-errors + type: u64 + - + name: rx-dropped + type: u64 + - + name: tx-dropped + type: u64 + - + name: multicast + type: u64 + - + name: collisions + type: u64 + - + name: rx-length-errors + type: u64 + - + name: rx-over-errors + type: u64 + - + name: rx-crc-errors + type: u64 + - + name: rx-frame-errors + type: u64 + - + name: rx-fifo-errors + type: u64 + - + name: rx-missed-errors + type: u64 + - + name: tx-aborted-errors + type: u64 + - + name: tx-carrier-errors + type: u64 + - + name: tx-fifo-errors + type: u64 + - + name: tx-heartbeat-errors + type: u64 + - + name: tx-window-errors + type: u64 + - + name: rx-compressed + type: u64 + - + name: tx-compressed + type: u64 + - + name: rx-nohandler + type: u64 + - + name: rx-otherhost-dropped + type: u64 + - + name: rtnl-link-ifmap + type: struct + members: + - + name: mem-start + type: u64 + - + name: mem-end + type: u64 + - + name: base-addr + type: u64 + - + name: irq + type: u16 + - + name: dma + type: u8 + - + name: port + type: u8 + - + name: ipv4-devconf + type: struct + members: + - + name: forwarding + type: u32 + - + name: mc-forwarding + type: u32 + - + name: proxy-arp + type: u32 + - + name: accept-redirects + type: u32 + - + name: secure-redirects + type: u32 + - + name: send-redirects + type: u32 + - + name: shared-media + type: u32 + - + name: rp-filter + type: u32 + - + name: accept-source-route + type: u32 + - + name: bootp-relay + type: u32 + - + name: log-martians + type: u32 + - + name: tag + type: u32 + - + name: arpfilter + type: u32 + - + name: medium-id + type: u32 + - + name: noxfrm + type: u32 + - + name: nopolicy + type: u32 + - + name: force-igmp-version + type: u32 + - + name: arp-announce + type: u32 + - + name: arp-ignore + type: u32 + - + name: promote-secondaries + type: u32 + - + name: arp-accept + type: u32 + - + name: arp-notify + type: u32 + - + name: accept-local + type: u32 + - + name: src-vmark + type: u32 + - + name: proxy-arp-pvlan + type: u32 + - + name: route-localnet + type: u32 + - + name: igmpv2-unsolicited-report-interval + type: u32 + - + name: igmpv3-unsolicited-report-interval + type: u32 + - + name: ignore-routes-with-linkdown + type: u32 + - + name: drop-unicast-in-l2-multicast + type: u32 + - + name: drop-gratuitous-arp + type: u32 + - + name: bc-forwarding + type: u32 + - + name: arp-evict-nocarrier + type: u32 + - + name: ipv6-devconf + type: struct + members: + - + name: forwarding + type: u32 + - + name: hoplimit + type: u32 + - + name: mtu6 + type: u32 + - + name: accept-ra + type: u32 + - + name: accept-redirects + type: u32 + - + name: autoconf + type: u32 + - + name: dad-transmits + type: u32 + - + name: rtr-solicits + type: u32 + - + name: rtr-solicit-interval + type: u32 + - + name: rtr-solicit-delay + type: u32 + - + name: use-tempaddr + type: u32 + - + name: temp-valid-lft + type: u32 + - + name: temp-prefered-lft + type: u32 + - + name: regen-max-retry + type: u32 + - + name: max-desync-factor + type: u32 + - + name: max-addresses + type: u32 + - + name: force-mld-version + type: u32 + - + name: accept-ra-defrtr + type: u32 + - + name: accept-ra-pinfo + type: u32 + - + name: accept-ra-rtr-pref + type: u32 + - + name: rtr-probe-interval + type: u32 + - + name: accept-ra-rt-info-max-plen + type: u32 + - + name: proxy-ndp + type: u32 + - + name: optimistic-dad + type: u32 + - + name: accept-source-route + type: u32 + - + name: mc-forwarding + type: u32 + - + name: disable-ipv6 + type: u32 + - + name: accept-dad + type: u32 + - + name: force-tllao + type: u32 + - + name: ndisc-notify + type: u32 + - + name: mldv1-unsolicited-report-interval + type: u32 + - + name: mldv2-unsolicited-report-interval + type: u32 + - + name: suppress-frag-ndisc + type: u32 + - + name: accept-ra-from-local + type: u32 + - + name: use-optimistic + type: u32 + - + name: accept-ra-mtu + type: u32 + - + name: stable-secret + type: u32 + - + name: use-oif-addrs-only + type: u32 + - + name: accept-ra-min-hop-limit + type: u32 + - + name: ignore-routes-with-linkdown + type: u32 + - + name: drop-unicast-in-l2-multicast + type: u32 + - + name: drop-unsolicited-na + type: u32 + - + name: keep-addr-on-down + type: u32 + - + name: rtr-solicit-max-interval + type: u32 + - + name: seg6-enabled + type: u32 + - + name: seg6-require-hmac + type: u32 + - + name: enhanced-dad + type: u32 + - + name: addr-gen-mode + type: u8 + - + name: disable-policy + type: u32 + - + name: accept-ra-rt-info-min-plen + type: u32 + - + name: ndisc-tclass + type: u32 + - + name: rpl-seg-enabled + type: u32 + - + name: ra-defrtr-metric + type: u32 + - + name: ioam6-enabled + type: u32 + - + name: ioam6-id + type: u32 + - + name: ioam6-id-wide + type: u32 + - + name: ndisc-evict-nocarrier + type: u32 + - + name: accept-untracked-na + type: u32 + - + name: ifla-icmp6-stats + type: struct + members: + - + name: inmsgs + type: u64 + - + name: inerrors + type: u64 + - + name: outmsgs + type: u64 + - + name: outerrors + type: u64 + - + name: csumerrors + type: u64 + - + name: ratelimithost + type: u64 + - + name: ifla-inet6-stats + type: struct + members: + - + name: inpkts + type: u64 + - + name: inoctets + type: u64 + - + name: indelivers + type: u64 + - + name: outforwdatagrams + type: u64 + - + name: outpkts + type: u64 + - + name: outoctets + type: u64 + - + name: inhdrerrors + type: u64 + - + name: intoobigerrors + type: u64 + - + name: innoroutes + type: u64 + - + name: inaddrerrors + type: u64 + - + name: inunknownprotos + type: u64 + - + name: intruncatedpkts + type: u64 + - + name: indiscards + type: u64 + - + name: outdiscards + type: u64 + - + name: outnoroutes + type: u64 + - + name: reasmtimeout + type: u64 + - + name: reasmreqds + type: u64 + - + name: reasmoks + type: u64 + - + name: reasmfails + type: u64 + - + name: fragoks + type: u64 + - + name: fragfails + type: u64 + - + name: fragcreates + type: u64 + - + name: inmcastpkts + type: u64 + - + name: outmcastpkts + type: u64 + - + name: inbcastpkts + type: u64 + - + name: outbcastpkts + type: u64 + - + name: inmcastoctets + type: u64 + - + name: outmcastoctets + type: u64 + - + name: inbcastoctets + type: u64 + - + name: outbcastoctets + type: u64 + - + name: csumerrors + type: u64 + - + name: noectpkts + type: u64 + - + name: ect1-pkts + type: u64 + - + name: ect0-pkts + type: u64 + - + name: cepkts + type: u64 + - + name: reasm-overlaps + type: u64 + - name: br-boolopt-multi + type: struct + members: + - + name: optval + type: u32 + - + name: optmask + type: u32 + - + name: if_stats_msg + type: struct + members: + - + name: family + type: u8 + - + name: pad + type: pad + len: 3 + - + name: ifindex + type: u32 + - + name: filter-mask + type: u32 + - + name: ifla-vlan-flags + type: struct + members: + - + name: flags + type: u32 + enum: vlan-flags + enum-as-flags: true + - + name: mask + type: u32 + display-hint: hex + - + name: vlan-flags + type: flags + entries: + - reorder-hdr + - gvrp + - loose-binding + - mvrp + - bridge-binding + - + name: ifla-vlan-qos-mapping + type: struct + members: + - + name: from + type: u32 + - + name: to + type: u32 + - + name: ifla-geneve-port-range + type: struct + members: + - + name: low + type: u16 + byte-order: big-endian + - + name: high + type: u16 + byte-order: big-endian + - + name: ifla-vf-mac + type: struct + members: + - + name: vf + type: u32 + - + name: mac + type: binary + len: 32 + - + name: ifla-vf-vlan + type: struct + members: + - + name: vf + type: u32 + - + name: vlan + type: u32 + - + name: qos + type: u32 + - + name: ifla-vf-tx-rate + type: struct + members: + - + name: vf + type: u32 + - + name: rate + type: u32 + - + name: ifla-vf-spoofchk + type: struct + members: + - + name: vf + type: u32 + - + name: setting + type: u32 + - + name: ifla-vf-link-state + type: struct + members: + - + name: vf + type: u32 + - + name: link-state + type: u32 + enum: ifla-vf-link-state-enum + - + name: ifla-vf-link-state-enum + type: enum + entries: + - auto + - enable + - disable + - + name: ifla-vf-rate + type: struct + members: + - + name: vf + type: u32 + - + name: min-tx-rate + type: u32 + - + name: max-tx-rate + type: u32 + - + name: ifla-vf-rss-query-en + type: struct + members: + - + name: vf + type: u32 + - + name: setting + type: u32 + - + name: ifla-vf-trust + type: struct + members: + - + name: vf + type: u32 + - + name: setting + type: u32 + - + name: ifla-vf-guid + type: struct + members: + - + name: vf + type: u32 + - + name: guid + type: u64 + - + name: ifla-vf-vlan-info + type: struct + members: + - + name: vf + type: u32 + - + name: vlan + type: u32 + - + name: qos + type: u32 + - + name: vlan-proto + type: u32 + - + name: rtext-filter + type: flags + entries: + - vf + - brvlan + - brvlan-compressed + - skip-stats + - mrp + - cfm-config + - cfm-status + - mst + - + name: netkit-policy + type: enum + entries: + - + name: forward + value: 0 + - + name: blackhole + value: 2 + - + name: netkit-mode + type: enum + entries: + - name: l2 + - name: l3 + + - + name: netkit-scrub + type: enum + entries: + - name: none + - name: default + +attribute-sets: + - + name: link-attrs + name-prefix: ifla- + attributes: + - + name: address + type: binary + display-hint: mac + - + name: broadcast + type: binary + display-hint: mac + - + name: ifname + type: string + - + name: mtu + type: u32 + - + name: link + type: u32 + - + name: qdisc + type: string + - + name: stats + type: binary + struct: rtnl-link-stats + - + name: cost + type: string + - + name: priority + type: string + - + name: master + type: u32 + - + name: wireless + type: string + - + name: protinfo + type: string + - + name: txqlen + type: u32 + - + name: map + type: binary + struct: rtnl-link-ifmap + - + name: weight + type: u32 + - + name: operstate + type: u8 + - + name: linkmode + type: u8 + - + name: linkinfo + type: nest + nested-attributes: linkinfo-attrs + - + name: net-ns-pid + type: u32 + - + name: ifalias + type: string + - + name: num-vf + type: u32 + - + name: vfinfo-list + type: nest + nested-attributes: vfinfo-list-attrs + - + name: stats64 + type: binary + struct: rtnl-link-stats64 + - + name: vf-ports + type: nest + nested-attributes: vf-ports-attrs + - + name: port-self + type: nest + nested-attributes: port-self-attrs + - + name: af-spec + type: nest + nested-attributes: af-spec-attrs + - + name: group + type: u32 + - + name: net-ns-fd + type: u32 + - + name: ext-mask + type: u32 + enum: rtext-filter + enum-as-flags: true + - + name: promiscuity + type: u32 + - + name: num-tx-queues + type: u32 + - + name: num-rx-queues + type: u32 + - + name: carrier + type: u8 + - + name: phys-port-id + type: binary + - + name: carrier-changes + type: u32 + - + name: phys-switch-id + type: binary + - + name: link-netnsid + type: s32 + - + name: phys-port-name + type: string + - + name: proto-down + type: u8 + - + name: gso-max-segs + type: u32 + - + name: gso-max-size + type: u32 + - + name: pad + type: pad + - + name: xdp + type: nest + nested-attributes: xdp-attrs + - + name: event + type: u32 + - + name: new-netnsid + type: s32 + - + name: target-netnsid + type: s32 + - + name: carrier-up-count + type: u32 + - + name: carrier-down-count + type: u32 + - + name: new-ifindex + type: s32 + - + name: min-mtu + type: u32 + - + name: max-mtu + type: u32 + - + name: prop-list + type: nest + nested-attributes: link-attrs + - + name: alt-ifname + type: string + multi-attr: true + - + name: perm-address + type: binary + display-hint: mac + - + name: proto-down-reason + type: string + - + name: parent-dev-name + type: string + - + name: parent-dev-bus-name + type: string + - + name: gro-max-size + type: u32 + - + name: tso-max-size + type: u32 + - + name: tso-max-segs + type: u32 + - + name: allmulti + type: u32 + - + name: devlink-port + type: binary + - + name: gso-ipv4-max-size + type: u32 + - + name: gro-ipv4-max-size + type: u32 + - + name: dpll-pin + type: nest + nested-attributes: link-dpll-pin-attrs + - + name: max-pacing-offload-horizon + type: uint + doc: EDT offload horizon supported by the device (in nsec). + - + name: netns-immutable + type: u8 + - + name: af-spec-attrs + attributes: + - + name: "inet" + type: nest + value: 2 + nested-attributes: ifla-attrs + - + name: "inet6" + type: nest + value: 10 + nested-attributes: ifla6-attrs + - + name: "mctp" + type: nest + value: 45 + nested-attributes: mctp-attrs + - + name: vfinfo-list-attrs + attributes: + - + name: info + type: nest + nested-attributes: vfinfo-attrs + multi-attr: true + - + name: vfinfo-attrs + attributes: + - + name: mac + type: binary + struct: ifla-vf-mac + - + name: vlan + type: binary + struct: ifla-vf-vlan + - + name: tx-rate + type: binary + struct: ifla-vf-tx-rate + - + name: spoofchk + type: binary + struct: ifla-vf-spoofchk + - + name: link-state + type: binary + struct: ifla-vf-link-state + - + name: rate + type: binary + struct: ifla-vf-rate + - + name: rss-query-en + type: binary + struct: ifla-vf-rss-query-en + - + name: stats + type: nest + nested-attributes: vf-stats-attrs + - + name: trust + type: binary + struct: ifla-vf-trust + - + name: ib-node-guid + type: binary + struct: ifla-vf-guid + - + name: ib-port-guid + type: binary + struct: ifla-vf-guid + - + name: vlan-list + type: nest + nested-attributes: vf-vlan-attrs + - + name: broadcast + type: binary + - + name: vf-stats-attrs + attributes: + - + name: rx-packets + type: u64 + value: 0 + - + name: tx-packets + type: u64 + - + name: rx-bytes + type: u64 + - + name: tx-bytes + type: u64 + - + name: broadcast + type: u64 + - + name: multicast + type: u64 + - + name: pad + type: pad + - + name: rx-dropped + type: u64 + - + name: tx-dropped + type: u64 + - + name: vf-vlan-attrs + attributes: + - + name: info + type: binary + struct: ifla-vf-vlan-info + multi-attr: true + - + name: vf-ports-attrs + attributes: [] + - + name: port-self-attrs + attributes: [] + - + name: linkinfo-attrs + attributes: + - + name: kind + type: string + - + name: data + type: sub-message + sub-message: linkinfo-data-msg + selector: kind + - + name: xstats + type: binary + - + name: slave-kind + type: string + - + name: slave-data + type: sub-message + sub-message: linkinfo-member-data-msg + selector: slave-kind + - + name: linkinfo-bond-attrs + name-prefix: ifla-bond- + attributes: + - + name: mode + type: u8 + - + name: active-slave + type: u32 + - + name: miimon + type: u32 + - + name: updelay + type: u32 + - + name: downdelay + type: u32 + - + name: use-carrier + type: u8 + - + name: arp-interval + type: u32 + - + name: arp-ip-target + type: indexed-array + sub-type: u32 + byte-order: big-endian + display-hint: ipv4 + - + name: arp-validate + type: u32 + - + name: arp-all-targets + type: u32 + - + name: primary + type: u32 + - + name: primary-reselect + type: u8 + - + name: fail-over-mac + type: u8 + - + name: xmit-hash-policy + type: u8 + - + name: resend-igmp + type: u32 + - + name: num-peer-notif + type: u8 + - + name: all-slaves-active + type: u8 + - + name: min-links + type: u32 + - + name: lp-interval + type: u32 + - + name: packets-per-slave + type: u32 + - + name: ad-lacp-rate + type: u8 + - + name: ad-select + type: u8 + - + name: ad-info + type: nest + nested-attributes: bond-ad-info-attrs + - + name: ad-actor-sys-prio + type: u16 + - + name: ad-user-port-key + type: u16 + - + name: ad-actor-system + type: binary + display-hint: mac + - + name: tlb-dynamic-lb + type: u8 + - + name: peer-notif-delay + type: u32 + - + name: ad-lacp-active + type: u8 + - + name: missed-max + type: u8 + - + name: ns-ip6-target + type: indexed-array + sub-type: binary + display-hint: ipv6 + - + name: coupled-control + type: u8 + - + name: bond-ad-info-attrs + name-prefix: ifla-bond-ad-info- + attributes: + - + name: aggregator + type: u16 + - + name: num-ports + type: u16 + - + name: actor-key + type: u16 + - + name: partner-key + type: u16 + - + name: partner-mac + type: binary + display-hint: mac + - + name: bond-slave-attrs + name-prefix: ifla-bond-slave- + attributes: + - + name: state + type: u8 + - + name: mii-status + type: u8 + - + name: link-failure-count + type: u32 + - + name: perm-hwaddr + type: binary + display-hint: mac + - + name: queue-id + type: u16 + - + name: ad-aggregator-id + type: u16 + - + name: ad-actor-oper-port-state + type: u8 + - + name: ad-partner-oper-port-state + type: u16 + - + name: prio + type: u32 + - + name: linkinfo-bridge-attrs + name-prefix: ifla-br- + attributes: + - + name: forward-delay + type: u32 + - + name: hello-time + type: u32 + - + name: max-age + type: u32 + - + name: ageing-time + type: u32 + - + name: stp-state + type: u32 + - + name: priority + type: u16 + - + name: vlan-filtering + type: u8 + - + name: vlan-protocol + type: u16 + - + name: group-fwd-mask + type: u16 + - + name: root-id + type: binary + struct: ifla-bridge-id + - + name: bridge-id + type: binary + struct: ifla-bridge-id + - + name: root-port + type: u16 + - + name: root-path-cost + type: u32 + - + name: topology-change + type: u8 + - + name: topology-change-detected + type: u8 + - + name: hello-timer + type: u64 + - + name: tcn-timer + type: u64 + - + name: topology-change-timer + type: u64 + - + name: gc-timer + type: u64 + - + name: group-addr + type: binary + display-hint: mac + - + name: fdb-flush + type: binary + - + name: mcast-router + type: u8 + - + name: mcast-snooping + type: u8 + - + name: mcast-query-use-ifaddr + type: u8 + - + name: mcast-querier + type: u8 + - + name: mcast-hash-elasticity + type: u32 + - + name: mcast-hash-max + type: u32 + - + name: mcast-last-member-cnt + type: u32 + - + name: mcast-startup-query-cnt + type: u32 + - + name: mcast-last-member-intvl + type: u64 + - + name: mcast-membership-intvl + type: u64 + - + name: mcast-querier-intvl + type: u64 + - + name: mcast-query-intvl + type: u64 + - + name: mcast-query-response-intvl + type: u64 + - + name: mcast-startup-query-intvl + type: u64 + - + name: nf-call-iptables + type: u8 + - + name: nf-call-ip6-tables + type: u8 + - + name: nf-call-arptables + type: u8 + - + name: vlan-default-pvid + type: u16 + - + name: pad + type: pad + - + name: vlan-stats-enabled + type: u8 + - + name: mcast-stats-enabled + type: u8 + - + name: mcast-igmp-version + type: u8 + - + name: mcast-mld-version + type: u8 + - + name: vlan-stats-per-port + type: u8 + - + name: multi-boolopt + type: binary + struct: br-boolopt-multi + - + name: mcast-querier-state + type: binary + - + name: fdb-n-learned + type: u32 + - + name: fdb-max-learned + type: u32 + - + name: linkinfo-brport-attrs + name-prefix: ifla-brport- + attributes: + - + name: state + type: u8 + - + name: priority + type: u16 + - + name: cost + type: u32 + - + name: mode + type: flag + - + name: guard + type: flag + - + name: protect + type: flag + - + name: fast-leave + type: flag + - + name: learning + type: flag + - + name: unicast-flood + type: flag + - + name: proxyarp + type: flag + - + name: learning-sync + type: flag + - + name: proxyarp-wifi + type: flag + - + name: root-id + type: binary + struct: ifla-bridge-id + - + name: bridge-id + type: binary + struct: ifla-bridge-id + - + name: designated-port + type: u16 + - + name: designated-cost + type: u16 + - + name: id + type: u16 + - + name: "no" + type: u16 + - + name: topology-change-ack + type: u8 + - + name: config-pending + type: u8 + - + name: message-age-timer + type: u64 + - + name: forward-delay-timer + type: u64 + - + name: hold-timer + type: u64 + - + name: flush + type: flag + - + name: multicast-router + type: u8 + - + name: pad + type: pad + - + name: mcast-flood + type: flag + - + name: mcast-to-ucast + type: flag + - + name: vlan-tunnel + type: flag + - + name: bcast-flood + type: flag + - + name: group-fwd-mask + type: u16 + - + name: neigh-suppress + type: flag + - + name: isolated + type: flag + - + name: backup-port + type: u32 + - + name: mrp-ring-open + type: flag + - + name: mrp-in-open + type: flag + - + name: mcast-eht-hosts-limit + type: u32 + - + name: mcast-eht-hosts-cnt + type: u32 + - + name: locked + type: flag + - + name: mab + type: flag + - + name: mcast-n-groups + type: u32 + - + name: mcast-max-groups + type: u32 + - + name: neigh-vlan-suppress + type: flag + - + name: backup-nhid + type: u32 + - + name: linkinfo-gre-attrs + name-prefix: ifla-gre- + attributes: + - + name: link + type: u32 + - + name: iflags + type: u16 + - + name: oflags + type: u16 + - + name: ikey + type: u32 + - + name: okey + type: u32 + - + name: local + type: binary + display-hint: ipv4 + - + name: remote + type: binary + display-hint: ipv4 + - + name: ttl + type: u8 + - + name: tos + type: u8 + - + name: pmtudisc + type: u8 + - + name: encap-limit + type: u32 + - + name: flowinfo + type: u32 + - + name: flags + type: u32 + - + name: encap-type + type: u16 + - + name: encap-flags + type: u16 + - + name: encap-sport + type: u16 + - + name: encap-dport + type: u16 + - + name: collect-metadata + type: flag + - + name: ignore-df + type: u8 + - + name: fwmark + type: u32 + - + name: erspan-index + type: u32 + - + name: erspan-ver + type: u8 + - + name: erspan-dir + type: u8 + - + name: erspan-hwid + type: u16 + - + name: linkinfo-vti-attrs + name-prefix: ifla-vti- + attributes: + - + name: link + type: u32 + - + name: ikey + type: u32 + - + name: okey + type: u32 + - + name: local + type: binary + display-hint: ipv4 + - + name: remote + type: binary + display-hint: ipv4 + - + name: fwmark + type: u32 + - + name: linkinfo-vti6-attrs + subset-of: linkinfo-vti-attrs + attributes: + - + name: link + - + name: ikey + - + name: okey + - + name: local + display-hint: ipv6 + - + name: remote + display-hint: ipv6 + - + name: fwmark + - + name: linkinfo-geneve-attrs + name-prefix: ifla-geneve- + attributes: + - + name: id + type: u32 + - + name: remote + type: binary + display-hint: ipv4 + - + name: ttl + type: u8 + - + name: tos + type: u8 + - + name: port + type: u16 + - + name: collect-metadata + type: flag + - + name: remote6 + type: binary + display-hint: ipv6 + - + name: udp-csum + type: u8 + - + name: udp-zero-csum6-tx + type: u8 + - + name: udp-zero-csum6-rx + type: u8 + - + name: label + type: u32 + - + name: ttl-inherit + type: u8 + - + name: df + type: u8 + - + name: inner-proto-inherit + type: flag + - + name: port-range + type: binary + struct: ifla-geneve-port-range + - + name: linkinfo-iptun-attrs + name-prefix: ifla-iptun- + attributes: + - + name: link + type: u32 + - + name: local + type: binary + display-hint: ipv4 + - + name: remote + type: binary + display-hint: ipv4 + - + name: ttl + type: u8 + - + name: tos + type: u8 + - + name: encap-limit + type: u8 + - + name: flowinfo + type: u32 + - + name: flags + type: u16 + - + name: proto + type: u8 + - + name: pmtudisc + type: u8 + - + name: 6rd-prefix + type: binary + display-hint: ipv6 + - + name: 6rd-relay-prefix + type: binary + display-hint: ipv4 + - + name: 6rd-prefixlen + type: u16 + - + name: 6rd-relay-prefixlen + type: u16 + - + name: encap-type + type: u16 + - + name: encap-flags + type: u16 + - + name: encap-sport + type: u16 + - + name: encap-dport + type: u16 + - + name: collect-metadata + type: flag + - + name: fwmark + type: u32 + - + name: linkinfo-ip6tnl-attrs + subset-of: linkinfo-iptun-attrs + attributes: + - + name: link + - + name: local + display-hint: ipv6 + - + name: remote + display-hint: ipv6 + - + name: ttl + - + name: encap-limit + - + name: flowinfo + - + name: flags + # ip6tnl unlike ipip and sit has 32b flags + type: u32 + - + name: proto + - + name: encap-type + - + name: encap-flags + - + name: encap-sport + - + name: encap-dport + - + name: collect-metadata + - + name: fwmark + - + name: linkinfo-tun-attrs + name-prefix: ifla-tun- + attributes: + - + name: owner + type: u32 + - + name: group + type: u32 + - + name: type + type: u8 + - + name: pi + type: u8 + - + name: vnet-hdr + type: u8 + - + name: persist + type: u8 + - + name: multi-queue + type: u8 + - + name: num-queues + type: u32 + - + name: num-disabled-queues + type: u32 + - + name: linkinfo-vlan-attrs + name-prefix: ifla-vlan- + attributes: + - + name: id + type: u16 + - + name: flag + type: binary + struct: ifla-vlan-flags + - + name: egress-qos + type: nest + nested-attributes: ifla-vlan-qos + - + name: ingress-qos + type: nest + nested-attributes: ifla-vlan-qos + - + name: protocol + type: u16 + enum: vlan-protocols + byte-order: big-endian + - + name: ifla-vlan-qos + name-prefix: ifla-vlan-qos + attributes: + - + name: mapping + type: binary + multi-attr: true + struct: ifla-vlan-qos-mapping + - + name: linkinfo-vrf-attrs + name-prefix: ifla-vrf- + attributes: + - + name: table + type: u32 + - + name: xdp-attrs + attributes: + - + name: fd + type: s32 + - + name: attached + type: u8 + - + name: flags + type: u32 + - + name: prog-id + type: u32 + - + name: drv-prog-id + type: u32 + - + name: skb-prog-id + type: u32 + - + name: hw-prog-id + type: u32 + - + name: expected-fd + type: s32 + - + name: ifla-attrs + attributes: + - + name: conf + type: binary + struct: ipv4-devconf + - + name: ifla6-attrs + attributes: + - + name: flags + type: u32 + - + name: conf + type: binary + struct: ipv6-devconf + - + name: stats + type: binary + struct: ifla-inet6-stats + - + name: mcast + type: binary + - + name: cacheinfo + type: binary + struct: ifla-cacheinfo + - + name: icmp6-stats + type: binary + struct: ifla-icmp6-stats + - + name: token + type: binary + - + name: addr-gen-mode + type: u8 + - + name: ra-mtu + type: u32 + - + name: mctp-attrs + attributes: + - + name: mctp-net + type: u32 + - + name: phys-binding + type: u8 + - + name: stats-attrs + name-prefix: ifla-stats- + attributes: + - + name: link-64 + type: binary + struct: rtnl-link-stats64 + - + name: link-xstats + type: binary + - + name: link-xstats-slave + type: binary + - + name: link-offload-xstats + type: nest + nested-attributes: link-offload-xstats + - + name: af-spec + type: binary + - + name: link-offload-xstats + attributes: + - + name: cpu-hit + type: binary + - + name: hw-s-info + type: indexed-array + sub-type: nest + nested-attributes: hw-s-info-one + - + name: l3-stats + type: binary + - + name: hw-s-info-one + attributes: + - + name: request + type: u8 + - + name: used + type: u8 + - + name: link-dpll-pin-attrs + attributes: + - + name: id + type: u32 + - + name: linkinfo-netkit-attrs + name-prefix: ifla-netkit- + attributes: + - + name: peer-info + type: binary + - + name: primary + type: u8 + - + name: policy + type: u32 + enum: netkit-policy + - + name: peer-policy + type: u32 + enum: netkit-policy + - + name: mode + type: u32 + enum: netkit-mode + - + name: scrub + type: u32 + enum: netkit-scrub + - + name: peer-scrub + type: u32 + enum: netkit-scrub + - + name: headroom + type: u16 + - + name: tailroom + type: u16 + +sub-messages: + - + name: linkinfo-data-msg + formats: + - + value: bond + attribute-set: linkinfo-bond-attrs + - + value: bridge + attribute-set: linkinfo-bridge-attrs + - + value: erspan + attribute-set: linkinfo-gre-attrs + - + value: gre + attribute-set: linkinfo-gre-attrs + - + value: gretap + attribute-set: linkinfo-gre-attrs + - + value: geneve + attribute-set: linkinfo-geneve-attrs + - + value: ipip + attribute-set: linkinfo-iptun-attrs + - + value: ip6tnl + attribute-set: linkinfo-ip6tnl-attrs + - + value: sit + attribute-set: linkinfo-iptun-attrs + - + value: tun + attribute-set: linkinfo-tun-attrs + - + value: vlan + attribute-set: linkinfo-vlan-attrs + - + value: vrf + attribute-set: linkinfo-vrf-attrs + - + value: vti + attribute-set: linkinfo-vti-attrs + - + value: vti6 + attribute-set: linkinfo-vti6-attrs + - + value: netkit + attribute-set: linkinfo-netkit-attrs + - + name: linkinfo-member-data-msg + formats: + - + value: bridge + attribute-set: linkinfo-brport-attrs + - + value: bond + attribute-set: bond-slave-attrs + +operations: + enum-model: directional + list: + - + name: newlink + doc: Create a new link. + attribute-set: link-attrs + fixed-header: ifinfomsg + do: + request: + value: 16 + attributes: &link-new-attrs + - ifi-index + - ifname + - net-ns-pid + - net-ns-fd + - target-netnsid + - link-netnsid + - linkinfo + - group + - num-tx-queues + - num-rx-queues + - address + - broadcast + - mtu + - txqlen + - operstate + - linkmode + - group + - gso-max-size + - gso-max-segs + - gro-max-size + - gso-ipv4-max-size + - gro-ipv4-max-size + - af-spec + - + name: dellink + doc: Delete an existing link. + attribute-set: link-attrs + fixed-header: ifinfomsg + do: + request: + value: 17 + attributes: + - ifi-index + - ifname + - + name: getlink + doc: Get / dump information about a link. + attribute-set: link-attrs + fixed-header: ifinfomsg + do: + request: + value: 18 + attributes: + - ifi-index + - ifname + - alt-ifname + - ext-mask + - target-netnsid + reply: + value: 16 + attributes: &link-all-attrs + - ifi-family + - ifi-type + - ifi-index + - ifi-flags + - ifi-change + - address + - broadcast + - ifname + - mtu + - link + - qdisc + - stats + - cost + - priority + - master + - wireless + - protinfo + - txqlen + - map + - weight + - operstate + - linkmode + - linkinfo + - net-ns-pid + - ifalias + - num-vf + - vfinfo-list + - stats64 + - vf-ports + - port-self + - af-spec + - group + - net-ns-fd + - ext-mask + - promiscuity + - num-tx-queues + - num-rx-queues + - carrier + - phys-port-id + - carrier-changes + - phys-switch-id + - link-netnsid + - phys-port-name + - proto-down + - gso-max-segs + - gso-max-size + - pad + - xdp + - event + - new-netnsid + - if-netnsid + - target-netnsid + - carrier-up-count + - carrier-down-count + - new-ifindex + - min-mtu + - max-mtu + - prop-list + - alt-ifname + - perm-address + - proto-down-reason + - parent-dev-name + - parent-dev-bus-name + - gro-max-size + - tso-max-size + - tso-max-segs + - allmulti + - devlink-port + - gso-ipv4-max-size + - gro-ipv4-max-size + dump: + request: + value: 18 + attributes: + - target-netnsid + - ext-mask + - master + - linkinfo + reply: + value: 16 + attributes: *link-all-attrs + - + name: setlink + doc: Set information about a link. + attribute-set: link-attrs + fixed-header: ifinfomsg + do: + request: + value: 19 + attributes: *link-all-attrs + - + name: getstats + doc: Get / dump link stats. + attribute-set: stats-attrs + fixed-header: if_stats_msg + do: + request: + value: 94 + attributes: + - ifindex + reply: + value: 92 + attributes: &link-stats-attrs + - family + - ifindex + - filter-mask + - link-64 + - link-xstats + - link-xstats-slave + - link-offload-xstats + - af-spec + dump: + request: + value: 94 + reply: + value: 92 + attributes: *link-stats-attrs + +mcast-groups: + list: + - + name: rtnlgrp-link + value: 1 + - + name: rtnlgrp-stats + value: 36 diff --git a/Documentation/netlink/specs/rt-neigh.yaml b/Documentation/netlink/specs/rt-neigh.yaml new file mode 100644 index 0000000000000..e670b6dc07be4 --- /dev/null +++ b/Documentation/netlink/specs/rt-neigh.yaml @@ -0,0 +1,442 @@ +# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) + +name: rt-neigh +protocol: netlink-raw +protonum: 0 + +doc: + IP neighbour management over rtnetlink. + +definitions: + - + name: ndmsg + type: struct + members: + - + name: family + type: u8 + - + name: pad + type: pad + len: 3 + - + name: ifindex + type: s32 + - + name: state + type: u16 + enum: nud-state + - + name: flags + type: u8 + enum: ntf-flags + - + name: type + type: u8 + enum: rtm-type + - + name: ndtmsg + type: struct + members: + - + name: family + type: u8 + - + name: pad + type: pad + len: 3 + - + name: nud-state + type: flags + entries: + - incomplete + - reachable + - stale + - delay + - probe + - failed + - noarp + - permanent + - + name: ntf-flags + type: flags + entries: + - use + - self + - master + - proxy + - ext-learned + - offloaded + - sticky + - router + - + name: ntf-ext-flags + type: flags + entries: + - managed + - locked + - + name: rtm-type + type: enum + entries: + - unspec + - unicast + - local + - broadcast + - anycast + - multicast + - blackhole + - unreachable + - prohibit + - throw + - nat + - xresolve + - + name: nda-cacheinfo + type: struct + members: + - + name: confirmed + type: u32 + - + name: used + type: u32 + - + name: updated + type: u32 + - + name: refcnt + type: u32 + - + name: ndt-config + type: struct + members: + - + name: key-len + type: u16 + - + name: entry-size + type: u16 + - + name: entries + type: u32 + - + name: last-flush + type: u32 + - + name: last-rand + type: u32 + - + name: hash-rnd + type: u32 + - + name: hash-mask + type: u32 + - + name: hash-chain-gc + type: u32 + - + name: proxy-qlen + type: u32 + - + name: ndt-stats + type: struct + members: + - + name: allocs + type: u64 + - + name: destroys + type: u64 + - + name: hash-grows + type: u64 + - + name: res-failed + type: u64 + - + name: lookups + type: u64 + - + name: hits + type: u64 + - + name: rcv-probes-mcast + type: u64 + - + name: rcv-probes-ucast + type: u64 + - + name: periodic-gc-runs + type: u64 + - + name: forced-gc-runs + type: u64 + - + name: table-fulls + type: u64 + +attribute-sets: + - + name: neighbour-attrs + attributes: + - + name: unspec + type: binary + value: 0 + - + name: dst + type: binary + display-hint: ipv4 + - + name: lladr + type: binary + display-hint: mac + - + name: cacheinfo + type: binary + struct: nda-cacheinfo + - + name: probes + type: u32 + - + name: vlan + type: u16 + - + name: port + type: u16 + - + name: vni + type: u32 + - + name: ifindex + type: u32 + - + name: master + type: u32 + - + name: link-netnsid + type: s32 + - + name: src-vni + type: u32 + - + name: protocol + type: u8 + - + name: nh-id + type: u32 + - + name: fdb-ext-attrs + type: binary + - + name: flags-ext + type: u32 + enum: ntf-ext-flags + - + name: ndm-state-mask + type: u16 + - + name: ndm-flags-mask + type: u8 + - + name: ndt-attrs + attributes: + - + name: name + type: string + - + name: thresh1 + type: u32 + - + name: thresh2 + type: u32 + - + name: thresh3 + type: u32 + - + name: config + type: binary + struct: ndt-config + - + name: parms + type: nest + nested-attributes: ndtpa-attrs + - + name: stats + type: binary + struct: ndt-stats + - + name: gc-interval + type: u64 + - + name: pad + type: pad + - + name: ndtpa-attrs + attributes: + - + name: ifindex + type: u32 + - + name: refcnt + type: u32 + - + name: reachable-time + type: u64 + - + name: base-reachable-time + type: u64 + - + name: retrans-time + type: u64 + - + name: gc-staletime + type: u64 + - + name: delay-probe-time + type: u64 + - + name: queue-len + type: u32 + - + name: app-probes + type: u32 + - + name: ucast-probes + type: u32 + - + name: mcast-probes + type: u32 + - + name: anycast-delay + type: u64 + - + name: proxy-delay + type: u64 + - + name: proxy-qlen + type: u32 + - + name: locktime + type: u64 + - + name: queue-lenbytes + type: u32 + - + name: mcast-reprobes + type: u32 + - + name: pad + type: pad + - + name: interval-probe-time-ms + type: u64 + +operations: + enum-model: directional + list: + - + name: newneigh + doc: Add new neighbour entry + fixed-header: ndmsg + attribute-set: neighbour-attrs + do: + request: + value: 28 + attributes: &neighbour-all + - dst + - lladdr + - probes + - vlan + - port + - vni + - ifindex + - master + - protocol + - nh-id + - flags-ext + - fdb-ext-attrs + - + name: delneigh + doc: Remove an existing neighbour entry + fixed-header: ndmsg + attribute-set: neighbour-attrs + do: + request: + value: 29 + attributes: + - dst + - ifindex + - + name: delneigh-ntf + doc: Notify a neighbour deletion + value: 29 + notify: delneigh + fixed-header: ndmsg + - + name: getneigh + doc: Get or dump neighbour entries + fixed-header: ndmsg + attribute-set: neighbour-attrs + do: + request: + value: 30 + attributes: + - dst + reply: + value: 28 + attributes: *neighbour-all + dump: + request: + attributes: + - ifindex + - master + reply: + attributes: *neighbour-all + - + name: newneigh-ntf + doc: Notify a neighbour creation + value: 28 + notify: getneigh + fixed-header: ndmsg + - + name: getneightbl + doc: Get or dump neighbour tables + fixed-header: ndtmsg + attribute-set: ndt-attrs + dump: + request: + value: 66 + reply: + value: 64 + attributes: + - name + - thresh1 + - thresh2 + - thresh3 + - config + - parms + - stats + - gc-interval + - + name: setneightbl + doc: Set neighbour tables + fixed-header: ndtmsg + attribute-set: ndt-attrs + do: + request: + value: 67 + attributes: + - name + - thresh1 + - thresh2 + - thresh3 + - parms + - gc-interval + +mcast-groups: + list: + - + name: rtnlgrp-neigh + value: 3 diff --git a/Documentation/netlink/specs/rt-route.yaml b/Documentation/netlink/specs/rt-route.yaml new file mode 100644 index 0000000000000..292469c7d4b9f --- /dev/null +++ b/Documentation/netlink/specs/rt-route.yaml @@ -0,0 +1,336 @@ +# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) + +name: rt-route +protocol: netlink-raw +protonum: 0 + +doc: + Route configuration over rtnetlink. + +definitions: + - + name: rtm-type + name-prefix: rtn- + type: enum + entries: + - unspec + - unicast + - local + - broadcast + - anycast + - multicast + - blackhole + - unreachable + - prohibit + - throw + - nat + - xresolve + - + name: rtmsg + type: struct + members: + - + name: rtm-family + type: u8 + - + name: rtm-dst-len + type: u8 + - + name: rtm-src-len + type: u8 + - + name: rtm-tos + type: u8 + - + name: rtm-table + type: u8 + - + name: rtm-protocol + type: u8 + - + name: rtm-scope + type: u8 + - + name: rtm-type + type: u8 + enum: rtm-type + - + name: rtm-flags + type: u32 + - + name: rta-cacheinfo + type: struct + members: + - + name: rta-clntref + type: u32 + - + name: rta-lastuse + type: u32 + - + name: rta-expires + type: u32 + - + name: rta-error + type: u32 + - + name: rta-used + type: u32 + +attribute-sets: + - + name: route-attrs + name-prefix: rta- + attributes: + - + name: dst + type: binary + display-hint: ipv4 + - + name: src + type: binary + display-hint: ipv4 + - + name: iif + type: u32 + - + name: oif + type: u32 + - + name: gateway + type: binary + display-hint: ipv4 + - + name: priority + type: u32 + - + name: prefsrc + type: binary + display-hint: ipv4 + - + name: metrics + type: nest + nested-attributes: metrics + - + name: multipath + type: binary + - + name: protoinfo # not used + type: binary + - + name: flow + type: u32 + - + name: cacheinfo + type: binary + struct: rta-cacheinfo + - + name: session # not used + type: binary + - + name: mp-algo # not used + type: binary + - + name: table + type: u32 + - + name: mark + type: u32 + - + name: mfc-stats + type: binary + - + name: via + type: binary + - + name: newdst + type: binary + - + name: pref + type: u8 + - + name: encap-type + type: u16 + - + name: encap + type: binary # tunnel specific nest + - + name: expires + type: u32 + - + name: pad + type: binary + - + name: uid + type: u32 + - + name: ttl-propagate + type: u8 + - + name: ip-proto + type: u8 + - + name: sport + type: u16 + - + name: dport + type: u16 + - + name: nh-id + type: u32 + - + name: flowlabel + type: u32 + byte-order: big-endian + display-hint: hex + - + name: metrics + name-prefix: rtax- + attributes: + - + name: unspec + type: unused + value: 0 + - + name: lock + type: u32 + - + name: mtu + type: u32 + - + name: window + type: u32 + - + name: rtt + type: u32 + - + name: rttvar + type: u32 + - + name: ssthresh + type: u32 + - + name: cwnd + type: u32 + - + name: advmss + type: u32 + - + name: reordering + type: u32 + - + name: hoplimit + type: u32 + - + name: initcwnd + type: u32 + - + name: features + type: u32 + - + name: rto-min + type: u32 + - + name: initrwnd + type: u32 + - + name: quickack + type: u32 + - + name: cc-algo + type: string + - + name: fastopen-no-cookie + type: u32 + +operations: + enum-model: directional + list: + - + name: getroute + doc: Dump route information. + attribute-set: route-attrs + fixed-header: rtmsg + do: + request: + value: 26 + attributes: + - rtm-family + - src + - rtm-src-len + - dst + - rtm-dst-len + - iif + - oif + - ip-proto + - sport + - dport + - mark + - uid + - flowlabel + reply: + value: 24 + attributes: &all-route-attrs + - rtm-family + - rtm-dst-len + - rtm-src-len + - rtm-tos + - rtm-table + - rtm-protocol + - rtm-scope + - rtm-type + - rtm-flags + - dst + - src + - iif + - oif + - gateway + - priority + - prefsrc + - metrics + - multipath + - flow + - cacheinfo + - table + - mark + - mfc-stats + - via + - newdst + - pref + - encap-type + - encap + - expires + - pad + - uid + - ttl-propagate + - ip-proto + - sport + - dport + - nh-id + - flowlabel + dump: + request: + value: 26 + attributes: + - rtm-family + reply: + value: 24 + attributes: *all-route-attrs + - + name: newroute + doc: Create a new route + attribute-set: route-attrs + fixed-header: rtmsg + do: + request: + value: 24 + attributes: *all-route-attrs + - + name: delroute + doc: Delete an existing route + attribute-set: route-attrs + fixed-header: rtmsg + do: + request: + value: 25 + attributes: *all-route-attrs diff --git a/Documentation/netlink/specs/rt-rule.yaml b/Documentation/netlink/specs/rt-rule.yaml new file mode 100644 index 0000000000000..de0938d365419 --- /dev/null +++ b/Documentation/netlink/specs/rt-rule.yaml @@ -0,0 +1,269 @@ +# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) + +name: rt-rule +protocol: netlink-raw +protonum: 0 + +doc: + FIB rule management over rtnetlink. + +definitions: + - + name: rtgenmsg + type: struct + members: + - + name: family + type: u8 + - + name: pad + type: pad + len: 3 + - + name: fib-rule-hdr + type: struct + members: + - + name: family + type: u8 + - + name: dst-len + type: u8 + - + name: src-len + type: u8 + - + name: tos + type: u8 + - + name: table + type: u8 + - + name: res1 + type: pad + len: 1 + - + name: res2 + type: pad + len: 1 + - + name: action + type: u8 + enum: fr-act + - + name: flags + type: u32 + - + name: fr-act + type: enum + entries: + - unspec + - to-tbl + - goto + - nop + - res3 + - res4 + - blackhole + - unreachable + - prohibit + - + name: fib-rule-port-range + type: struct + members: + - + name: start + type: u16 + - + name: end + type: u16 + - + name: fib-rule-uid-range + type: struct + members: + - + name: start + type: u32 + - + name: end + type: u32 + +attribute-sets: + - + name: fib-rule-attrs + attributes: + - + name: dst + type: u32 + - + name: src + type: u32 + - + name: iifname + type: string + - + name: goto + type: u32 + - + name: unused2 + type: pad + - + name: priority + type: u32 + - + name: unused3 + type: pad + - + name: unused4 + type: pad + - + name: unused5 + type: pad + - + name: fwmark + type: u32 + display-hint: hex + - + name: flow + type: u32 + - + name: tun-id + type: u64 + - + name: suppress-ifgroup + type: u32 + - + name: suppress-prefixlen + type: u32 + display-hint: hex + - + name: table + type: u32 + - + name: fwmask + type: u32 + display-hint: hex + - + name: oifname + type: string + - + name: pad + type: pad + - + name: l3mdev + type: u8 + - + name: uid-range + type: binary + struct: fib-rule-uid-range + - + name: protocol + type: u8 + - + name: ip-proto + type: u8 + - + name: sport-range + type: binary + struct: fib-rule-port-range + - + name: dport-range + type: binary + struct: fib-rule-port-range + - + name: dscp + type: u8 + - + name: flowlabel + type: u32 + byte-order: big-endian + display-hint: hex + - + name: flowlabel-mask + type: u32 + byte-order: big-endian + display-hint: hex + - + name: sport-mask + type: u16 + display-hint: hex + - + name: dport-mask + type: u16 + display-hint: hex + - + name: dscp-mask + type: u8 + display-hint: hex + +operations: + enum-model: directional + fixed-header: fib-rule-hdr + list: + - + name: newrule + doc: Add new FIB rule + attribute-set: fib-rule-attrs + do: + request: + value: 32 + attributes: &fib-rule-all + - iifname + - oifname + - priority + - fwmark + - flow + - tun-id + - fwmask + - table + - suppress-prefixlen + - suppress-ifgroup + - goto + - l3mdev + - uid-range + - protocol + - ip-proto + - sport-range + - dport-range + - dscp + - flowlabel + - flowlabel-mask + - sport-mask + - dport-mask + - dscp-mask + - + name: newrule-ntf + doc: Notify a rule creation + value: 32 + notify: newrule + - + name: delrule + doc: Remove an existing FIB rule + attribute-set: fib-rule-attrs + do: + request: + value: 33 + attributes: *fib-rule-all + - + name: delrule-ntf + doc: Notify a rule deletion + value: 33 + notify: delrule + - + name: getrule + doc: Dump all FIB rules + attribute-set: fib-rule-attrs + dump: + request: + value: 34 + reply: + value: 32 + attributes: *fib-rule-all + +mcast-groups: + list: + - + name: rtnlgrp-ipv4-rule + value: 8 + - + name: rtnlgrp-ipv6-rule + value: 19 diff --git a/Documentation/netlink/specs/rt_addr.yaml b/Documentation/netlink/specs/rt_addr.yaml deleted file mode 100644 index df6b23f06a228..0000000000000 --- a/Documentation/netlink/specs/rt_addr.yaml +++ /dev/null @@ -1,204 +0,0 @@ -# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) - -name: rt-addr -protocol: netlink-raw -protonum: 0 - -doc: - Address configuration over rtnetlink. - -definitions: - - - name: ifaddrmsg - type: struct - members: - - - name: ifa-family - type: u8 - - - name: ifa-prefixlen - type: u8 - - - name: ifa-flags - type: u8 - enum: ifa-flags - enum-as-flags: true - - - name: ifa-scope - type: u8 - - - name: ifa-index - type: u32 - - - name: ifa-cacheinfo - type: struct - members: - - - name: ifa-prefered - type: u32 - - - name: ifa-valid - type: u32 - - - name: cstamp - type: u32 - - - name: tstamp - type: u32 - - - - name: ifa-flags - type: flags - entries: - - - name: secondary - - - name: nodad - - - name: optimistic - - - name: dadfailed - - - name: homeaddress - - - name: deprecated - - - name: tentative - - - name: permanent - - - name: managetempaddr - - - name: noprefixroute - - - name: mcautojoin - - - name: stable-privacy - -attribute-sets: - - - name: addr-attrs - name-prefix: ifa- - attributes: - - - name: address - type: binary - display-hint: ipv4 - - - name: local - type: binary - display-hint: ipv4 - - - name: label - type: string - - - name: broadcast - type: binary - display-hint: ipv4 - - - name: anycast - type: binary - - - name: cacheinfo - type: binary - struct: ifa-cacheinfo - - - name: multicast - type: binary - - - name: flags - type: u32 - enum: ifa-flags - enum-as-flags: true - - - name: rt-priority - type: u32 - - - name: target-netnsid - type: binary - - - name: proto - type: u8 - - -operations: - fixed-header: ifaddrmsg - enum-model: directional - list: - - - name: newaddr - doc: Add new address - attribute-set: addr-attrs - do: - request: - value: 20 - attributes: &ifaddr-all - - ifa-family - - ifa-flags - - ifa-prefixlen - - ifa-scope - - ifa-index - - address - - label - - local - - cacheinfo - - - name: deladdr - doc: Remove address - attribute-set: addr-attrs - do: - request: - value: 21 - attributes: - - ifa-family - - ifa-flags - - ifa-prefixlen - - ifa-scope - - ifa-index - - address - - local - - - name: getaddr - doc: Dump address information. - attribute-set: addr-attrs - dump: - request: - value: 22 - attributes: - - ifa-index - reply: - value: 20 - attributes: *ifaddr-all - - - name: getmulticast - doc: Get / dump IPv4/IPv6 multicast addresses. - attribute-set: addr-attrs - fixed-header: ifaddrmsg - do: - request: - value: 58 - attributes: - - ifa-family - - ifa-index - reply: - value: 58 - attributes: &mcaddr-attrs - - multicast - - cacheinfo - dump: - request: - value: 58 - attributes: - - ifa-family - reply: - value: 58 - attributes: *mcaddr-attrs - -mcast-groups: - list: - - - name: rtnlgrp-ipv4-ifaddr - value: 5 - - - name: rtnlgrp-ipv6-ifaddr - value: 9 diff --git a/Documentation/netlink/specs/rt_link.yaml b/Documentation/netlink/specs/rt_link.yaml deleted file mode 100644 index 31238455f8e9d..0000000000000 --- a/Documentation/netlink/specs/rt_link.yaml +++ /dev/null @@ -1,2523 +0,0 @@ -# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) - -name: rt-link -protocol: netlink-raw -protonum: 0 - -doc: - Link configuration over rtnetlink. - -definitions: - - - name: ifinfo-flags - type: flags - entries: - - - name: up - - - name: broadcast - - - name: debug - - - name: loopback - - - name: point-to-point - - - name: no-trailers - - - name: running - - - name: no-arp - - - name: promisc - - - name: all-multi - - - name: master - - - name: slave - - - name: multicast - - - name: portsel - - - name: auto-media - - - name: dynamic - - - name: lower-up - - - name: dormant - - - name: echo - - - name: vlan-protocols - type: enum - entries: - - - name: 8021q - value: 33024 - - - name: 8021ad - value: 34984 - - - name: rtgenmsg - type: struct - members: - - - name: family - type: u8 - - - name: ifinfomsg - type: struct - members: - - - name: ifi-family - type: u8 - - - name: pad - type: pad - len: 1 - - - name: ifi-type - type: u16 - - - name: ifi-index - type: s32 - - - name: ifi-flags - type: u32 - enum: ifinfo-flags - enum-as-flags: true - - - name: ifi-change - type: u32 - - - name: ifla-bridge-id - type: struct - members: - - - name: prio - type: u16 - - - name: addr - type: binary - len: 6 - display-hint: mac - - - name: ifla-cacheinfo - type: struct - members: - - - name: max-reasm-len - type: u32 - - - name: tstamp - type: u32 - - - name: reachable-time - type: s32 - - - name: retrans-time - type: u32 - - - name: rtnl-link-stats - type: struct - members: - - - name: rx-packets - type: u32 - - - name: tx-packets - type: u32 - - - name: rx-bytes - type: u32 - - - name: tx-bytes - type: u32 - - - name: rx-errors - type: u32 - - - name: tx-errors - type: u32 - - - name: rx-dropped - type: u32 - - - name: tx-dropped - type: u32 - - - name: multicast - type: u32 - - - name: collisions - type: u32 - - - name: rx-length-errors - type: u32 - - - name: rx-over-errors - type: u32 - - - name: rx-crc-errors - type: u32 - - - name: rx-frame-errors - type: u32 - - - name: rx-fifo-errors - type: u32 - - - name: rx-missed-errors - type: u32 - - - name: tx-aborted-errors - type: u32 - - - name: tx-carrier-errors - type: u32 - - - name: tx-fifo-errors - type: u32 - - - name: tx-heartbeat-errors - type: u32 - - - name: tx-window-errors - type: u32 - - - name: rx-compressed - type: u32 - - - name: tx-compressed - type: u32 - - - name: rx-nohandler - type: u32 - - - name: rtnl-link-stats64 - type: struct - members: - - - name: rx-packets - type: u64 - - - name: tx-packets - type: u64 - - - name: rx-bytes - type: u64 - - - name: tx-bytes - type: u64 - - - name: rx-errors - type: u64 - - - name: tx-errors - type: u64 - - - name: rx-dropped - type: u64 - - - name: tx-dropped - type: u64 - - - name: multicast - type: u64 - - - name: collisions - type: u64 - - - name: rx-length-errors - type: u64 - - - name: rx-over-errors - type: u64 - - - name: rx-crc-errors - type: u64 - - - name: rx-frame-errors - type: u64 - - - name: rx-fifo-errors - type: u64 - - - name: rx-missed-errors - type: u64 - - - name: tx-aborted-errors - type: u64 - - - name: tx-carrier-errors - type: u64 - - - name: tx-fifo-errors - type: u64 - - - name: tx-heartbeat-errors - type: u64 - - - name: tx-window-errors - type: u64 - - - name: rx-compressed - type: u64 - - - name: tx-compressed - type: u64 - - - name: rx-nohandler - type: u64 - - - name: rx-otherhost-dropped - type: u64 - - - name: rtnl-link-ifmap - type: struct - members: - - - name: mem-start - type: u64 - - - name: mem-end - type: u64 - - - name: base-addr - type: u64 - - - name: irq - type: u16 - - - name: dma - type: u8 - - - name: port - type: u8 - - - name: ipv4-devconf - type: struct - members: - - - name: forwarding - type: u32 - - - name: mc-forwarding - type: u32 - - - name: proxy-arp - type: u32 - - - name: accept-redirects - type: u32 - - - name: secure-redirects - type: u32 - - - name: send-redirects - type: u32 - - - name: shared-media - type: u32 - - - name: rp-filter - type: u32 - - - name: accept-source-route - type: u32 - - - name: bootp-relay - type: u32 - - - name: log-martians - type: u32 - - - name: tag - type: u32 - - - name: arpfilter - type: u32 - - - name: medium-id - type: u32 - - - name: noxfrm - type: u32 - - - name: nopolicy - type: u32 - - - name: force-igmp-version - type: u32 - - - name: arp-announce - type: u32 - - - name: arp-ignore - type: u32 - - - name: promote-secondaries - type: u32 - - - name: arp-accept - type: u32 - - - name: arp-notify - type: u32 - - - name: accept-local - type: u32 - - - name: src-vmark - type: u32 - - - name: proxy-arp-pvlan - type: u32 - - - name: route-localnet - type: u32 - - - name: igmpv2-unsolicited-report-interval - type: u32 - - - name: igmpv3-unsolicited-report-interval - type: u32 - - - name: ignore-routes-with-linkdown - type: u32 - - - name: drop-unicast-in-l2-multicast - type: u32 - - - name: drop-gratuitous-arp - type: u32 - - - name: bc-forwarding - type: u32 - - - name: arp-evict-nocarrier - type: u32 - - - name: ipv6-devconf - type: struct - members: - - - name: forwarding - type: u32 - - - name: hoplimit - type: u32 - - - name: mtu6 - type: u32 - - - name: accept-ra - type: u32 - - - name: accept-redirects - type: u32 - - - name: autoconf - type: u32 - - - name: dad-transmits - type: u32 - - - name: rtr-solicits - type: u32 - - - name: rtr-solicit-interval - type: u32 - - - name: rtr-solicit-delay - type: u32 - - - name: use-tempaddr - type: u32 - - - name: temp-valid-lft - type: u32 - - - name: temp-prefered-lft - type: u32 - - - name: regen-max-retry - type: u32 - - - name: max-desync-factor - type: u32 - - - name: max-addresses - type: u32 - - - name: force-mld-version - type: u32 - - - name: accept-ra-defrtr - type: u32 - - - name: accept-ra-pinfo - type: u32 - - - name: accept-ra-rtr-pref - type: u32 - - - name: rtr-probe-interval - type: u32 - - - name: accept-ra-rt-info-max-plen - type: u32 - - - name: proxy-ndp - type: u32 - - - name: optimistic-dad - type: u32 - - - name: accept-source-route - type: u32 - - - name: mc-forwarding - type: u32 - - - name: disable-ipv6 - type: u32 - - - name: accept-dad - type: u32 - - - name: force-tllao - type: u32 - - - name: ndisc-notify - type: u32 - - - name: mldv1-unsolicited-report-interval - type: u32 - - - name: mldv2-unsolicited-report-interval - type: u32 - - - name: suppress-frag-ndisc - type: u32 - - - name: accept-ra-from-local - type: u32 - - - name: use-optimistic - type: u32 - - - name: accept-ra-mtu - type: u32 - - - name: stable-secret - type: u32 - - - name: use-oif-addrs-only - type: u32 - - - name: accept-ra-min-hop-limit - type: u32 - - - name: ignore-routes-with-linkdown - type: u32 - - - name: drop-unicast-in-l2-multicast - type: u32 - - - name: drop-unsolicited-na - type: u32 - - - name: keep-addr-on-down - type: u32 - - - name: rtr-solicit-max-interval - type: u32 - - - name: seg6-enabled - type: u32 - - - name: seg6-require-hmac - type: u32 - - - name: enhanced-dad - type: u32 - - - name: addr-gen-mode - type: u8 - - - name: disable-policy - type: u32 - - - name: accept-ra-rt-info-min-plen - type: u32 - - - name: ndisc-tclass - type: u32 - - - name: rpl-seg-enabled - type: u32 - - - name: ra-defrtr-metric - type: u32 - - - name: ioam6-enabled - type: u32 - - - name: ioam6-id - type: u32 - - - name: ioam6-id-wide - type: u32 - - - name: ndisc-evict-nocarrier - type: u32 - - - name: accept-untracked-na - type: u32 - - - name: ifla-icmp6-stats - type: struct - members: - - - name: inmsgs - type: u64 - - - name: inerrors - type: u64 - - - name: outmsgs - type: u64 - - - name: outerrors - type: u64 - - - name: csumerrors - type: u64 - - - name: ratelimithost - type: u64 - - - name: ifla-inet6-stats - type: struct - members: - - - name: inpkts - type: u64 - - - name: inoctets - type: u64 - - - name: indelivers - type: u64 - - - name: outforwdatagrams - type: u64 - - - name: outpkts - type: u64 - - - name: outoctets - type: u64 - - - name: inhdrerrors - type: u64 - - - name: intoobigerrors - type: u64 - - - name: innoroutes - type: u64 - - - name: inaddrerrors - type: u64 - - - name: inunknownprotos - type: u64 - - - name: intruncatedpkts - type: u64 - - - name: indiscards - type: u64 - - - name: outdiscards - type: u64 - - - name: outnoroutes - type: u64 - - - name: reasmtimeout - type: u64 - - - name: reasmreqds - type: u64 - - - name: reasmoks - type: u64 - - - name: reasmfails - type: u64 - - - name: fragoks - type: u64 - - - name: fragfails - type: u64 - - - name: fragcreates - type: u64 - - - name: inmcastpkts - type: u64 - - - name: outmcastpkts - type: u64 - - - name: inbcastpkts - type: u64 - - - name: outbcastpkts - type: u64 - - - name: inmcastoctets - type: u64 - - - name: outmcastoctets - type: u64 - - - name: inbcastoctets - type: u64 - - - name: outbcastoctets - type: u64 - - - name: csumerrors - type: u64 - - - name: noectpkts - type: u64 - - - name: ect1-pkts - type: u64 - - - name: ect0-pkts - type: u64 - - - name: cepkts - type: u64 - - - name: reasm-overlaps - type: u64 - - name: br-boolopt-multi - type: struct - members: - - - name: optval - type: u32 - - - name: optmask - type: u32 - - - name: if_stats_msg - type: struct - members: - - - name: family - type: u8 - - - name: pad - type: pad - len: 3 - - - name: ifindex - type: u32 - - - name: filter-mask - type: u32 - - - name: ifla-vlan-flags - type: struct - members: - - - name: flags - type: u32 - enum: vlan-flags - enum-as-flags: true - - - name: mask - type: u32 - display-hint: hex - - - name: vlan-flags - type: flags - entries: - - reorder-hdr - - gvrp - - loose-binding - - mvrp - - bridge-binding - - - name: ifla-vlan-qos-mapping - type: struct - members: - - - name: from - type: u32 - - - name: to - type: u32 - - - name: ifla-geneve-port-range - type: struct - members: - - - name: low - type: u16 - byte-order: big-endian - - - name: high - type: u16 - byte-order: big-endian - - - name: ifla-vf-mac - type: struct - members: - - - name: vf - type: u32 - - - name: mac - type: binary - len: 32 - - - name: ifla-vf-vlan - type: struct - members: - - - name: vf - type: u32 - - - name: vlan - type: u32 - - - name: qos - type: u32 - - - name: ifla-vf-tx-rate - type: struct - members: - - - name: vf - type: u32 - - - name: rate - type: u32 - - - name: ifla-vf-spoofchk - type: struct - members: - - - name: vf - type: u32 - - - name: setting - type: u32 - - - name: ifla-vf-link-state - type: struct - members: - - - name: vf - type: u32 - - - name: link-state - type: u32 - enum: ifla-vf-link-state-enum - - - name: ifla-vf-link-state-enum - type: enum - entries: - - auto - - enable - - disable - - - name: ifla-vf-rate - type: struct - members: - - - name: vf - type: u32 - - - name: min-tx-rate - type: u32 - - - name: max-tx-rate - type: u32 - - - name: ifla-vf-rss-query-en - type: struct - members: - - - name: vf - type: u32 - - - name: setting - type: u32 - - - name: ifla-vf-trust - type: struct - members: - - - name: vf - type: u32 - - - name: setting - type: u32 - - - name: ifla-vf-guid - type: struct - members: - - - name: vf - type: u32 - - - name: guid - type: u64 - - - name: ifla-vf-vlan-info - type: struct - members: - - - name: vf - type: u32 - - - name: vlan - type: u32 - - - name: qos - type: u32 - - - name: vlan-proto - type: u32 - - - name: rtext-filter - type: flags - entries: - - vf - - brvlan - - brvlan-compressed - - skip-stats - - mrp - - cfm-config - - cfm-status - - mst - - - name: netkit-policy - type: enum - entries: - - - name: forward - value: 0 - - - name: blackhole - value: 2 - - - name: netkit-mode - type: enum - entries: - - name: l2 - - name: l3 - - - - name: netkit-scrub - type: enum - entries: - - name: none - - name: default - -attribute-sets: - - - name: link-attrs - name-prefix: ifla- - attributes: - - - name: address - type: binary - display-hint: mac - - - name: broadcast - type: binary - display-hint: mac - - - name: ifname - type: string - - - name: mtu - type: u32 - - - name: link - type: u32 - - - name: qdisc - type: string - - - name: stats - type: binary - struct: rtnl-link-stats - - - name: cost - type: string - - - name: priority - type: string - - - name: master - type: u32 - - - name: wireless - type: string - - - name: protinfo - type: string - - - name: txqlen - type: u32 - - - name: map - type: binary - struct: rtnl-link-ifmap - - - name: weight - type: u32 - - - name: operstate - type: u8 - - - name: linkmode - type: u8 - - - name: linkinfo - type: nest - nested-attributes: linkinfo-attrs - - - name: net-ns-pid - type: u32 - - - name: ifalias - type: string - - - name: num-vf - type: u32 - - - name: vfinfo-list - type: nest - nested-attributes: vfinfo-list-attrs - - - name: stats64 - type: binary - struct: rtnl-link-stats64 - - - name: vf-ports - type: nest - nested-attributes: vf-ports-attrs - - - name: port-self - type: nest - nested-attributes: port-self-attrs - - - name: af-spec - type: nest - nested-attributes: af-spec-attrs - - - name: group - type: u32 - - - name: net-ns-fd - type: u32 - - - name: ext-mask - type: u32 - enum: rtext-filter - enum-as-flags: true - - - name: promiscuity - type: u32 - - - name: num-tx-queues - type: u32 - - - name: num-rx-queues - type: u32 - - - name: carrier - type: u8 - - - name: phys-port-id - type: binary - - - name: carrier-changes - type: u32 - - - name: phys-switch-id - type: binary - - - name: link-netnsid - type: s32 - - - name: phys-port-name - type: string - - - name: proto-down - type: u8 - - - name: gso-max-segs - type: u32 - - - name: gso-max-size - type: u32 - - - name: pad - type: pad - - - name: xdp - type: nest - nested-attributes: xdp-attrs - - - name: event - type: u32 - - - name: new-netnsid - type: s32 - - - name: target-netnsid - type: s32 - - - name: carrier-up-count - type: u32 - - - name: carrier-down-count - type: u32 - - - name: new-ifindex - type: s32 - - - name: min-mtu - type: u32 - - - name: max-mtu - type: u32 - - - name: prop-list - type: nest - nested-attributes: link-attrs - - - name: alt-ifname - type: string - multi-attr: true - - - name: perm-address - type: binary - display-hint: mac - - - name: proto-down-reason - type: string - - - name: parent-dev-name - type: string - - - name: parent-dev-bus-name - type: string - - - name: gro-max-size - type: u32 - - - name: tso-max-size - type: u32 - - - name: tso-max-segs - type: u32 - - - name: allmulti - type: u32 - - - name: devlink-port - type: binary - - - name: gso-ipv4-max-size - type: u32 - - - name: gro-ipv4-max-size - type: u32 - - - name: dpll-pin - type: nest - nested-attributes: link-dpll-pin-attrs - - - name: max-pacing-offload-horizon - type: uint - doc: EDT offload horizon supported by the device (in nsec). - - - name: netns-immutable - type: u8 - - - name: af-spec-attrs - attributes: - - - name: "inet" - type: nest - value: 2 - nested-attributes: ifla-attrs - - - name: "inet6" - type: nest - value: 10 - nested-attributes: ifla6-attrs - - - name: "mctp" - type: nest - value: 45 - nested-attributes: mctp-attrs - - - name: vfinfo-list-attrs - attributes: - - - name: info - type: nest - nested-attributes: vfinfo-attrs - multi-attr: true - - - name: vfinfo-attrs - attributes: - - - name: mac - type: binary - struct: ifla-vf-mac - - - name: vlan - type: binary - struct: ifla-vf-vlan - - - name: tx-rate - type: binary - struct: ifla-vf-tx-rate - - - name: spoofchk - type: binary - struct: ifla-vf-spoofchk - - - name: link-state - type: binary - struct: ifla-vf-link-state - - - name: rate - type: binary - struct: ifla-vf-rate - - - name: rss-query-en - type: binary - struct: ifla-vf-rss-query-en - - - name: stats - type: nest - nested-attributes: vf-stats-attrs - - - name: trust - type: binary - struct: ifla-vf-trust - - - name: ib-node-guid - type: binary - struct: ifla-vf-guid - - - name: ib-port-guid - type: binary - struct: ifla-vf-guid - - - name: vlan-list - type: nest - nested-attributes: vf-vlan-attrs - - - name: broadcast - type: binary - - - name: vf-stats-attrs - attributes: - - - name: rx-packets - type: u64 - value: 0 - - - name: tx-packets - type: u64 - - - name: rx-bytes - type: u64 - - - name: tx-bytes - type: u64 - - - name: broadcast - type: u64 - - - name: multicast - type: u64 - - - name: pad - type: pad - - - name: rx-dropped - type: u64 - - - name: tx-dropped - type: u64 - - - name: vf-vlan-attrs - attributes: - - - name: info - type: binary - struct: ifla-vf-vlan-info - multi-attr: true - - - name: vf-ports-attrs - attributes: [] - - - name: port-self-attrs - attributes: [] - - - name: linkinfo-attrs - attributes: - - - name: kind - type: string - - - name: data - type: sub-message - sub-message: linkinfo-data-msg - selector: kind - - - name: xstats - type: binary - - - name: slave-kind - type: string - - - name: slave-data - type: sub-message - sub-message: linkinfo-member-data-msg - selector: slave-kind - - - name: linkinfo-bond-attrs - name-prefix: ifla-bond- - attributes: - - - name: mode - type: u8 - - - name: active-slave - type: u32 - - - name: miimon - type: u32 - - - name: updelay - type: u32 - - - name: downdelay - type: u32 - - - name: use-carrier - type: u8 - - - name: arp-interval - type: u32 - - - name: arp-ip-target - type: indexed-array - sub-type: u32 - byte-order: big-endian - display-hint: ipv4 - - - name: arp-validate - type: u32 - - - name: arp-all-targets - type: u32 - - - name: primary - type: u32 - - - name: primary-reselect - type: u8 - - - name: fail-over-mac - type: u8 - - - name: xmit-hash-policy - type: u8 - - - name: resend-igmp - type: u32 - - - name: num-peer-notif - type: u8 - - - name: all-slaves-active - type: u8 - - - name: min-links - type: u32 - - - name: lp-interval - type: u32 - - - name: packets-per-slave - type: u32 - - - name: ad-lacp-rate - type: u8 - - - name: ad-select - type: u8 - - - name: ad-info - type: nest - nested-attributes: bond-ad-info-attrs - - - name: ad-actor-sys-prio - type: u16 - - - name: ad-user-port-key - type: u16 - - - name: ad-actor-system - type: binary - display-hint: mac - - - name: tlb-dynamic-lb - type: u8 - - - name: peer-notif-delay - type: u32 - - - name: ad-lacp-active - type: u8 - - - name: missed-max - type: u8 - - - name: ns-ip6-target - type: indexed-array - sub-type: binary - display-hint: ipv6 - - - name: coupled-control - type: u8 - - - name: bond-ad-info-attrs - name-prefix: ifla-bond-ad-info- - attributes: - - - name: aggregator - type: u16 - - - name: num-ports - type: u16 - - - name: actor-key - type: u16 - - - name: partner-key - type: u16 - - - name: partner-mac - type: binary - display-hint: mac - - - name: bond-slave-attrs - name-prefix: ifla-bond-slave- - attributes: - - - name: state - type: u8 - - - name: mii-status - type: u8 - - - name: link-failure-count - type: u32 - - - name: perm-hwaddr - type: binary - display-hint: mac - - - name: queue-id - type: u16 - - - name: ad-aggregator-id - type: u16 - - - name: ad-actor-oper-port-state - type: u8 - - - name: ad-partner-oper-port-state - type: u16 - - - name: prio - type: u32 - - - name: linkinfo-bridge-attrs - name-prefix: ifla-br- - attributes: - - - name: forward-delay - type: u32 - - - name: hello-time - type: u32 - - - name: max-age - type: u32 - - - name: ageing-time - type: u32 - - - name: stp-state - type: u32 - - - name: priority - type: u16 - - - name: vlan-filtering - type: u8 - - - name: vlan-protocol - type: u16 - - - name: group-fwd-mask - type: u16 - - - name: root-id - type: binary - struct: ifla-bridge-id - - - name: bridge-id - type: binary - struct: ifla-bridge-id - - - name: root-port - type: u16 - - - name: root-path-cost - type: u32 - - - name: topology-change - type: u8 - - - name: topology-change-detected - type: u8 - - - name: hello-timer - type: u64 - - - name: tcn-timer - type: u64 - - - name: topology-change-timer - type: u64 - - - name: gc-timer - type: u64 - - - name: group-addr - type: binary - display-hint: mac - - - name: fdb-flush - type: binary - - - name: mcast-router - type: u8 - - - name: mcast-snooping - type: u8 - - - name: mcast-query-use-ifaddr - type: u8 - - - name: mcast-querier - type: u8 - - - name: mcast-hash-elasticity - type: u32 - - - name: mcast-hash-max - type: u32 - - - name: mcast-last-member-cnt - type: u32 - - - name: mcast-startup-query-cnt - type: u32 - - - name: mcast-last-member-intvl - type: u64 - - - name: mcast-membership-intvl - type: u64 - - - name: mcast-querier-intvl - type: u64 - - - name: mcast-query-intvl - type: u64 - - - name: mcast-query-response-intvl - type: u64 - - - name: mcast-startup-query-intvl - type: u64 - - - name: nf-call-iptables - type: u8 - - - name: nf-call-ip6-tables - type: u8 - - - name: nf-call-arptables - type: u8 - - - name: vlan-default-pvid - type: u16 - - - name: pad - type: pad - - - name: vlan-stats-enabled - type: u8 - - - name: mcast-stats-enabled - type: u8 - - - name: mcast-igmp-version - type: u8 - - - name: mcast-mld-version - type: u8 - - - name: vlan-stats-per-port - type: u8 - - - name: multi-boolopt - type: binary - struct: br-boolopt-multi - - - name: mcast-querier-state - type: binary - - - name: fdb-n-learned - type: u32 - - - name: fdb-max-learned - type: u32 - - - name: linkinfo-brport-attrs - name-prefix: ifla-brport- - attributes: - - - name: state - type: u8 - - - name: priority - type: u16 - - - name: cost - type: u32 - - - name: mode - type: flag - - - name: guard - type: flag - - - name: protect - type: flag - - - name: fast-leave - type: flag - - - name: learning - type: flag - - - name: unicast-flood - type: flag - - - name: proxyarp - type: flag - - - name: learning-sync - type: flag - - - name: proxyarp-wifi - type: flag - - - name: root-id - type: binary - struct: ifla-bridge-id - - - name: bridge-id - type: binary - struct: ifla-bridge-id - - - name: designated-port - type: u16 - - - name: designated-cost - type: u16 - - - name: id - type: u16 - - - name: "no" - type: u16 - - - name: topology-change-ack - type: u8 - - - name: config-pending - type: u8 - - - name: message-age-timer - type: u64 - - - name: forward-delay-timer - type: u64 - - - name: hold-timer - type: u64 - - - name: flush - type: flag - - - name: multicast-router - type: u8 - - - name: pad - type: pad - - - name: mcast-flood - type: flag - - - name: mcast-to-ucast - type: flag - - - name: vlan-tunnel - type: flag - - - name: bcast-flood - type: flag - - - name: group-fwd-mask - type: u16 - - - name: neigh-suppress - type: flag - - - name: isolated - type: flag - - - name: backup-port - type: u32 - - - name: mrp-ring-open - type: flag - - - name: mrp-in-open - type: flag - - - name: mcast-eht-hosts-limit - type: u32 - - - name: mcast-eht-hosts-cnt - type: u32 - - - name: locked - type: flag - - - name: mab - type: flag - - - name: mcast-n-groups - type: u32 - - - name: mcast-max-groups - type: u32 - - - name: neigh-vlan-suppress - type: flag - - - name: backup-nhid - type: u32 - - - name: linkinfo-gre-attrs - name-prefix: ifla-gre- - attributes: - - - name: link - type: u32 - - - name: iflags - type: u16 - - - name: oflags - type: u16 - - - name: ikey - type: u32 - - - name: okey - type: u32 - - - name: local - type: binary - display-hint: ipv4 - - - name: remote - type: binary - display-hint: ipv4 - - - name: ttl - type: u8 - - - name: tos - type: u8 - - - name: pmtudisc - type: u8 - - - name: encap-limit - type: u32 - - - name: flowinfo - type: u32 - - - name: flags - type: u32 - - - name: encap-type - type: u16 - - - name: encap-flags - type: u16 - - - name: encap-sport - type: u16 - - - name: encap-dport - type: u16 - - - name: collect-metadata - type: flag - - - name: ignore-df - type: u8 - - - name: fwmark - type: u32 - - - name: erspan-index - type: u32 - - - name: erspan-ver - type: u8 - - - name: erspan-dir - type: u8 - - - name: erspan-hwid - type: u16 - - - name: linkinfo-vti-attrs - name-prefix: ifla-vti- - attributes: - - - name: link - type: u32 - - - name: ikey - type: u32 - - - name: okey - type: u32 - - - name: local - type: binary - display-hint: ipv4 - - - name: remote - type: binary - display-hint: ipv4 - - - name: fwmark - type: u32 - - - name: linkinfo-vti6-attrs - subset-of: linkinfo-vti-attrs - attributes: - - - name: link - - - name: ikey - - - name: okey - - - name: local - display-hint: ipv6 - - - name: remote - display-hint: ipv6 - - - name: fwmark - - - name: linkinfo-geneve-attrs - name-prefix: ifla-geneve- - attributes: - - - name: id - type: u32 - - - name: remote - type: binary - display-hint: ipv4 - - - name: ttl - type: u8 - - - name: tos - type: u8 - - - name: port - type: u16 - - - name: collect-metadata - type: flag - - - name: remote6 - type: binary - display-hint: ipv6 - - - name: udp-csum - type: u8 - - - name: udp-zero-csum6-tx - type: u8 - - - name: udp-zero-csum6-rx - type: u8 - - - name: label - type: u32 - - - name: ttl-inherit - type: u8 - - - name: df - type: u8 - - - name: inner-proto-inherit - type: flag - - - name: port-range - type: binary - struct: ifla-geneve-port-range - - - name: linkinfo-iptun-attrs - name-prefix: ifla-iptun- - attributes: - - - name: link - type: u32 - - - name: local - type: binary - display-hint: ipv4 - - - name: remote - type: binary - display-hint: ipv4 - - - name: ttl - type: u8 - - - name: tos - type: u8 - - - name: encap-limit - type: u8 - - - name: flowinfo - type: u32 - - - name: flags - type: u16 - - - name: proto - type: u8 - - - name: pmtudisc - type: u8 - - - name: 6rd-prefix - type: binary - display-hint: ipv6 - - - name: 6rd-relay-prefix - type: binary - display-hint: ipv4 - - - name: 6rd-prefixlen - type: u16 - - - name: 6rd-relay-prefixlen - type: u16 - - - name: encap-type - type: u16 - - - name: encap-flags - type: u16 - - - name: encap-sport - type: u16 - - - name: encap-dport - type: u16 - - - name: collect-metadata - type: flag - - - name: fwmark - type: u32 - - - name: linkinfo-ip6tnl-attrs - subset-of: linkinfo-iptun-attrs - attributes: - - - name: link - - - name: local - display-hint: ipv6 - - - name: remote - display-hint: ipv6 - - - name: ttl - - - name: encap-limit - - - name: flowinfo - - - name: flags - # ip6tnl unlike ipip and sit has 32b flags - type: u32 - - - name: proto - - - name: encap-type - - - name: encap-flags - - - name: encap-sport - - - name: encap-dport - - - name: collect-metadata - - - name: fwmark - - - name: linkinfo-tun-attrs - name-prefix: ifla-tun- - attributes: - - - name: owner - type: u32 - - - name: group - type: u32 - - - name: type - type: u8 - - - name: pi - type: u8 - - - name: vnet-hdr - type: u8 - - - name: persist - type: u8 - - - name: multi-queue - type: u8 - - - name: num-queues - type: u32 - - - name: num-disabled-queues - type: u32 - - - name: linkinfo-vlan-attrs - name-prefix: ifla-vlan- - attributes: - - - name: id - type: u16 - - - name: flag - type: binary - struct: ifla-vlan-flags - - - name: egress-qos - type: nest - nested-attributes: ifla-vlan-qos - - - name: ingress-qos - type: nest - nested-attributes: ifla-vlan-qos - - - name: protocol - type: u16 - enum: vlan-protocols - byte-order: big-endian - - - name: ifla-vlan-qos - name-prefix: ifla-vlan-qos - attributes: - - - name: mapping - type: binary - multi-attr: true - struct: ifla-vlan-qos-mapping - - - name: linkinfo-vrf-attrs - name-prefix: ifla-vrf- - attributes: - - - name: table - type: u32 - - - name: xdp-attrs - attributes: - - - name: fd - type: s32 - - - name: attached - type: u8 - - - name: flags - type: u32 - - - name: prog-id - type: u32 - - - name: drv-prog-id - type: u32 - - - name: skb-prog-id - type: u32 - - - name: hw-prog-id - type: u32 - - - name: expected-fd - type: s32 - - - name: ifla-attrs - attributes: - - - name: conf - type: binary - struct: ipv4-devconf - - - name: ifla6-attrs - attributes: - - - name: flags - type: u32 - - - name: conf - type: binary - struct: ipv6-devconf - - - name: stats - type: binary - struct: ifla-inet6-stats - - - name: mcast - type: binary - - - name: cacheinfo - type: binary - struct: ifla-cacheinfo - - - name: icmp6-stats - type: binary - struct: ifla-icmp6-stats - - - name: token - type: binary - - - name: addr-gen-mode - type: u8 - - - name: ra-mtu - type: u32 - - - name: mctp-attrs - attributes: - - - name: mctp-net - type: u32 - - - name: phys-binding - type: u8 - - - name: stats-attrs - name-prefix: ifla-stats- - attributes: - - - name: link-64 - type: binary - struct: rtnl-link-stats64 - - - name: link-xstats - type: binary - - - name: link-xstats-slave - type: binary - - - name: link-offload-xstats - type: nest - nested-attributes: link-offload-xstats - - - name: af-spec - type: binary - - - name: link-offload-xstats - attributes: - - - name: cpu-hit - type: binary - - - name: hw-s-info - type: indexed-array - sub-type: nest - nested-attributes: hw-s-info-one - - - name: l3-stats - type: binary - - - name: hw-s-info-one - attributes: - - - name: request - type: u8 - - - name: used - type: u8 - - - name: link-dpll-pin-attrs - attributes: - - - name: id - type: u32 - - - name: linkinfo-netkit-attrs - name-prefix: ifla-netkit- - attributes: - - - name: peer-info - type: binary - - - name: primary - type: u8 - - - name: policy - type: u32 - enum: netkit-policy - - - name: peer-policy - type: u32 - enum: netkit-policy - - - name: mode - type: u32 - enum: netkit-mode - - - name: scrub - type: u32 - enum: netkit-scrub - - - name: peer-scrub - type: u32 - enum: netkit-scrub - - - name: headroom - type: u16 - - - name: tailroom - type: u16 - -sub-messages: - - - name: linkinfo-data-msg - formats: - - - value: bond - attribute-set: linkinfo-bond-attrs - - - value: bridge - attribute-set: linkinfo-bridge-attrs - - - value: erspan - attribute-set: linkinfo-gre-attrs - - - value: gre - attribute-set: linkinfo-gre-attrs - - - value: gretap - attribute-set: linkinfo-gre-attrs - - - value: geneve - attribute-set: linkinfo-geneve-attrs - - - value: ipip - attribute-set: linkinfo-iptun-attrs - - - value: ip6tnl - attribute-set: linkinfo-ip6tnl-attrs - - - value: sit - attribute-set: linkinfo-iptun-attrs - - - value: tun - attribute-set: linkinfo-tun-attrs - - - value: vlan - attribute-set: linkinfo-vlan-attrs - - - value: vrf - attribute-set: linkinfo-vrf-attrs - - - value: vti - attribute-set: linkinfo-vti-attrs - - - value: vti6 - attribute-set: linkinfo-vti6-attrs - - - value: netkit - attribute-set: linkinfo-netkit-attrs - - - name: linkinfo-member-data-msg - formats: - - - value: bridge - attribute-set: linkinfo-brport-attrs - - - value: bond - attribute-set: bond-slave-attrs - -operations: - enum-model: directional - list: - - - name: newlink - doc: Create a new link. - attribute-set: link-attrs - fixed-header: ifinfomsg - do: - request: - value: 16 - attributes: &link-new-attrs - - ifi-index - - ifname - - net-ns-pid - - net-ns-fd - - target-netnsid - - link-netnsid - - linkinfo - - group - - num-tx-queues - - num-rx-queues - - address - - broadcast - - mtu - - txqlen - - operstate - - linkmode - - group - - gso-max-size - - gso-max-segs - - gro-max-size - - gso-ipv4-max-size - - gro-ipv4-max-size - - af-spec - - - name: dellink - doc: Delete an existing link. - attribute-set: link-attrs - fixed-header: ifinfomsg - do: - request: - value: 17 - attributes: - - ifi-index - - ifname - - - name: getlink - doc: Get / dump information about a link. - attribute-set: link-attrs - fixed-header: ifinfomsg - do: - request: - value: 18 - attributes: - - ifi-index - - ifname - - alt-ifname - - ext-mask - - target-netnsid - reply: - value: 16 - attributes: &link-all-attrs - - ifi-family - - ifi-type - - ifi-index - - ifi-flags - - ifi-change - - address - - broadcast - - ifname - - mtu - - link - - qdisc - - stats - - cost - - priority - - master - - wireless - - protinfo - - txqlen - - map - - weight - - operstate - - linkmode - - linkinfo - - net-ns-pid - - ifalias - - num-vf - - vfinfo-list - - stats64 - - vf-ports - - port-self - - af-spec - - group - - net-ns-fd - - ext-mask - - promiscuity - - num-tx-queues - - num-rx-queues - - carrier - - phys-port-id - - carrier-changes - - phys-switch-id - - link-netnsid - - phys-port-name - - proto-down - - gso-max-segs - - gso-max-size - - pad - - xdp - - event - - new-netnsid - - if-netnsid - - target-netnsid - - carrier-up-count - - carrier-down-count - - new-ifindex - - min-mtu - - max-mtu - - prop-list - - alt-ifname - - perm-address - - proto-down-reason - - parent-dev-name - - parent-dev-bus-name - - gro-max-size - - tso-max-size - - tso-max-segs - - allmulti - - devlink-port - - gso-ipv4-max-size - - gro-ipv4-max-size - dump: - request: - value: 18 - attributes: - - target-netnsid - - ext-mask - - master - - linkinfo - reply: - value: 16 - attributes: *link-all-attrs - - - name: setlink - doc: Set information about a link. - attribute-set: link-attrs - fixed-header: ifinfomsg - do: - request: - value: 19 - attributes: *link-all-attrs - - - name: getstats - doc: Get / dump link stats. - attribute-set: stats-attrs - fixed-header: if_stats_msg - do: - request: - value: 94 - attributes: - - ifindex - reply: - value: 92 - attributes: &link-stats-attrs - - family - - ifindex - - filter-mask - - link-64 - - link-xstats - - link-xstats-slave - - link-offload-xstats - - af-spec - dump: - request: - value: 94 - reply: - value: 92 - attributes: *link-stats-attrs - -mcast-groups: - list: - - - name: rtnlgrp-link - value: 1 - - - name: rtnlgrp-stats - value: 36 diff --git a/Documentation/netlink/specs/rt_neigh.yaml b/Documentation/netlink/specs/rt_neigh.yaml deleted file mode 100644 index e670b6dc07be4..0000000000000 --- a/Documentation/netlink/specs/rt_neigh.yaml +++ /dev/null @@ -1,442 +0,0 @@ -# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) - -name: rt-neigh -protocol: netlink-raw -protonum: 0 - -doc: - IP neighbour management over rtnetlink. - -definitions: - - - name: ndmsg - type: struct - members: - - - name: family - type: u8 - - - name: pad - type: pad - len: 3 - - - name: ifindex - type: s32 - - - name: state - type: u16 - enum: nud-state - - - name: flags - type: u8 - enum: ntf-flags - - - name: type - type: u8 - enum: rtm-type - - - name: ndtmsg - type: struct - members: - - - name: family - type: u8 - - - name: pad - type: pad - len: 3 - - - name: nud-state - type: flags - entries: - - incomplete - - reachable - - stale - - delay - - probe - - failed - - noarp - - permanent - - - name: ntf-flags - type: flags - entries: - - use - - self - - master - - proxy - - ext-learned - - offloaded - - sticky - - router - - - name: ntf-ext-flags - type: flags - entries: - - managed - - locked - - - name: rtm-type - type: enum - entries: - - unspec - - unicast - - local - - broadcast - - anycast - - multicast - - blackhole - - unreachable - - prohibit - - throw - - nat - - xresolve - - - name: nda-cacheinfo - type: struct - members: - - - name: confirmed - type: u32 - - - name: used - type: u32 - - - name: updated - type: u32 - - - name: refcnt - type: u32 - - - name: ndt-config - type: struct - members: - - - name: key-len - type: u16 - - - name: entry-size - type: u16 - - - name: entries - type: u32 - - - name: last-flush - type: u32 - - - name: last-rand - type: u32 - - - name: hash-rnd - type: u32 - - - name: hash-mask - type: u32 - - - name: hash-chain-gc - type: u32 - - - name: proxy-qlen - type: u32 - - - name: ndt-stats - type: struct - members: - - - name: allocs - type: u64 - - - name: destroys - type: u64 - - - name: hash-grows - type: u64 - - - name: res-failed - type: u64 - - - name: lookups - type: u64 - - - name: hits - type: u64 - - - name: rcv-probes-mcast - type: u64 - - - name: rcv-probes-ucast - type: u64 - - - name: periodic-gc-runs - type: u64 - - - name: forced-gc-runs - type: u64 - - - name: table-fulls - type: u64 - -attribute-sets: - - - name: neighbour-attrs - attributes: - - - name: unspec - type: binary - value: 0 - - - name: dst - type: binary - display-hint: ipv4 - - - name: lladr - type: binary - display-hint: mac - - - name: cacheinfo - type: binary - struct: nda-cacheinfo - - - name: probes - type: u32 - - - name: vlan - type: u16 - - - name: port - type: u16 - - - name: vni - type: u32 - - - name: ifindex - type: u32 - - - name: master - type: u32 - - - name: link-netnsid - type: s32 - - - name: src-vni - type: u32 - - - name: protocol - type: u8 - - - name: nh-id - type: u32 - - - name: fdb-ext-attrs - type: binary - - - name: flags-ext - type: u32 - enum: ntf-ext-flags - - - name: ndm-state-mask - type: u16 - - - name: ndm-flags-mask - type: u8 - - - name: ndt-attrs - attributes: - - - name: name - type: string - - - name: thresh1 - type: u32 - - - name: thresh2 - type: u32 - - - name: thresh3 - type: u32 - - - name: config - type: binary - struct: ndt-config - - - name: parms - type: nest - nested-attributes: ndtpa-attrs - - - name: stats - type: binary - struct: ndt-stats - - - name: gc-interval - type: u64 - - - name: pad - type: pad - - - name: ndtpa-attrs - attributes: - - - name: ifindex - type: u32 - - - name: refcnt - type: u32 - - - name: reachable-time - type: u64 - - - name: base-reachable-time - type: u64 - - - name: retrans-time - type: u64 - - - name: gc-staletime - type: u64 - - - name: delay-probe-time - type: u64 - - - name: queue-len - type: u32 - - - name: app-probes - type: u32 - - - name: ucast-probes - type: u32 - - - name: mcast-probes - type: u32 - - - name: anycast-delay - type: u64 - - - name: proxy-delay - type: u64 - - - name: proxy-qlen - type: u32 - - - name: locktime - type: u64 - - - name: queue-lenbytes - type: u32 - - - name: mcast-reprobes - type: u32 - - - name: pad - type: pad - - - name: interval-probe-time-ms - type: u64 - -operations: - enum-model: directional - list: - - - name: newneigh - doc: Add new neighbour entry - fixed-header: ndmsg - attribute-set: neighbour-attrs - do: - request: - value: 28 - attributes: &neighbour-all - - dst - - lladdr - - probes - - vlan - - port - - vni - - ifindex - - master - - protocol - - nh-id - - flags-ext - - fdb-ext-attrs - - - name: delneigh - doc: Remove an existing neighbour entry - fixed-header: ndmsg - attribute-set: neighbour-attrs - do: - request: - value: 29 - attributes: - - dst - - ifindex - - - name: delneigh-ntf - doc: Notify a neighbour deletion - value: 29 - notify: delneigh - fixed-header: ndmsg - - - name: getneigh - doc: Get or dump neighbour entries - fixed-header: ndmsg - attribute-set: neighbour-attrs - do: - request: - value: 30 - attributes: - - dst - reply: - value: 28 - attributes: *neighbour-all - dump: - request: - attributes: - - ifindex - - master - reply: - attributes: *neighbour-all - - - name: newneigh-ntf - doc: Notify a neighbour creation - value: 28 - notify: getneigh - fixed-header: ndmsg - - - name: getneightbl - doc: Get or dump neighbour tables - fixed-header: ndtmsg - attribute-set: ndt-attrs - dump: - request: - value: 66 - reply: - value: 64 - attributes: - - name - - thresh1 - - thresh2 - - thresh3 - - config - - parms - - stats - - gc-interval - - - name: setneightbl - doc: Set neighbour tables - fixed-header: ndtmsg - attribute-set: ndt-attrs - do: - request: - value: 67 - attributes: - - name - - thresh1 - - thresh2 - - thresh3 - - parms - - gc-interval - -mcast-groups: - list: - - - name: rtnlgrp-neigh - value: 3 diff --git a/Documentation/netlink/specs/rt_route.yaml b/Documentation/netlink/specs/rt_route.yaml deleted file mode 100644 index 292469c7d4b9f..0000000000000 --- a/Documentation/netlink/specs/rt_route.yaml +++ /dev/null @@ -1,336 +0,0 @@ -# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) - -name: rt-route -protocol: netlink-raw -protonum: 0 - -doc: - Route configuration over rtnetlink. - -definitions: - - - name: rtm-type - name-prefix: rtn- - type: enum - entries: - - unspec - - unicast - - local - - broadcast - - anycast - - multicast - - blackhole - - unreachable - - prohibit - - throw - - nat - - xresolve - - - name: rtmsg - type: struct - members: - - - name: rtm-family - type: u8 - - - name: rtm-dst-len - type: u8 - - - name: rtm-src-len - type: u8 - - - name: rtm-tos - type: u8 - - - name: rtm-table - type: u8 - - - name: rtm-protocol - type: u8 - - - name: rtm-scope - type: u8 - - - name: rtm-type - type: u8 - enum: rtm-type - - - name: rtm-flags - type: u32 - - - name: rta-cacheinfo - type: struct - members: - - - name: rta-clntref - type: u32 - - - name: rta-lastuse - type: u32 - - - name: rta-expires - type: u32 - - - name: rta-error - type: u32 - - - name: rta-used - type: u32 - -attribute-sets: - - - name: route-attrs - name-prefix: rta- - attributes: - - - name: dst - type: binary - display-hint: ipv4 - - - name: src - type: binary - display-hint: ipv4 - - - name: iif - type: u32 - - - name: oif - type: u32 - - - name: gateway - type: binary - display-hint: ipv4 - - - name: priority - type: u32 - - - name: prefsrc - type: binary - display-hint: ipv4 - - - name: metrics - type: nest - nested-attributes: metrics - - - name: multipath - type: binary - - - name: protoinfo # not used - type: binary - - - name: flow - type: u32 - - - name: cacheinfo - type: binary - struct: rta-cacheinfo - - - name: session # not used - type: binary - - - name: mp-algo # not used - type: binary - - - name: table - type: u32 - - - name: mark - type: u32 - - - name: mfc-stats - type: binary - - - name: via - type: binary - - - name: newdst - type: binary - - - name: pref - type: u8 - - - name: encap-type - type: u16 - - - name: encap - type: binary # tunnel specific nest - - - name: expires - type: u32 - - - name: pad - type: binary - - - name: uid - type: u32 - - - name: ttl-propagate - type: u8 - - - name: ip-proto - type: u8 - - - name: sport - type: u16 - - - name: dport - type: u16 - - - name: nh-id - type: u32 - - - name: flowlabel - type: u32 - byte-order: big-endian - display-hint: hex - - - name: metrics - name-prefix: rtax- - attributes: - - - name: unspec - type: unused - value: 0 - - - name: lock - type: u32 - - - name: mtu - type: u32 - - - name: window - type: u32 - - - name: rtt - type: u32 - - - name: rttvar - type: u32 - - - name: ssthresh - type: u32 - - - name: cwnd - type: u32 - - - name: advmss - type: u32 - - - name: reordering - type: u32 - - - name: hoplimit - type: u32 - - - name: initcwnd - type: u32 - - - name: features - type: u32 - - - name: rto-min - type: u32 - - - name: initrwnd - type: u32 - - - name: quickack - type: u32 - - - name: cc-algo - type: string - - - name: fastopen-no-cookie - type: u32 - -operations: - enum-model: directional - list: - - - name: getroute - doc: Dump route information. - attribute-set: route-attrs - fixed-header: rtmsg - do: - request: - value: 26 - attributes: - - rtm-family - - src - - rtm-src-len - - dst - - rtm-dst-len - - iif - - oif - - ip-proto - - sport - - dport - - mark - - uid - - flowlabel - reply: - value: 24 - attributes: &all-route-attrs - - rtm-family - - rtm-dst-len - - rtm-src-len - - rtm-tos - - rtm-table - - rtm-protocol - - rtm-scope - - rtm-type - - rtm-flags - - dst - - src - - iif - - oif - - gateway - - priority - - prefsrc - - metrics - - multipath - - flow - - cacheinfo - - table - - mark - - mfc-stats - - via - - newdst - - pref - - encap-type - - encap - - expires - - pad - - uid - - ttl-propagate - - ip-proto - - sport - - dport - - nh-id - - flowlabel - dump: - request: - value: 26 - attributes: - - rtm-family - reply: - value: 24 - attributes: *all-route-attrs - - - name: newroute - doc: Create a new route - attribute-set: route-attrs - fixed-header: rtmsg - do: - request: - value: 24 - attributes: *all-route-attrs - - - name: delroute - doc: Delete an existing route - attribute-set: route-attrs - fixed-header: rtmsg - do: - request: - value: 25 - attributes: *all-route-attrs diff --git a/Documentation/netlink/specs/rt_rule.yaml b/Documentation/netlink/specs/rt_rule.yaml deleted file mode 100644 index de0938d365419..0000000000000 --- a/Documentation/netlink/specs/rt_rule.yaml +++ /dev/null @@ -1,269 +0,0 @@ -# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) - -name: rt-rule -protocol: netlink-raw -protonum: 0 - -doc: - FIB rule management over rtnetlink. - -definitions: - - - name: rtgenmsg - type: struct - members: - - - name: family - type: u8 - - - name: pad - type: pad - len: 3 - - - name: fib-rule-hdr - type: struct - members: - - - name: family - type: u8 - - - name: dst-len - type: u8 - - - name: src-len - type: u8 - - - name: tos - type: u8 - - - name: table - type: u8 - - - name: res1 - type: pad - len: 1 - - - name: res2 - type: pad - len: 1 - - - name: action - type: u8 - enum: fr-act - - - name: flags - type: u32 - - - name: fr-act - type: enum - entries: - - unspec - - to-tbl - - goto - - nop - - res3 - - res4 - - blackhole - - unreachable - - prohibit - - - name: fib-rule-port-range - type: struct - members: - - - name: start - type: u16 - - - name: end - type: u16 - - - name: fib-rule-uid-range - type: struct - members: - - - name: start - type: u32 - - - name: end - type: u32 - -attribute-sets: - - - name: fib-rule-attrs - attributes: - - - name: dst - type: u32 - - - name: src - type: u32 - - - name: iifname - type: string - - - name: goto - type: u32 - - - name: unused2 - type: pad - - - name: priority - type: u32 - - - name: unused3 - type: pad - - - name: unused4 - type: pad - - - name: unused5 - type: pad - - - name: fwmark - type: u32 - display-hint: hex - - - name: flow - type: u32 - - - name: tun-id - type: u64 - - - name: suppress-ifgroup - type: u32 - - - name: suppress-prefixlen - type: u32 - display-hint: hex - - - name: table - type: u32 - - - name: fwmask - type: u32 - display-hint: hex - - - name: oifname - type: string - - - name: pad - type: pad - - - name: l3mdev - type: u8 - - - name: uid-range - type: binary - struct: fib-rule-uid-range - - - name: protocol - type: u8 - - - name: ip-proto - type: u8 - - - name: sport-range - type: binary - struct: fib-rule-port-range - - - name: dport-range - type: binary - struct: fib-rule-port-range - - - name: dscp - type: u8 - - - name: flowlabel - type: u32 - byte-order: big-endian - display-hint: hex - - - name: flowlabel-mask - type: u32 - byte-order: big-endian - display-hint: hex - - - name: sport-mask - type: u16 - display-hint: hex - - - name: dport-mask - type: u16 - display-hint: hex - - - name: dscp-mask - type: u8 - display-hint: hex - -operations: - enum-model: directional - fixed-header: fib-rule-hdr - list: - - - name: newrule - doc: Add new FIB rule - attribute-set: fib-rule-attrs - do: - request: - value: 32 - attributes: &fib-rule-all - - iifname - - oifname - - priority - - fwmark - - flow - - tun-id - - fwmask - - table - - suppress-prefixlen - - suppress-ifgroup - - goto - - l3mdev - - uid-range - - protocol - - ip-proto - - sport-range - - dport-range - - dscp - - flowlabel - - flowlabel-mask - - sport-mask - - dport-mask - - dscp-mask - - - name: newrule-ntf - doc: Notify a rule creation - value: 32 - notify: newrule - - - name: delrule - doc: Remove an existing FIB rule - attribute-set: fib-rule-attrs - do: - request: - value: 33 - attributes: *fib-rule-all - - - name: delrule-ntf - doc: Notify a rule deletion - value: 33 - notify: delrule - - - name: getrule - doc: Dump all FIB rules - attribute-set: fib-rule-attrs - dump: - request: - value: 34 - reply: - value: 32 - attributes: *fib-rule-all - -mcast-groups: - list: - - - name: rtnlgrp-ipv4-rule - value: 8 - - - name: rtnlgrp-ipv6-rule - value: 19 diff --git a/Documentation/userspace-api/netlink/netlink-raw.rst b/Documentation/userspace-api/netlink/netlink-raw.rst index 1990eea772d08..31fc91020eb34 100644 --- a/Documentation/userspace-api/netlink/netlink-raw.rst +++ b/Documentation/userspace-api/netlink/netlink-raw.rst @@ -62,7 +62,7 @@ Sub-messages ------------ Several raw netlink families such as -:doc:`rt_link<../../networking/netlink_spec/rt_link>` and +:doc:`rt-link<../../networking/netlink_spec/rt-link>` and :doc:`tc<../../networking/netlink_spec/tc>` use attribute nesting as an abstraction to carry module specific information. diff --git a/tools/testing/selftests/net/lib/py/ynl.py b/tools/testing/selftests/net/lib/py/ynl.py index 8986c584cb371..6329ae805abff 100644 --- a/tools/testing/selftests/net/lib/py/ynl.py +++ b/tools/testing/selftests/net/lib/py/ynl.py @@ -39,12 +39,12 @@ class EthtoolFamily(YnlFamily): class RtnlFamily(YnlFamily): def __init__(self, recv_size=0): - super().__init__((SPEC_PATH / Path('rt_link.yaml')).as_posix(), + super().__init__((SPEC_PATH / Path('rt-link.yaml')).as_posix(), schema='', recv_size=recv_size) class RtnlAddrFamily(YnlFamily): def __init__(self, recv_size=0): - super().__init__((SPEC_PATH / Path('rt_addr.yaml')).as_posix(), + super().__init__((SPEC_PATH / Path('rt-addr.yaml')).as_posix(), schema='', recv_size=recv_size) class NetdevFamily(YnlFamily):