netfilter: af_info: add 'strict' parameter to limit lookup to .oif
authorFlorian Westphal <fw@strlen.de>
Mon, 4 Apr 2011 15:00:54 +0000 (17:00 +0200)
committerPatrick McHardy <kaber@trash.net>
Mon, 4 Apr 2011 15:00:54 +0000 (17:00 +0200)
commit0fae2e7740aca7e384c5f337f458897e7e337d58
treeff0767f2dc382ee8a62e324e441b671382f0433c
parent31ad3dd64e689bc79dd819f8f134b9b025240eb8
netfilter: af_info: add 'strict' parameter to limit lookup to .oif

ipv6 fib lookup can set RT6_LOOKUP_F_IFACE flag to restrict search
to an interface, but this flag cannot be set via struct flowi.

Also, it cannot be set via ip6_route_output: this function uses the
passed sock struct to determine if this flag is required
(by testing for nonzero sk_bound_dev_if).

Work around this by passing in an artificial struct sk in case
'strict' argument is true.

This is required to replace the rt6_lookup call in xt_addrtype.c with
nf_afinfo->route().

Signed-off-by: Florian Westphal <fw@strlen.de>
Acked-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Patrick McHardy <kaber@trash.net>
include/linux/netfilter.h
net/ipv4/netfilter.c
net/ipv6/netfilter.c
net/netfilter/nf_conntrack_h323_main.c
net/netfilter/xt_TCPMSS.c