1# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) 2--- 3name: rt-rule 4protocol: netlink-raw 5uapi-header: linux/fib_rules.h 6protonum: 0 7 8doc: >- 9 FIB rule management over rtnetlink. 10 11definitions: 12 - 13 name: rtgenmsg 14 type: struct 15 members: 16 - 17 name: family 18 type: u8 19 - 20 name: pad 21 type: pad 22 len: 3 23 - 24 name: fib-rule-hdr 25 type: struct 26 members: 27 - 28 name: family 29 type: u8 30 - 31 name: dst-len 32 type: u8 33 - 34 name: src-len 35 type: u8 36 - 37 name: tos 38 type: u8 39 - 40 name: table 41 type: u8 42 - 43 name: res1 44 type: pad 45 len: 1 46 - 47 name: res2 48 type: pad 49 len: 1 50 - 51 name: action 52 type: u8 53 enum: fr-act 54 - 55 name: flags 56 type: u32 57 - 58 name: fr-act 59 type: enum 60 enum-name: 61 entries: 62 - unspec 63 - to-tbl 64 - goto 65 - nop 66 - res3 67 - res4 68 - blackhole 69 - unreachable 70 - prohibit 71 - 72 name: fib-rule-port-range 73 type: struct 74 members: 75 - 76 name: start 77 type: u16 78 - 79 name: end 80 type: u16 81 - 82 name: fib-rule-uid-range 83 type: struct 84 members: 85 - 86 name: start 87 type: u32 88 - 89 name: end 90 type: u32 91 92attribute-sets: 93 - 94 name: fib-rule-attrs 95 name-prefix: fra- 96 attributes: 97 - 98 name: dst 99 type: binary 100 display-hint: ipv4-or-v6 101 - 102 name: src 103 type: binary 104 display-hint: ipv4-or-v6 105 - 106 name: iifname 107 type: string 108 - 109 name: goto 110 type: u32 111 - 112 name: unused2 113 type: pad 114 - 115 name: priority 116 type: u32 117 - 118 name: unused3 119 type: pad 120 - 121 name: unused4 122 type: pad 123 - 124 name: unused5 125 type: pad 126 - 127 name: fwmark 128 type: u32 129 display-hint: hex 130 - 131 name: flow 132 type: u32 133 - 134 name: tun-id 135 type: u64 136 - 137 name: suppress-ifgroup 138 type: u32 139 - 140 name: suppress-prefixlen 141 type: u32 142 display-hint: hex 143 - 144 name: table 145 type: u32 146 - 147 name: fwmask 148 type: u32 149 display-hint: hex 150 - 151 name: oifname 152 type: string 153 - 154 name: pad 155 type: pad 156 - 157 name: l3mdev 158 type: u8 159 - 160 name: uid-range 161 type: binary 162 struct: fib-rule-uid-range 163 - 164 name: protocol 165 type: u8 166 - 167 name: ip-proto 168 type: u8 169 - 170 name: sport-range 171 type: binary 172 struct: fib-rule-port-range 173 - 174 name: dport-range 175 type: binary 176 struct: fib-rule-port-range 177 - 178 name: dscp 179 type: u8 180 - 181 name: flowlabel 182 type: u32 183 byte-order: big-endian 184 display-hint: hex 185 - 186 name: flowlabel-mask 187 type: u32 188 byte-order: big-endian 189 display-hint: hex 190 - 191 name: sport-mask 192 type: u16 193 display-hint: hex 194 - 195 name: dport-mask 196 type: u16 197 display-hint: hex 198 - 199 name: dscp-mask 200 type: u8 201 display-hint: hex 202 203operations: 204 enum-model: directional 205 fixed-header: fib-rule-hdr 206 name-prefix: rtm- 207 list: 208 - 209 name: newrule 210 doc: Add new FIB rule 211 attribute-set: fib-rule-attrs 212 do: 213 request: 214 value: 32 215 attributes: &fib-rule-all 216 - iifname 217 - oifname 218 - priority 219 - fwmark 220 - flow 221 - tun-id 222 - fwmask 223 - table 224 - suppress-prefixlen 225 - suppress-ifgroup 226 - goto 227 - l3mdev 228 - uid-range 229 - protocol 230 - ip-proto 231 - sport-range 232 - dport-range 233 - dscp 234 - flowlabel 235 - flowlabel-mask 236 - sport-mask 237 - dport-mask 238 - dscp-mask 239 - 240 name: newrule-ntf 241 doc: Notify a rule creation 242 value: 32 243 notify: getrule 244 - 245 name: delrule 246 doc: Remove an existing FIB rule 247 attribute-set: fib-rule-attrs 248 do: 249 request: 250 value: 33 251 attributes: *fib-rule-all 252 - 253 name: delrule-ntf 254 doc: Notify a rule deletion 255 value: 33 256 notify: getrule 257 - 258 name: getrule 259 doc: Dump all FIB rules 260 attribute-set: fib-rule-attrs 261 dump: 262 request: 263 value: 34 264 reply: 265 value: 32 266 attributes: *fib-rule-all 267 268mcast-groups: 269 list: 270 - 271 name: rtnlgrp-ipv4-rule 272 value: 8 273 - 274 name: rtnlgrp-ipv6-rule 275 value: 19 276