Documentation / netlink / specs / rt_addr.yaml


Based on kernel version 6.11. Page generated on 2024-09-24 08:21 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179
# 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
    attributes:
      -
        name: ifa-address
        type: binary
        display-hint: ipv4
      -
        name: ifa-local
        type: binary
        display-hint: ipv4
      -
        name: ifa-label
        type: string
      -
        name: ifa-broadcast
        type: binary
        display-hint: ipv4
      -
        name: ifa-anycast
        type: binary
      -
        name: ifa-cacheinfo
        type: binary
        struct: ifa-cacheinfo
      -
        name: ifa-multicast
        type: binary
      -
        name: ifa-flags
        type: u32
        enum: ifa-flags
        enum-as-flags: true
      -
        name: ifa-rt-priority
        type: u32
      -
        name: ifa-target-netnsid
        type: binary
      -
        name: ifa-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
            - ifa-address
            - ifa-label
            - ifa-local
            - ifa-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
            - ifa-address
            - ifa-local
    -
      name: getaddr
      doc: Dump address information.
      attribute-set: addr-attrs
      dump:
        request:
          value: 22
          attributes:
            - ifa-index
        reply:
          value: 20
          attributes: *ifaddr-all

mcast-groups:
  list:
    -
      name: rtnlgrp-ipv4-ifaddr
      value: 5
    -
      name: rtnlgrp-ipv6-ifaddr
      value: 9