1 From 4e7dbf76227e8c7be7897dc81def3011f637864d Mon Sep 17 00:00:00 2001
2 From: Jonas Gorski <jogo@openwrt.org>
3 Date: Thu, 30 May 2013 11:54:04 +0200
4 Subject: [PATCH] add support for dropping with FAILED_POLICY
7 include/linux/fib_rules.h | 4 ++++
8 include/linux/rtnetlink.h | 1 +
10 3 files changed, 9 insertions(+)
12 --- a/include/linux/fib_rules.h
13 +++ b/include/linux/fib_rules.h
14 @@ -64,6 +64,10 @@ enum {
15 FR_ACT_BLACKHOLE, /* Drop without notification */
16 FR_ACT_UNREACHABLE, /* Drop with ENETUNREACH */
17 FR_ACT_PROHIBIT, /* Drop with EACCES */
21 + FR_ACT_FAILED_POLICY, /* Drop with EPERM */
25 --- a/include/linux/rtnetlink.h
26 +++ b/include/linux/rtnetlink.h
27 @@ -208,6 +208,7 @@ enum {
28 RTN_THROW, /* Not in this table */
29 RTN_NAT, /* Translate this address */
30 RTN_XRESOLVE, /* Use external resolver */
31 + RTN_FAILED_POLICY, /* Source address failed policy */
37 @@ -49,6 +49,8 @@ char *rtnl_rtntype_n2a(int id, char *buf
41 + case RTN_FAILED_POLICY:
42 + return "failed_policy";
44 snprintf(buf, len, "%d", id);
46 @@ -84,6 +86,8 @@ int rtnl_rtntype_a2n(int *id, char *arg)
48 else if (strcmp(arg, "throw") == 0)
50 + else if (strcmp(arg, "failed_policy") == 0)
51 + res = RTN_FAILED_POLICY;
53 res = strtoul(arg, &end, 0);
54 if (!end || end == arg || *end || res > 255)