aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/libs/linux-headers/linux/fib_rules.h
blob: ec0481c99fe80e5972561cce810b8da108200e3c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 
#ifndef __LINUX_FIB_RULES_H 
#define __LINUX_FIB_RULES_H 
 
#include <linux/types.h> 
#include <linux/rtnetlink.h> 
 
/* rule is permanent, and cannot be deleted */ 
#define FIB_RULE_PERMANENT	0x00000001 
#define FIB_RULE_INVERT		0x00000002 
#define FIB_RULE_UNRESOLVED	0x00000004 
#define FIB_RULE_IIF_DETACHED	0x00000008 
#define FIB_RULE_DEV_DETACHED	FIB_RULE_IIF_DETACHED 
#define FIB_RULE_OIF_DETACHED	0x00000010 
 
/* try to find source address in routing lookups */ 
#define FIB_RULE_FIND_SADDR	0x00010000 
 
struct fib_rule_hdr { 
	__u8		family; 
	__u8		dst_len; 
	__u8		src_len; 
	__u8		tos; 
 
	__u8		table; 
	__u8		res1;   /* reserved */ 
	__u8		res2;	/* reserved */ 
	__u8		action; 
 
	__u32		flags; 
}; 
 
struct fib_rule_uid_range { 
	__u32		start; 
	__u32		end; 
}; 
 
struct fib_rule_port_range { 
	__u16		start; 
	__u16		end; 
}; 
 
enum { 
	FRA_UNSPEC, 
	FRA_DST,	/* destination address */ 
	FRA_SRC,	/* source address */ 
	FRA_IIFNAME,	/* interface name */ 
#define FRA_IFNAME	FRA_IIFNAME 
	FRA_GOTO,	/* target to jump to (FR_ACT_GOTO) */ 
	FRA_UNUSED2, 
	FRA_PRIORITY,	/* priority/preference */ 
	FRA_UNUSED3, 
	FRA_UNUSED4, 
	FRA_UNUSED5, 
	FRA_FWMARK,	/* mark */ 
	FRA_FLOW,	/* flow/class id */ 
	FRA_TUN_ID, 
	FRA_SUPPRESS_IFGROUP, 
	FRA_SUPPRESS_PREFIXLEN, 
	FRA_TABLE,	/* Extended table id */ 
	FRA_FWMASK,	/* mask for netfilter mark */ 
	FRA_OIFNAME, 
	FRA_PAD, 
	FRA_L3MDEV,	/* iif or oif is l3mdev goto its table */ 
	FRA_UID_RANGE,	/* UID range */ 
	FRA_PROTOCOL,   /* Originator of the rule */ 
	FRA_IP_PROTO,	/* ip proto */ 
	FRA_SPORT_RANGE, /* sport */ 
	FRA_DPORT_RANGE, /* dport */ 
	__FRA_MAX 
}; 
 
#define FRA_MAX (__FRA_MAX - 1) 
 
enum { 
	FR_ACT_UNSPEC, 
	FR_ACT_TO_TBL,		/* Pass to fixed table */ 
	FR_ACT_GOTO,		/* Jump to another rule */ 
	FR_ACT_NOP,		/* No operation */ 
	FR_ACT_RES3, 
	FR_ACT_RES4, 
	FR_ACT_BLACKHOLE,	/* Drop without notification */ 
	FR_ACT_UNREACHABLE,	/* Drop with ENETUNREACH */ 
	FR_ACT_PROHIBIT,	/* Drop with EACCES */ 
	__FR_ACT_MAX, 
}; 
 
#define FR_ACT_MAX (__FR_ACT_MAX - 1) 
 
#endif