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