1# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
2
3name: rt-addr
4protocol: netlink-raw
5protonum: 0
6
7doc:
8  Address configuration over rtnetlink.
9
10definitions:
11  -
12    name: ifaddrmsg
13    type: struct
14    members:
15      -
16        name: ifa-family
17        type: u8
18      -
19        name: ifa-prefixlen
20        type: u8
21      -
22        name: ifa-flags
23        type: u8
24        enum: ifa-flags
25        enum-as-flags: true
26      -
27        name: ifa-scope
28        type: u8
29      -
30        name: ifa-index
31        type: u32
32  -
33    name: ifa-cacheinfo
34    type: struct
35    members:
36      -
37        name: ifa-prefered
38        type: u32
39      -
40        name: ifa-valid
41        type: u32
42      -
43        name: cstamp
44        type: u32
45      -
46        name: tstamp
47        type: u32
48
49  -
50    name: ifa-flags
51    type: flags
52    entries:
53      -
54        name: secondary
55      -
56        name: nodad
57      -
58        name: optimistic
59      -
60        name: dadfailed
61      -
62        name: homeaddress
63      -
64        name: deprecated
65      -
66        name: tentative
67      -
68        name: permanent
69      -
70        name: managetempaddr
71      -
72        name: noprefixroute
73      -
74        name: mcautojoin
75      -
76        name: stable-privacy
77
78attribute-sets:
79  -
80    name: addr-attrs
81    name-prefix: ifa-
82    attributes:
83      -
84        name: address
85        type: binary
86        display-hint: ipv4
87      -
88        name: local
89        type: binary
90        display-hint: ipv4
91      -
92        name: label
93        type: string
94      -
95        name: broadcast
96        type: binary
97        display-hint: ipv4
98      -
99        name: anycast
100        type: binary
101      -
102        name: cacheinfo
103        type: binary
104        struct: ifa-cacheinfo
105      -
106        name: multicast
107        type: binary
108      -
109        name: flags
110        type: u32
111        enum: ifa-flags
112        enum-as-flags: true
113      -
114        name: rt-priority
115        type: u32
116      -
117        name: target-netnsid
118        type: binary
119      -
120        name: proto
121        type: u8
122
123
124operations:
125  fixed-header: ifaddrmsg
126  enum-model: directional
127  list:
128    -
129      name: newaddr
130      doc: Add new address
131      attribute-set: addr-attrs
132      do:
133        request:
134          value: 20
135          attributes: &ifaddr-all
136            - ifa-family
137            - ifa-flags
138            - ifa-prefixlen
139            - ifa-scope
140            - ifa-index
141            - address
142            - label
143            - local
144            - cacheinfo
145    -
146      name: deladdr
147      doc: Remove address
148      attribute-set: addr-attrs
149      do:
150        request:
151          value: 21
152          attributes:
153            - ifa-family
154            - ifa-flags
155            - ifa-prefixlen
156            - ifa-scope
157            - ifa-index
158            - address
159            - local
160    -
161      name: getaddr
162      doc: Dump address information.
163      attribute-set: addr-attrs
164      dump:
165        request:
166          value: 22
167          attributes:
168            - ifa-index
169        reply:
170          value: 20
171          attributes: *ifaddr-all
172    -
173      name: getmulticast
174      doc: Get / dump IPv4/IPv6 multicast addresses.
175      attribute-set: addr-attrs
176      fixed-header: ifaddrmsg
177      do:
178        request:
179          value: 58
180          attributes:
181            - ifa-family
182            - ifa-index
183        reply:
184          value: 58
185          attributes: &mcaddr-attrs
186            - multicast
187            - cacheinfo
188      dump:
189        request:
190          value: 58
191          attributes:
192            - ifa-family
193        reply:
194          value: 58
195          attributes: *mcaddr-attrs
196
197mcast-groups:
198  list:
199    -
200      name: rtnlgrp-ipv4-ifaddr
201      value: 5
202    -
203      name: rtnlgrp-ipv6-ifaddr
204      value: 9
205