# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) --- name: rt-addr protocol: netlink-raw uapi-header: linux/rtnetlink.h 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 name-prefix: ifa-f- enum-name: 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 - name: global attribute-sets: - name: addr-attrs name-prefix: ifa- attributes: - name: address type: binary display-hint: ipv4-or-v6 - name: local type: binary display-hint: ipv4-or-v6 - name: label type: string - name: broadcast type: u32 byte-order: big-endian 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: s32 - name: proto type: u8 - name: mc-users type: u32 operations: fixed-header: ifaddrmsg enum-model: directional name-prefix: rtm- list: - name: newaddr doc: Add new address attribute-set: addr-attrs do: request: value: 20 attributes: &ifaddr-all - address - label - local - cacheinfo - name: deladdr doc: Remove address attribute-set: addr-attrs do: request: value: 21 attributes: - address - local - name: getaddr doc: Dump address information. attribute-set: addr-attrs dump: request: value: 22 attributes: [] reply: value: 20 attributes: *ifaddr-all - name: getmulticast doc: | Get / dump multicast addresses. ifa-family must select the address family: AF_INET or AF_INET6 for the IP multicast groups joined on a device, AF_PACKET for the link-layer multicast addresses in the device filter. Link-layer entries added explicitly, e.g. with SIOCADDMULTI or "bridge fdb add ... self", rather than by a protocol join are reported with the global flag set. For AF_PACKET a non-zero ifa-index restricts the dump to that device and ifa-prefixlen, ifa-flags and ifa-scope must be zero, AF_INET and AF_INET6 apply this and target-netnsid with NETLINK_GET_STRICT_CHK only. attribute-set: addr-attrs fixed-header: ifaddrmsg do: request: value: 58 attributes: [] reply: value: 58 attributes: &mcaddr-attrs - multicast - mc-users - cacheinfo - flags - target-netnsid dump: request: value: 58 attributes: - target-netnsid reply: value: 58 attributes: *mcaddr-attrs mcast-groups: list: - name: rtnlgrp-ipv4-ifaddr value: 5 - name: rtnlgrp-ipv6-ifaddr value: 9