diff options
author | jamal <hadi@cyberus.ca> | 2009-10-18 06:12:33 +0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-10-30 08:49:12 +0300 |
commit | b0c110ca8e89f2c9cd52ec7fb1b98c5b7aa78496 (patch) | |
tree | 613bb6966bce4b5dc63e5090aff04254f7dbb709 /net/ipv4/fib_frontend.c | |
parent | 14d18a81b5171d4433e41129619c75748b4f4d26 (diff) | |
download | linux-b0c110ca8e89f2c9cd52ec7fb1b98c5b7aa78496.tar.xz |
net: Fix RPF to work with policy routing
Policy routing is not looked up by mark on reverse path filtering.
This fixes it.
Signed-off-by: Jamal Hadi Salim <hadi@cyberus.ca>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/fib_frontend.c')
-rw-r--r-- | net/ipv4/fib_frontend.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/net/ipv4/fib_frontend.c b/net/ipv4/fib_frontend.c index e2f950592566..aa00398be80e 100644 --- a/net/ipv4/fib_frontend.c +++ b/net/ipv4/fib_frontend.c @@ -229,14 +229,17 @@ unsigned int inet_dev_addr_type(struct net *net, const struct net_device *dev, */ int fib_validate_source(__be32 src, __be32 dst, u8 tos, int oif, - struct net_device *dev, __be32 *spec_dst, u32 *itag) + struct net_device *dev, __be32 *spec_dst, + u32 *itag, u32 mark) { struct in_device *in_dev; struct flowi fl = { .nl_u = { .ip4_u = { .daddr = src, .saddr = dst, .tos = tos } }, + .mark = mark, .iif = oif }; + struct fib_result res; int no_addr, rpf; int ret; |