diff options
author | Stephen Hemminger <shemminger@osdl.org> | 2006-08-29 20:48:17 -0400 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2006-09-22 18:18:30 -0400 |
commit | 07317621d004e8e6967f2dac8562825267e56135 (patch) | |
tree | 232ab2aac1fa12c0fb481dfc3f0506ae275bd36e /include | |
parent | cd360007a0eb8cbf17c006cca42aa884d33f96be (diff) |
[NETFILTER] bridge: code rearrangement for clarity
Cleanup and rearrangement for better style and clarity:
Split the function nf_bridge_maybe_copy_header into two pieces
Move copy portion out of line.
Use Ethernet header size macros.
Use header file to handle CONFIG_NETFILTER_BRIDGE differences
Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/netfilter_bridge.h | 26 |
1 files changed, 7 insertions, 19 deletions
diff --git a/include/linux/netfilter_bridge.h b/include/linux/netfilter_bridge.h index 427c67ff89e9..274fe4b33155 100644 --- a/include/linux/netfilter_bridge.h +++ b/include/linux/netfilter_bridge.h | |||
@@ -47,26 +47,12 @@ enum nf_br_hook_priorities { | |||
47 | 47 | ||
48 | 48 | ||
49 | /* Only used in br_forward.c */ | 49 | /* Only used in br_forward.c */ |
50 | static inline | 50 | extern int nf_bridge_copy_header(struct sk_buff *skb); |
51 | int nf_bridge_maybe_copy_header(struct sk_buff *skb) | 51 | static inline int nf_bridge_maybe_copy_header(struct sk_buff *skb) |
52 | { | 52 | { |
53 | int err; | 53 | if (skb->nf_bridge) |
54 | 54 | return nf_bridge_copy_header(skb); | |
55 | if (skb->nf_bridge) { | 55 | return 0; |
56 | if (skb->protocol == __constant_htons(ETH_P_8021Q)) { | ||
57 | err = skb_cow(skb, 18); | ||
58 | if (err) | ||
59 | return err; | ||
60 | memcpy(skb->data - 18, skb->nf_bridge->data, 18); | ||
61 | skb_push(skb, 4); | ||
62 | } else { | ||
63 | err = skb_cow(skb, 16); | ||
64 | if (err) | ||
65 | return err; | ||
66 | memcpy(skb->data - 16, skb->nf_bridge->data, 16); | ||
67 | } | ||
68 | } | ||
69 | return 0; | ||
70 | } | 56 | } |
71 | 57 | ||
72 | /* This is called by the IP fragmenting code and it ensures there is | 58 | /* This is called by the IP fragmenting code and it ensures there is |
@@ -90,6 +76,8 @@ struct bridge_skb_cb { | |||
90 | }; | 76 | }; |
91 | 77 | ||
92 | extern int brnf_deferred_hooks; | 78 | extern int brnf_deferred_hooks; |
79 | #else | ||
80 | #define nf_bridge_maybe_copy_header(skb) (0) | ||
93 | #endif /* CONFIG_BRIDGE_NETFILTER */ | 81 | #endif /* CONFIG_BRIDGE_NETFILTER */ |
94 | 82 | ||
95 | #endif /* __KERNEL__ */ | 83 | #endif /* __KERNEL__ */ |