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    attributes:
82      -
83        name: ifa-address
84        type: binary
85        display-hint: ipv4
86      -
87        name: ifa-local
88        type: binary
89        display-hint: ipv4
90      -
91        name: ifa-label
92        type: string
93      -
94        name: ifa-broadcast
95        type: binary
96        display-hint: ipv4
97      -
98        name: ifa-anycast
99        type: binary
100      -
101        name: ifa-cacheinfo
102        type: binary
103        struct: ifa-cacheinfo
104      -
105        name: ifa-multicast
106        type: binary
107      -
108        name: ifa-flags
109        type: u32
110        enum: ifa-flags
111        enum-as-flags: true
112      -
113        name: ifa-rt-priority
114        type: u32
115      -
116        name: ifa-target-netnsid
117        type: binary
118      -
119        name: ifa-proto
120        type: u8
121
122
123operations:
124  fixed-header: ifaddrmsg
125  enum-model: directional
126  list:
127    -
128      name: newaddr
129      doc: Add new address
130      attribute-set: addr-attrs
131      do:
132        request:
133          value: 20
134          attributes: &ifaddr-all
135            - ifa-family
136            - ifa-flags
137            - ifa-prefixlen
138            - ifa-scope
139            - ifa-index
140            - ifa-address
141            - ifa-label
142            - ifa-local
143            - ifa-cacheinfo
144    -
145      name: deladdr
146      doc: Remove address
147      attribute-set: addr-attrs
148      do:
149        request:
150          value: 21
151          attributes:
152            - ifa-family
153            - ifa-flags
154            - ifa-prefixlen
155            - ifa-scope
156            - ifa-index
157            - ifa-address
158            - ifa-local
159    -
160      name: getaddr
161      doc: Dump address information.
162      attribute-set: addr-attrs
163      dump:
164        request:
165          value: 22
166          attributes:
167            - ifa-index
168        reply:
169          value: 20
170          attributes: *ifaddr-all
171
172mcast-groups:
173  list:
174    -
175      name: rtnlgrp-ipv4-ifaddr
176      value: 5
177    -
178      name: rtnlgrp-ipv6-ifaddr
179      value: 9
180