92 lines · c
1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */2#ifndef __LINUX_FIB_RULES_H3#define __LINUX_FIB_RULES_H4 5#include <linux/types.h>6#include <linux/rtnetlink.h>7 8/* rule is permanent, and cannot be deleted */9#define FIB_RULE_PERMANENT 0x0000000110#define FIB_RULE_INVERT 0x0000000211#define FIB_RULE_UNRESOLVED 0x0000000412#define FIB_RULE_IIF_DETACHED 0x0000000813#define FIB_RULE_DEV_DETACHED FIB_RULE_IIF_DETACHED14#define FIB_RULE_OIF_DETACHED 0x0000001015 16/* try to find source address in routing lookups */17#define FIB_RULE_FIND_SADDR 0x0001000018 19struct 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 33struct fib_rule_uid_range {34 __u32 start;35 __u32 end;36};37 38struct fib_rule_port_range {39 __u16 start;40 __u16 end;41};42 43enum {44 FRA_UNSPEC,45 FRA_DST, /* destination address */46 FRA_SRC, /* source address */47 FRA_IIFNAME, /* interface name */48#define FRA_IFNAME FRA_IIFNAME49 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_DSCP, /* dscp */71 __FRA_MAX72};73 74#define FRA_MAX (__FRA_MAX - 1)75 76enum {77 FR_ACT_UNSPEC,78 FR_ACT_TO_TBL, /* Pass to fixed table */79 FR_ACT_GOTO, /* Jump to another rule */80 FR_ACT_NOP, /* No operation */81 FR_ACT_RES3,82 FR_ACT_RES4,83 FR_ACT_BLACKHOLE, /* Drop without notification */84 FR_ACT_UNREACHABLE, /* Drop with ENETUNREACH */85 FR_ACT_PROHIBIT, /* Drop with EACCES */86 __FR_ACT_MAX,87};88 89#define FR_ACT_MAX (__FR_ACT_MAX - 1)90 91#endif92