linux-headers (unknown)

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