Commit 46705b07 authored by Jeremy Sowden's avatar Jeremy Sowden Committed by Pablo Neira Ayuso

netfilter: move nf_bridge_frag_data struct definition to a more appropriate header.

There is a struct definition function in nf_conntrack_bridge.h which is
not specific to conntrack and is used elswhere in netfilter.  Move it
into netfilter_bridge.h.
Signed-off-by: default avatarJeremy Sowden <jeremy@azazel.net>
Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
parent e2f1cbb1
...@@ -5,6 +5,13 @@ ...@@ -5,6 +5,13 @@
#include <uapi/linux/netfilter_bridge.h> #include <uapi/linux/netfilter_bridge.h>
#include <linux/skbuff.h> #include <linux/skbuff.h>
struct nf_bridge_frag_data {
char mac[ETH_HLEN];
bool vlan_present;
u16 vlan_tci;
__be16 vlan_proto;
};
#if IS_ENABLED(CONFIG_BRIDGE_NETFILTER) #if IS_ENABLED(CONFIG_BRIDGE_NETFILTER)
int br_handle_frame_finish(struct net *net, struct sock *sk, struct sk_buff *skb); int br_handle_frame_finish(struct net *net, struct sock *sk, struct sk_buff *skb);
......
...@@ -32,7 +32,7 @@ struct ip6_rt_info { ...@@ -32,7 +32,7 @@ struct ip6_rt_info {
}; };
struct nf_queue_entry; struct nf_queue_entry;
struct nf_ct_bridge_frag_data; struct nf_bridge_frag_data;
/* /*
* Hook functions for ipv6 to allow xt_* modules to be built-in even * Hook functions for ipv6 to allow xt_* modules to be built-in even
...@@ -61,9 +61,9 @@ struct nf_ipv6_ops { ...@@ -61,9 +61,9 @@ struct nf_ipv6_ops {
int (*br_defrag)(struct net *net, struct sk_buff *skb, u32 user); int (*br_defrag)(struct net *net, struct sk_buff *skb, u32 user);
int (*br_fragment)(struct net *net, struct sock *sk, int (*br_fragment)(struct net *net, struct sock *sk,
struct sk_buff *skb, struct sk_buff *skb,
struct nf_ct_bridge_frag_data *data, struct nf_bridge_frag_data *data,
int (*output)(struct net *, struct sock *sk, int (*output)(struct net *, struct sock *sk,
const struct nf_ct_bridge_frag_data *data, const struct nf_bridge_frag_data *data,
struct sk_buff *)); struct sk_buff *));
#endif #endif
}; };
...@@ -135,16 +135,16 @@ static inline int nf_ipv6_br_defrag(struct net *net, struct sk_buff *skb, ...@@ -135,16 +135,16 @@ static inline int nf_ipv6_br_defrag(struct net *net, struct sk_buff *skb,
} }
int br_ip6_fragment(struct net *net, struct sock *sk, struct sk_buff *skb, int br_ip6_fragment(struct net *net, struct sock *sk, struct sk_buff *skb,
struct nf_ct_bridge_frag_data *data, struct nf_bridge_frag_data *data,
int (*output)(struct net *, struct sock *sk, int (*output)(struct net *, struct sock *sk,
const struct nf_ct_bridge_frag_data *data, const struct nf_bridge_frag_data *data,
struct sk_buff *)); struct sk_buff *));
static inline int nf_br_ip6_fragment(struct net *net, struct sock *sk, static inline int nf_br_ip6_fragment(struct net *net, struct sock *sk,
struct sk_buff *skb, struct sk_buff *skb,
struct nf_ct_bridge_frag_data *data, struct nf_bridge_frag_data *data,
int (*output)(struct net *, struct sock *sk, int (*output)(struct net *, struct sock *sk,
const struct nf_ct_bridge_frag_data *data, const struct nf_bridge_frag_data *data,
struct sk_buff *)) struct sk_buff *))
{ {
#if IS_MODULE(CONFIG_IPV6) #if IS_MODULE(CONFIG_IPV6)
......
...@@ -16,11 +16,4 @@ struct nf_ct_bridge_info { ...@@ -16,11 +16,4 @@ struct nf_ct_bridge_info {
void nf_ct_bridge_register(struct nf_ct_bridge_info *info); void nf_ct_bridge_register(struct nf_ct_bridge_info *info);
void nf_ct_bridge_unregister(struct nf_ct_bridge_info *info); void nf_ct_bridge_unregister(struct nf_ct_bridge_info *info);
struct nf_ct_bridge_frag_data {
char mac[ETH_HLEN];
bool vlan_present;
u16 vlan_tci;
__be16 vlan_proto;
};
#endif #endif
...@@ -26,9 +26,9 @@ ...@@ -26,9 +26,9 @@
*/ */
static int nf_br_ip_fragment(struct net *net, struct sock *sk, static int nf_br_ip_fragment(struct net *net, struct sock *sk,
struct sk_buff *skb, struct sk_buff *skb,
struct nf_ct_bridge_frag_data *data, struct nf_bridge_frag_data *data,
int (*output)(struct net *, struct sock *sk, int (*output)(struct net *, struct sock *sk,
const struct nf_ct_bridge_frag_data *data, const struct nf_bridge_frag_data *data,
struct sk_buff *)) struct sk_buff *))
{ {
int frag_max_size = BR_INPUT_SKB_CB(skb)->frag_max_size; int frag_max_size = BR_INPUT_SKB_CB(skb)->frag_max_size;
...@@ -278,7 +278,7 @@ static unsigned int nf_ct_bridge_pre(void *priv, struct sk_buff *skb, ...@@ -278,7 +278,7 @@ static unsigned int nf_ct_bridge_pre(void *priv, struct sk_buff *skb,
} }
static void nf_ct_bridge_frag_save(struct sk_buff *skb, static void nf_ct_bridge_frag_save(struct sk_buff *skb,
struct nf_ct_bridge_frag_data *data) struct nf_bridge_frag_data *data)
{ {
if (skb_vlan_tag_present(skb)) { if (skb_vlan_tag_present(skb)) {
data->vlan_present = true; data->vlan_present = true;
...@@ -293,10 +293,10 @@ static void nf_ct_bridge_frag_save(struct sk_buff *skb, ...@@ -293,10 +293,10 @@ static void nf_ct_bridge_frag_save(struct sk_buff *skb,
static unsigned int static unsigned int
nf_ct_bridge_refrag(struct sk_buff *skb, const struct nf_hook_state *state, nf_ct_bridge_refrag(struct sk_buff *skb, const struct nf_hook_state *state,
int (*output)(struct net *, struct sock *sk, int (*output)(struct net *, struct sock *sk,
const struct nf_ct_bridge_frag_data *data, const struct nf_bridge_frag_data *data,
struct sk_buff *)) struct sk_buff *))
{ {
struct nf_ct_bridge_frag_data data; struct nf_bridge_frag_data data;
if (!BR_INPUT_SKB_CB(skb)->frag_max_size) if (!BR_INPUT_SKB_CB(skb)->frag_max_size)
return NF_ACCEPT; return NF_ACCEPT;
...@@ -319,7 +319,7 @@ nf_ct_bridge_refrag(struct sk_buff *skb, const struct nf_hook_state *state, ...@@ -319,7 +319,7 @@ nf_ct_bridge_refrag(struct sk_buff *skb, const struct nf_hook_state *state,
/* Actually only slow path refragmentation needs this. */ /* Actually only slow path refragmentation needs this. */
static int nf_ct_bridge_frag_restore(struct sk_buff *skb, static int nf_ct_bridge_frag_restore(struct sk_buff *skb,
const struct nf_ct_bridge_frag_data *data) const struct nf_bridge_frag_data *data)
{ {
int err; int err;
...@@ -340,7 +340,7 @@ static int nf_ct_bridge_frag_restore(struct sk_buff *skb, ...@@ -340,7 +340,7 @@ static int nf_ct_bridge_frag_restore(struct sk_buff *skb,
} }
static int nf_ct_bridge_refrag_post(struct net *net, struct sock *sk, static int nf_ct_bridge_refrag_post(struct net *net, struct sock *sk,
const struct nf_ct_bridge_frag_data *data, const struct nf_bridge_frag_data *data,
struct sk_buff *skb) struct sk_buff *skb)
{ {
int err; int err;
......
...@@ -113,9 +113,9 @@ int __nf_ip6_route(struct net *net, struct dst_entry **dst, ...@@ -113,9 +113,9 @@ int __nf_ip6_route(struct net *net, struct dst_entry **dst,
EXPORT_SYMBOL_GPL(__nf_ip6_route); EXPORT_SYMBOL_GPL(__nf_ip6_route);
int br_ip6_fragment(struct net *net, struct sock *sk, struct sk_buff *skb, int br_ip6_fragment(struct net *net, struct sock *sk, struct sk_buff *skb,
struct nf_ct_bridge_frag_data *data, struct nf_bridge_frag_data *data,
int (*output)(struct net *, struct sock *sk, int (*output)(struct net *, struct sock *sk,
const struct nf_ct_bridge_frag_data *data, const struct nf_bridge_frag_data *data,
struct sk_buff *)) struct sk_buff *))
{ {
int frag_max_size = BR_INPUT_SKB_CB(skb)->frag_max_size; int frag_max_size = BR_INPUT_SKB_CB(skb)->frag_max_size;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment