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 176operations: 177 enum-model: directional 178 fixed-header: fib-rule-hdr 179 list: 180 - 181 name: newrule 182 doc: Add new FIB rule 183 attribute-set: fib-rule-attrs 184 do: 185 request: 186 value: 32 187 attributes: &fib-rule-all 188 - iifname 189 - oifname 190 - priority 191 - fwmark 192 - flow 193 - tun-id 194 - fwmask 195 - table 196 - suppress-prefixlen 197 - suppress-ifgroup 198 - goto 199 - l3mdev 200 - uid-range 201 - protocol 202 - ip-proto 203 - sport-range 204 - dport-range 205 - dscp 206 - 207 name: newrule-ntf 208 doc: Notify a rule creation 209 value: 32 210 notify: newrule 211 - 212 name: delrule 213 doc: Remove an existing FIB rule 214 attribute-set: fib-rule-attrs 215 do: 216 request: 217 value: 33 218 attributes: *fib-rule-all 219 - 220 name: delrule-ntf 221 doc: Notify a rule deletion 222 value: 33 223 notify: delrule 224 - 225 name: getrule 226 doc: Dump all FIB rules 227 attribute-set: fib-rule-attrs 228 dump: 229 request: 230 value: 34 231 reply: 232 value: 32 233 attributes: *fib-rule-all 234 235mcast-groups: 236 list: 237 - 238 name: rtnlgrp-ipv4-rule 239 value: 8 240 - 241 name: rtnlgrp-ipv6-rule 242 value: 19 243