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: u32 100 - 101 name: src 102 type: u32 103 - 104 name: iifname 105 type: string 106 - 107 name: goto 108 type: u32 109 - 110 name: unused2 111 type: pad 112 - 113 name: priority 114 type: u32 115 - 116 name: unused3 117 type: pad 118 - 119 name: unused4 120 type: pad 121 - 122 name: unused5 123 type: pad 124 - 125 name: fwmark 126 type: u32 127 display-hint: hex 128 - 129 name: flow 130 type: u32 131 - 132 name: tun-id 133 type: u64 134 - 135 name: suppress-ifgroup 136 type: u32 137 - 138 name: suppress-prefixlen 139 type: u32 140 display-hint: hex 141 - 142 name: table 143 type: u32 144 - 145 name: fwmask 146 type: u32 147 display-hint: hex 148 - 149 name: oifname 150 type: string 151 - 152 name: pad 153 type: pad 154 - 155 name: l3mdev 156 type: u8 157 - 158 name: uid-range 159 type: binary 160 struct: fib-rule-uid-range 161 - 162 name: protocol 163 type: u8 164 - 165 name: ip-proto 166 type: u8 167 - 168 name: sport-range 169 type: binary 170 struct: fib-rule-port-range 171 - 172 name: dport-range 173 type: binary 174 struct: fib-rule-port-range 175 - 176 name: dscp 177 type: u8 178 - 179 name: flowlabel 180 type: u32 181 byte-order: big-endian 182 display-hint: hex 183 - 184 name: flowlabel-mask 185 type: u32 186 byte-order: big-endian 187 display-hint: hex 188 - 189 name: sport-mask 190 type: u16 191 display-hint: hex 192 - 193 name: dport-mask 194 type: u16 195 display-hint: hex 196 - 197 name: dscp-mask 198 type: u8 199 display-hint: hex 200 201operations: 202 enum-model: directional 203 fixed-header: fib-rule-hdr 204 name-prefix: rtm- 205 list: 206 - 207 name: newrule 208 doc: Add new FIB rule 209 attribute-set: fib-rule-attrs 210 do: 211 request: 212 value: 32 213 attributes: &fib-rule-all 214 - iifname 215 - oifname 216 - priority 217 - fwmark 218 - flow 219 - tun-id 220 - fwmask 221 - table 222 - suppress-prefixlen 223 - suppress-ifgroup 224 - goto 225 - l3mdev 226 - uid-range 227 - protocol 228 - ip-proto 229 - sport-range 230 - dport-range 231 - dscp 232 - flowlabel 233 - flowlabel-mask 234 - sport-mask 235 - dport-mask 236 - dscp-mask 237 - 238 name: newrule-ntf 239 doc: Notify a rule creation 240 value: 32 241 notify: getrule 242 - 243 name: delrule 244 doc: Remove an existing FIB rule 245 attribute-set: fib-rule-attrs 246 do: 247 request: 248 value: 33 249 attributes: *fib-rule-all 250 - 251 name: delrule-ntf 252 doc: Notify a rule deletion 253 value: 33 254 notify: getrule 255 - 256 name: getrule 257 doc: Dump all FIB rules 258 attribute-set: fib-rule-attrs 259 dump: 260 request: 261 value: 34 262 reply: 263 value: 32 264 attributes: *fib-rule-all 265 266mcast-groups: 267 list: 268 - 269 name: rtnlgrp-ipv4-rule 270 value: 8 271 - 272 name: rtnlgrp-ipv6-rule 273 value: 19 274