diff options
author | Florian Westphal <fw@strlen.de> | 2015-04-02 08:31:41 -0400 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2015-04-08 10:49:08 -0400 |
commit | c737b7c4510026c200e14de51eb0006adea0fb2f (patch) | |
tree | 4f9e007c999e42652ca111d22edf2cfeb99c2954 /net/ipv6 | |
parent | e70deecbf8e1562cac0b19f23848919e2f5d65aa (diff) |
netfilter: bridge: add helpers for fetching physin/outdev
right now we store this in the nf_bridge_info struct, accessible
via skb->nf_bridge. This patch prepares removal of this pointer from skb:
Instead of using skb->nf_bridge->x, we use helpers to obtain the in/out
device (or ifindexes).
Followup patches to netfilter will then allow nf_bridge_info to be
obtained by a call into the br_netfilter core, rather than keeping a
pointer to it in sk_buff.
Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'net/ipv6')
-rw-r--r-- | net/ipv6/netfilter/nf_reject_ipv6.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/net/ipv6/netfilter/nf_reject_ipv6.c b/net/ipv6/netfilter/nf_reject_ipv6.c index 3afdce03d94e..94b4c6dfb400 100644 --- a/net/ipv6/netfilter/nf_reject_ipv6.c +++ b/net/ipv6/netfilter/nf_reject_ipv6.c | |||
@@ -13,6 +13,7 @@ | |||
13 | #include <net/ip6_checksum.h> | 13 | #include <net/ip6_checksum.h> |
14 | #include <net/netfilter/ipv6/nf_reject.h> | 14 | #include <net/netfilter/ipv6/nf_reject.h> |
15 | #include <linux/netfilter_ipv6.h> | 15 | #include <linux/netfilter_ipv6.h> |
16 | #include <linux/netfilter_bridge.h> | ||
16 | #include <net/netfilter/ipv6/nf_reject.h> | 17 | #include <net/netfilter/ipv6/nf_reject.h> |
17 | 18 | ||
18 | const struct tcphdr *nf_reject_ip6_tcphdr_get(struct sk_buff *oldskb, | 19 | const struct tcphdr *nf_reject_ip6_tcphdr_get(struct sk_buff *oldskb, |
@@ -195,7 +196,8 @@ void nf_send_reset6(struct net *net, struct sk_buff *oldskb, int hook) | |||
195 | */ | 196 | */ |
196 | if (oldskb->nf_bridge) { | 197 | if (oldskb->nf_bridge) { |
197 | struct ethhdr *oeth = eth_hdr(oldskb); | 198 | struct ethhdr *oeth = eth_hdr(oldskb); |
198 | nskb->dev = oldskb->nf_bridge->physindev; | 199 | |
200 | nskb->dev = nf_bridge_get_physindev(oldskb); | ||
199 | nskb->protocol = htons(ETH_P_IPV6); | 201 | nskb->protocol = htons(ETH_P_IPV6); |
200 | ip6h->payload_len = htons(sizeof(struct tcphdr)); | 202 | ip6h->payload_len = htons(sizeof(struct tcphdr)); |
201 | if (dev_hard_header(nskb, nskb->dev, ntohs(nskb->protocol), | 203 | if (dev_hard_header(nskb, nskb->dev, ntohs(nskb->protocol), |