123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- From 4e7dbf76227e8c7be7897dc81def3011f637864d Mon Sep 17 00:00:00 2001
- From: Jonas Gorski <jogo@openwrt.org>
- 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
- @@ -210,6 +210,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)
|