[BRIDGE]: netfilter whitespace

Run br_netfilter through Lindent to fix whitespace.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Stephen Hemminger 2006-03-20 22:57:32 -08:00 committed by David S. Miller
parent d5513a7d32
commit 789bc3e5b6

View file

@ -136,7 +136,7 @@ static void __br_dnat_complain(void)
if (jiffies - last_complaint >= 5 * HZ) { if (jiffies - last_complaint >= 5 * HZ) {
printk(KERN_WARNING "Performing cross-bridge DNAT requires IP " printk(KERN_WARNING "Performing cross-bridge DNAT requires IP "
"forwarding to be enabled\n"); "forwarding to be enabled\n");
last_complaint = jiffies; last_complaint = jiffies;
} }
} }
@ -218,12 +218,17 @@ static int br_nf_pre_routing_finish(struct sk_buff *skb)
nf_bridge->mask ^= BRNF_NF_BRIDGE_PREROUTING; nf_bridge->mask ^= BRNF_NF_BRIDGE_PREROUTING;
if (dnat_took_place(skb)) { if (dnat_took_place(skb)) {
if (ip_route_input(skb, iph->daddr, iph->saddr, iph->tos, if (ip_route_input(skb, iph->daddr, iph->saddr, iph->tos, dev)) {
dev)) {
struct rtable *rt; struct rtable *rt;
struct flowi fl = { .nl_u = struct flowi fl = {
{ .ip4_u = { .daddr = iph->daddr, .saddr = 0 , .nl_u = {
.tos = RT_TOS(iph->tos)} }, .proto = 0}; .ip4_u = {
.daddr = iph->daddr,
.saddr = 0,
.tos = RT_TOS(iph->tos) },
},
.proto = 0,
};
if (!ip_route_output_key(&rt, &fl)) { if (!ip_route_output_key(&rt, &fl)) {
/* - Bridged-and-DNAT'ed traffic doesn't /* - Bridged-and-DNAT'ed traffic doesn't
@ -257,8 +262,7 @@ bridged_dnat:
1); 1);
return 0; return 0;
} }
memcpy(eth_hdr(skb)->h_dest, dev->dev_addr, memcpy(eth_hdr(skb)->h_dest, dev->dev_addr, ETH_ALEN);
ETH_ALEN);
skb->pkt_type = PACKET_HOST; skb->pkt_type = PACKET_HOST;
} }
} else { } else {
@ -297,10 +301,10 @@ static struct net_device *setup_pre_routing(struct sk_buff *skb)
/* We only check the length. A bridge shouldn't do any hop-by-hop stuff anyway */ /* We only check the length. A bridge shouldn't do any hop-by-hop stuff anyway */
static int check_hbh_len(struct sk_buff *skb) static int check_hbh_len(struct sk_buff *skb)
{ {
unsigned char *raw = (u8*)(skb->nh.ipv6h+1); unsigned char *raw = (u8 *) (skb->nh.ipv6h + 1);
u32 pkt_len; u32 pkt_len;
int off = raw - skb->nh.raw; int off = raw - skb->nh.raw;
int len = (raw[1]+1)<<3; int len = (raw[1] + 1) << 3;
if ((raw + len) - skb->data > skb_headlen(skb)) if ((raw + len) - skb->data > skb_headlen(skb))
goto bad; goto bad;
@ -309,7 +313,7 @@ static int check_hbh_len(struct sk_buff *skb)
len -= 2; len -= 2;
while (len > 0) { while (len > 0) {
int optlen = skb->nh.raw[off+1]+2; int optlen = skb->nh.raw[off + 1] + 2;
switch (skb->nh.raw[off]) { switch (skb->nh.raw[off]) {
case IPV6_TLV_PAD0: case IPV6_TLV_PAD0:
@ -320,16 +324,16 @@ static int check_hbh_len(struct sk_buff *skb)
break; break;
case IPV6_TLV_JUMBO: case IPV6_TLV_JUMBO:
if (skb->nh.raw[off+1] != 4 || (off&3) != 2) if (skb->nh.raw[off + 1] != 4 || (off & 3) != 2)
goto bad; goto bad;
pkt_len = ntohl(*(u32*)(skb->nh.raw+off+2)); pkt_len = ntohl(*(u32 *) (skb->nh.raw + off + 2));
if (pkt_len <= IPV6_MAXPLEN || if (pkt_len <= IPV6_MAXPLEN ||
skb->nh.ipv6h->payload_len) skb->nh.ipv6h->payload_len)
goto bad; goto bad;
if (pkt_len > skb->len - sizeof(struct ipv6hdr)) if (pkt_len > skb->len - sizeof(struct ipv6hdr))
goto bad; goto bad;
if (pskb_trim_rcsum(skb, if (pskb_trim_rcsum(skb,
pkt_len+sizeof(struct ipv6hdr))) pkt_len + sizeof(struct ipv6hdr)))
goto bad; goto bad;
break; break;
default: default:
@ -350,8 +354,10 @@ bad:
/* Replicate the checks that IPv6 does on packet reception and pass the packet /* Replicate the checks that IPv6 does on packet reception and pass the packet
* to ip6tables, which doesn't support NAT, so things are fairly simple. */ * to ip6tables, which doesn't support NAT, so things are fairly simple. */
static unsigned int br_nf_pre_routing_ipv6(unsigned int hook, static unsigned int br_nf_pre_routing_ipv6(unsigned int hook,
struct sk_buff *skb, const struct net_device *in, struct sk_buff *skb,
const struct net_device *out, int (*okfn)(struct sk_buff *)) const struct net_device *in,
const struct net_device *out,
int (*okfn)(struct sk_buff *))
{ {
struct ipv6hdr *hdr; struct ipv6hdr *hdr;
u32 pkt_len; u32 pkt_len;
@ -381,9 +387,9 @@ static unsigned int br_nf_pre_routing_ipv6(unsigned int hook,
} }
} }
if (hdr->nexthdr == NEXTHDR_HOP && check_hbh_len(skb)) if (hdr->nexthdr == NEXTHDR_HOP && check_hbh_len(skb))
goto inhdr_error; goto inhdr_error;
nf_bridge_put(skb->nf_bridge); nf_bridge_put(skb->nf_bridge);
if ((nf_bridge = nf_bridge_alloc(skb)) == NULL) if ((nf_bridge = nf_bridge_alloc(skb)) == NULL)
return NF_DROP; return NF_DROP;
if (!setup_pre_routing(skb)) if (!setup_pre_routing(skb))
@ -452,15 +458,15 @@ static unsigned int br_nf_pre_routing(unsigned int hook, struct sk_buff **pskb,
if (iph->ihl < 5 || iph->version != 4) if (iph->ihl < 5 || iph->version != 4)
goto inhdr_error; goto inhdr_error;
if (!pskb_may_pull(skb, 4*iph->ihl)) if (!pskb_may_pull(skb, 4 * iph->ihl))
goto inhdr_error; goto inhdr_error;
iph = skb->nh.iph; iph = skb->nh.iph;
if (ip_fast_csum((__u8 *)iph, iph->ihl) != 0) if (ip_fast_csum((__u8 *) iph, iph->ihl) != 0)
goto inhdr_error; goto inhdr_error;
len = ntohs(iph->tot_len); len = ntohs(iph->tot_len);
if (skb->len < len || len < 4*iph->ihl) if (skb->len < len || len < 4 * iph->ihl)
goto inhdr_error; goto inhdr_error;
if (skb->len > len) { if (skb->len > len) {
@ -469,7 +475,7 @@ static unsigned int br_nf_pre_routing(unsigned int hook, struct sk_buff **pskb,
skb->ip_summed = CHECKSUM_NONE; skb->ip_summed = CHECKSUM_NONE;
} }
nf_bridge_put(skb->nf_bridge); nf_bridge_put(skb->nf_bridge);
if ((nf_bridge = nf_bridge_alloc(skb)) == NULL) if ((nf_bridge = nf_bridge_alloc(skb)) == NULL)
return NF_DROP; return NF_DROP;
if (!setup_pre_routing(skb)) if (!setup_pre_routing(skb))
@ -482,7 +488,7 @@ static unsigned int br_nf_pre_routing(unsigned int hook, struct sk_buff **pskb,
return NF_STOLEN; return NF_STOLEN;
inhdr_error: inhdr_error:
// IP_INC_STATS_BH(IpInHdrErrors); // IP_INC_STATS_BH(IpInHdrErrors);
out: out:
return NF_DROP; return NF_DROP;
} }
@ -496,8 +502,9 @@ out:
* register an IPv4 PRE_ROUTING 'sabotage' hook that will * register an IPv4 PRE_ROUTING 'sabotage' hook that will
* prevent this from happening. */ * prevent this from happening. */
static unsigned int br_nf_local_in(unsigned int hook, struct sk_buff **pskb, static unsigned int br_nf_local_in(unsigned int hook, struct sk_buff **pskb,
const struct net_device *in, const struct net_device *out, const struct net_device *in,
int (*okfn)(struct sk_buff *)) const struct net_device *out,
int (*okfn)(struct sk_buff *))
{ {
struct sk_buff *skb = *pskb; struct sk_buff *skb = *pskb;
@ -509,7 +516,6 @@ static unsigned int br_nf_local_in(unsigned int hook, struct sk_buff **pskb,
return NF_ACCEPT; return NF_ACCEPT;
} }
/* PF_BRIDGE/FORWARD *************************************************/ /* PF_BRIDGE/FORWARD *************************************************/
static int br_nf_forward_finish(struct sk_buff *skb) static int br_nf_forward_finish(struct sk_buff *skb)
{ {
@ -531,7 +537,7 @@ static int br_nf_forward_finish(struct sk_buff *skb)
skb->nh.raw -= VLAN_HLEN; skb->nh.raw -= VLAN_HLEN;
} }
NF_HOOK_THRESH(PF_BRIDGE, NF_BR_FORWARD, skb, in, NF_HOOK_THRESH(PF_BRIDGE, NF_BR_FORWARD, skb, in,
skb->dev, br_forward_finish, 1); skb->dev, br_forward_finish, 1);
return 0; return 0;
} }
@ -541,8 +547,9 @@ static int br_nf_forward_finish(struct sk_buff *skb)
* because of the physdev module. For ARP, indev and outdev are the * because of the physdev module. For ARP, indev and outdev are the
* bridge ports. */ * bridge ports. */
static unsigned int br_nf_forward_ip(unsigned int hook, struct sk_buff **pskb, static unsigned int br_nf_forward_ip(unsigned int hook, struct sk_buff **pskb,
const struct net_device *in, const struct net_device *out, const struct net_device *in,
int (*okfn)(struct sk_buff *)) const struct net_device *out,
int (*okfn)(struct sk_buff *))
{ {
struct sk_buff *skb = *pskb; struct sk_buff *skb = *pskb;
struct nf_bridge_info *nf_bridge; struct nf_bridge_info *nf_bridge;
@ -584,8 +591,9 @@ static unsigned int br_nf_forward_ip(unsigned int hook, struct sk_buff **pskb,
} }
static unsigned int br_nf_forward_arp(unsigned int hook, struct sk_buff **pskb, static unsigned int br_nf_forward_arp(unsigned int hook, struct sk_buff **pskb,
const struct net_device *in, const struct net_device *out, const struct net_device *in,
int (*okfn)(struct sk_buff *)) const struct net_device *out,
int (*okfn)(struct sk_buff *))
{ {
struct sk_buff *skb = *pskb; struct sk_buff *skb = *pskb;
struct vlan_ethhdr *hdr = vlan_eth_hdr(skb); struct vlan_ethhdr *hdr = vlan_eth_hdr(skb);
@ -617,7 +625,6 @@ static unsigned int br_nf_forward_arp(unsigned int hook, struct sk_buff **pskb,
return NF_STOLEN; return NF_STOLEN;
} }
/* PF_BRIDGE/LOCAL_OUT ***********************************************/ /* PF_BRIDGE/LOCAL_OUT ***********************************************/
static int br_nf_local_out_finish(struct sk_buff *skb) static int br_nf_local_out_finish(struct sk_buff *skb)
{ {
@ -627,7 +634,7 @@ static int br_nf_local_out_finish(struct sk_buff *skb)
} }
NF_HOOK_THRESH(PF_BRIDGE, NF_BR_LOCAL_OUT, skb, NULL, skb->dev, NF_HOOK_THRESH(PF_BRIDGE, NF_BR_LOCAL_OUT, skb, NULL, skb->dev,
br_forward_finish, NF_BR_PRI_FIRST + 1); br_forward_finish, NF_BR_PRI_FIRST + 1);
return 0; return 0;
} }
@ -653,8 +660,9 @@ static int br_nf_local_out_finish(struct sk_buff *skb)
* even routed packets that didn't arrive on a bridge interface have their * even routed packets that didn't arrive on a bridge interface have their
* nf_bridge->physindev set. */ * nf_bridge->physindev set. */
static unsigned int br_nf_local_out(unsigned int hook, struct sk_buff **pskb, static unsigned int br_nf_local_out(unsigned int hook, struct sk_buff **pskb,
const struct net_device *in, const struct net_device *out, const struct net_device *in,
int (*okfn)(struct sk_buff *)) const struct net_device *out,
int (*okfn)(struct sk_buff *))
{ {
struct net_device *realindev, *realoutdev; struct net_device *realindev, *realoutdev;
struct sk_buff *skb = *pskb; struct sk_buff *skb = *pskb;
@ -716,7 +724,7 @@ static unsigned int br_nf_local_out(unsigned int hook, struct sk_buff **pskb,
/* IP forwarded traffic has a physindev, locally /* IP forwarded traffic has a physindev, locally
* generated traffic hasn't. */ * generated traffic hasn't. */
if (realindev != NULL) { if (realindev != NULL) {
if (!(nf_bridge->mask & BRNF_DONT_TAKE_PARENT) ) { if (!(nf_bridge->mask & BRNF_DONT_TAKE_PARENT)) {
struct net_device *parent = bridge_parent(realindev); struct net_device *parent = bridge_parent(realindev);
if (parent) if (parent)
realindev = parent; realindev = parent;
@ -738,8 +746,9 @@ out:
/* PF_BRIDGE/POST_ROUTING ********************************************/ /* PF_BRIDGE/POST_ROUTING ********************************************/
static unsigned int br_nf_post_routing(unsigned int hook, struct sk_buff **pskb, static unsigned int br_nf_post_routing(unsigned int hook, struct sk_buff **pskb,
const struct net_device *in, const struct net_device *out, const struct net_device *in,
int (*okfn)(struct sk_buff *)) const struct net_device *out,
int (*okfn)(struct sk_buff *))
{ {
struct sk_buff *skb = *pskb; struct sk_buff *skb = *pskb;
struct nf_bridge_info *nf_bridge = (*pskb)->nf_bridge; struct nf_bridge_info *nf_bridge = (*pskb)->nf_bridge;
@ -752,7 +761,7 @@ static unsigned int br_nf_post_routing(unsigned int hook, struct sk_buff **pskb,
* keep the check just to be sure... */ * keep the check just to be sure... */
if (skb->mac.raw < skb->head || skb->mac.raw + ETH_HLEN > skb->data) { if (skb->mac.raw < skb->head || skb->mac.raw + ETH_HLEN > skb->data) {
printk(KERN_CRIT "br_netfilter: Argh!! br_nf_post_routing: " printk(KERN_CRIT "br_netfilter: Argh!! br_nf_post_routing: "
"bad mac.raw pointer."); "bad mac.raw pointer.");
goto print_error; goto print_error;
} }
#endif #endif
@ -794,7 +803,7 @@ static unsigned int br_nf_post_routing(unsigned int hook, struct sk_buff **pskb,
realoutdev = nf_bridge->netoutdev; realoutdev = nf_bridge->netoutdev;
#endif #endif
NF_HOOK(pf, NF_IP_POST_ROUTING, skb, NULL, realoutdev, NF_HOOK(pf, NF_IP_POST_ROUTING, skb, NULL, realoutdev,
br_dev_queue_push_xmit); br_dev_queue_push_xmit);
return NF_STOLEN; return NF_STOLEN;
@ -806,18 +815,18 @@ print_error:
printk("[%s]", realoutdev->name); printk("[%s]", realoutdev->name);
} }
printk(" head:%p, raw:%p, data:%p\n", skb->head, skb->mac.raw, printk(" head:%p, raw:%p, data:%p\n", skb->head, skb->mac.raw,
skb->data); skb->data);
return NF_ACCEPT; return NF_ACCEPT;
#endif #endif
} }
/* IP/SABOTAGE *****************************************************/ /* IP/SABOTAGE *****************************************************/
/* Don't hand locally destined packets to PF_INET(6)/PRE_ROUTING /* Don't hand locally destined packets to PF_INET(6)/PRE_ROUTING
* for the second time. */ * for the second time. */
static unsigned int ip_sabotage_in(unsigned int hook, struct sk_buff **pskb, static unsigned int ip_sabotage_in(unsigned int hook, struct sk_buff **pskb,
const struct net_device *in, const struct net_device *out, const struct net_device *in,
int (*okfn)(struct sk_buff *)) const struct net_device *out,
int (*okfn)(struct sk_buff *))
{ {
if ((*pskb)->nf_bridge && if ((*pskb)->nf_bridge &&
!((*pskb)->nf_bridge->mask & BRNF_NF_BRIDGE_PREROUTING)) { !((*pskb)->nf_bridge->mask & BRNF_NF_BRIDGE_PREROUTING)) {
@ -831,18 +840,18 @@ static unsigned int ip_sabotage_in(unsigned int hook, struct sk_buff **pskb,
* and PF_INET(6)/POST_ROUTING until we have done the forwarding * and PF_INET(6)/POST_ROUTING until we have done the forwarding
* decision in the bridge code and have determined nf_bridge->physoutdev. */ * decision in the bridge code and have determined nf_bridge->physoutdev. */
static unsigned int ip_sabotage_out(unsigned int hook, struct sk_buff **pskb, static unsigned int ip_sabotage_out(unsigned int hook, struct sk_buff **pskb,
const struct net_device *in, const struct net_device *out, const struct net_device *in,
int (*okfn)(struct sk_buff *)) const struct net_device *out,
int (*okfn)(struct sk_buff *))
{ {
struct sk_buff *skb = *pskb; struct sk_buff *skb = *pskb;
if ((out->hard_start_xmit == br_dev_xmit && if ((out->hard_start_xmit == br_dev_xmit &&
okfn != br_nf_forward_finish && okfn != br_nf_forward_finish &&
okfn != br_nf_local_out_finish && okfn != br_nf_local_out_finish && okfn != br_dev_queue_push_xmit)
okfn != br_dev_queue_push_xmit)
#if defined(CONFIG_VLAN_8021Q) || defined(CONFIG_VLAN_8021Q_MODULE) #if defined(CONFIG_VLAN_8021Q) || defined(CONFIG_VLAN_8021Q_MODULE)
|| ((out->priv_flags & IFF_802_1Q_VLAN) && || ((out->priv_flags & IFF_802_1Q_VLAN) &&
VLAN_DEV_INFO(out)->real_dev->hard_start_xmit == br_dev_xmit) VLAN_DEV_INFO(out)->real_dev->hard_start_xmit == br_dev_xmit)
#endif #endif
) { ) {
struct nf_bridge_info *nf_bridge; struct nf_bridge_info *nf_bridge;
@ -967,8 +976,8 @@ static struct nf_hook_ops br_nf_ops[] = {
#ifdef CONFIG_SYSCTL #ifdef CONFIG_SYSCTL
static static
int brnf_sysctl_call_tables(ctl_table *ctl, int write, struct file * filp, int brnf_sysctl_call_tables(ctl_table * ctl, int write, struct file *filp,
void __user *buffer, size_t *lenp, loff_t *ppos) void __user * buffer, size_t * lenp, loff_t * ppos)
{ {
int ret; int ret;
@ -1055,7 +1064,8 @@ int br_netfilter_init(void)
#ifdef CONFIG_SYSCTL #ifdef CONFIG_SYSCTL
brnf_sysctl_header = register_sysctl_table(brnf_net_table, 0); brnf_sysctl_header = register_sysctl_table(brnf_net_table, 0);
if (brnf_sysctl_header == NULL) { if (brnf_sysctl_header == NULL) {
printk(KERN_WARNING "br_netfilter: can't register to sysctl.\n"); printk(KERN_WARNING
"br_netfilter: can't register to sysctl.\n");
for (i = 0; i < ARRAY_SIZE(br_nf_ops); i++) for (i = 0; i < ARRAY_SIZE(br_nf_ops); i++)
nf_unregister_hook(&br_nf_ops[i]); nf_unregister_hook(&br_nf_ops[i]);
return -EFAULT; return -EFAULT;