From 4e7dbf76227e8c7be7897dc81def3011f637864d Mon Sep 17 00:00:00 2001 From: Jonas Gorski Date: Thu, 30 May 2013 11:54:04 +0200 Subject: [PATCH] add support for dropping with FAILED_POLICY --- include/linux/fib_rules.h | 4 ++++ include/linux/rtnetlink.h | 1 + ip/rtm_map.c | 4 ++++ 3 files changed, 9 insertions(+) --- a/include/linux/fib_rules.h +++ b/include/linux/fib_rules.h @@ -64,6 +64,10 @@ enum { FR_ACT_BLACKHOLE, /* Drop without notification */ FR_ACT_UNREACHABLE, /* Drop with ENETUNREACH */ FR_ACT_PROHIBIT, /* Drop with EACCES */ + FR_ACT_RES8, + FR_ACT_RES9, + FR_ACT_RES10, + FR_ACT_FAILED_POLICY, /* Drop with EPERM */ __FR_ACT_MAX, }; --- a/include/linux/rtnetlink.h +++ b/include/linux/rtnetlink.h @@ -208,6 +208,7 @@ enum { RTN_THROW, /* Not in this table */ RTN_NAT, /* Translate this address */ RTN_XRESOLVE, /* Use external resolver */ + RTN_FAILED_POLICY, /* Source address failed policy */ __RTN_MAX }; --- a/ip/rtm_map.c +++ b/ip/rtm_map.c @@ -49,6 +49,8 @@ char *rtnl_rtntype_n2a(int id, char *buf return "nat"; case RTN_XRESOLVE: return "xresolve"; + case RTN_FAILED_POLICY: + return "failed_policy"; default: snprintf(buf, len, "%d", id); return buf; @@ -84,6 +86,8 @@ int rtnl_rtntype_a2n(int *id, char *arg) res = RTN_UNICAST; else if (strcmp(arg, "throw") == 0) res = RTN_THROW; + else if (strcmp(arg, "failed_policy") == 0) + res = RTN_FAILED_POLICY; else { res = strtoul(arg, &end, 0); if (!end || end == arg || *end || res > 255)