iprule: Add option to suppress unspecific routing lookups
authorStefan Tomanek <stefan.tomanek@wertarbyte.de>
Wed, 7 Jun 2017 10:47:04 +0000 (12:47 +0200)
committerHans Dedecker <dedeckeh@gmail.com>
Sun, 11 Jun 2017 13:07:18 +0000 (15:07 +0200)
commit90e2e2c404eeeb3414c794dfb45f5ee4b88cd479
tree8d2a78ef9b3fce2f3edcf3e524ea09fdf6b026d0
parent08f1875201a60dc20c65d2af26b41af987662f10
iprule: Add option to suppress unspecific routing lookups

After applying this patch, policy routing rules can be employed that ignore
parts of a routing table. The following config snippet ignores routing lookups
from the specified main routing table yielding the default route, passing the
lookup process on to the next rule (that might provide a special default route
for marked packets):

config rule
option priority 10
# check main routing table first, but ignore default route result
option lookup main
option suppress_prefixlength 0

config rule
option priority 11
# use special routing table for marked packets
# (unless already consumed by previous rule)
option mark 0xFF
option lookup 100

The result is a ruleset like this (only visible using the full 'ip' binary):

 # ip rule
 0: from all lookup local
 10: from all lookup main suppress_prefixlength 0
 11: from all fwmark 0xff lookup 100
 32766: from all lookup main
 32767: from all lookup default
 #

Signed-off-by: Stefan Tomanek <stefan.tomanek@wertarbyte.de>
iprule.c
iprule.h
system-linux.c