diff options
author | Andreas Steffen <andreas.steffen@strongswan.org> | 2013-10-13 20:51:10 +0200 |
---|---|---|
committer | Andreas Steffen <andreas.steffen@strongswan.org> | 2013-10-13 20:51:10 +0200 |
commit | b0761f1f0a5abd225edc291c8285f99a538e6a66 (patch) | |
tree | a1a330ce4d776c3cfc31a8befafde711401f4d92 | |
parent | 6623dfa84d2878db3a6b0c40f41dc01ef4f0a3d8 (diff) | |
download | strongswan-b0761f1f0a5abd225edc291c8285f99a538e6a66.tar.bz2 strongswan-b0761f1f0a5abd225edc291c8285f99a538e6a66.tar.xz |
Add linux/fip_rules.h to include files
-rw-r--r-- | src/include/Makefile.am | 6 | ||||
-rw-r--r-- | src/include/linux/fib_rules.h | 72 |
2 files changed, 75 insertions, 3 deletions
diff --git a/src/include/Makefile.am b/src/include/Makefile.am index 5de713143..e0bd43dcc 100644 --- a/src/include/Makefile.am +++ b/src/include/Makefile.am @@ -1,3 +1,3 @@ -EXTRA_DIST = linux/if_alg.h linux/ipsec.h linux/netlink.h linux/rtnetlink.h \ - linux/pfkeyv2.h linux/udp.h linux/xfrm.h linux/types.h \ - sys/queue.h +EXTRA_DIST = linux/fib_rules.h linux/if_alg.h linux/ipsec.h linux/netlink.h \ + linux/rtnetlink.h linux/pfkeyv2.h linux/udp.h linux/xfrm.h \ + linux/types.h sys/queue.h diff --git a/src/include/linux/fib_rules.h b/src/include/linux/fib_rules.h new file mode 100644 index 000000000..51da65b68 --- /dev/null +++ b/src/include/linux/fib_rules.h @@ -0,0 +1,72 @@ +#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; +}; + +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_UNUSED6, + FRA_UNUSED7, + FRA_UNUSED8, + FRA_TABLE, /* Extended table id */ + FRA_FWMASK, /* mask for netfilter mark */ + FRA_OIFNAME, + __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 |