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