提交 9afa0949 编写于 作者: Y YOSHIFUJI Hideaki 提交者: David S. Miller

[NET] 802: Fix whitespace errors.

Signed-off-by: NYOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 66efc5a7
/* /*
* NET3: Fibre Channel device handling subroutines * NET3: Fibre Channel device handling subroutines
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License * modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version * as published by the Free Software Foundation; either version
...@@ -31,18 +31,18 @@ ...@@ -31,18 +31,18 @@
#include <net/arp.h> #include <net/arp.h>
/* /*
* Put the headers on a Fibre Channel packet. * Put the headers on a Fibre Channel packet.
*/ */
static int fc_header(struct sk_buff *skb, struct net_device *dev, static int fc_header(struct sk_buff *skb, struct net_device *dev,
unsigned short type, unsigned short type,
void *daddr, void *saddr, unsigned len) void *daddr, void *saddr, unsigned len)
{ {
struct fch_hdr *fch; struct fch_hdr *fch;
int hdr_len; int hdr_len;
/* /*
* Add the 802.2 SNAP header if IP as the IPv4 code calls * Add the 802.2 SNAP header if IP as the IPv4 code calls
* dev->hard_header directly. * dev->hard_header directly.
*/ */
if (type == ETH_P_IP || type == ETH_P_ARP) if (type == ETH_P_IP || type == ETH_P_ARP)
...@@ -60,7 +60,7 @@ static int fc_header(struct sk_buff *skb, struct net_device *dev, ...@@ -60,7 +60,7 @@ static int fc_header(struct sk_buff *skb, struct net_device *dev,
else else
{ {
hdr_len = sizeof(struct fch_hdr); hdr_len = sizeof(struct fch_hdr);
fch = (struct fch_hdr *)skb_push(skb, hdr_len); fch = (struct fch_hdr *)skb_push(skb, hdr_len);
} }
if(saddr) if(saddr)
...@@ -68,20 +68,20 @@ static int fc_header(struct sk_buff *skb, struct net_device *dev, ...@@ -68,20 +68,20 @@ static int fc_header(struct sk_buff *skb, struct net_device *dev,
else else
memcpy(fch->saddr,dev->dev_addr,dev->addr_len); memcpy(fch->saddr,dev->dev_addr,dev->addr_len);
if(daddr) if(daddr)
{ {
memcpy(fch->daddr,daddr,dev->addr_len); memcpy(fch->daddr,daddr,dev->addr_len);
return(hdr_len); return(hdr_len);
} }
return -hdr_len; return -hdr_len;
} }
/* /*
* A neighbour discovery of some species (eg arp) has completed. We * A neighbour discovery of some species (eg arp) has completed. We
* can now send the packet. * can now send the packet.
*/ */
static int fc_rebuild_header(struct sk_buff *skb) static int fc_rebuild_header(struct sk_buff *skb)
{ {
struct fch_hdr *fch=(struct fch_hdr *)skb->data; struct fch_hdr *fch=(struct fch_hdr *)skb->data;
struct fcllc *fcllc=(struct fcllc *)(skb->data+sizeof(struct fch_hdr)); struct fcllc *fcllc=(struct fcllc *)(skb->data+sizeof(struct fch_hdr));
...@@ -100,7 +100,7 @@ static void fc_setup(struct net_device *dev) ...@@ -100,7 +100,7 @@ static void fc_setup(struct net_device *dev)
{ {
dev->hard_header = fc_header; dev->hard_header = fc_header;
dev->rebuild_header = fc_rebuild_header; dev->rebuild_header = fc_rebuild_header;
dev->type = ARPHRD_IEEE802; dev->type = ARPHRD_IEEE802;
dev->hard_header_len = FC_HLEN; dev->hard_header_len = FC_HLEN;
dev->mtu = 2024; dev->mtu = 2024;
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
* Mark Evans, <evansmp@uhura.aston.ac.uk> * Mark Evans, <evansmp@uhura.aston.ac.uk>
* Florian La Roche, <rzsfl@rz.uni-sb.de> * Florian La Roche, <rzsfl@rz.uni-sb.de>
* Alan Cox, <gw4pts@gw4pts.ampr.org> * Alan Cox, <gw4pts@gw4pts.ampr.org>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License * modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version * as published by the Free Software Foundation; either version
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
* Alan Cox : New arp/rebuild header * Alan Cox : New arp/rebuild header
* Maciej W. Rozycki : IPv6 support * Maciej W. Rozycki : IPv6 support
*/ */
#include <linux/module.h> #include <linux/module.h>
#include <asm/system.h> #include <asm/system.h>
#include <linux/types.h> #include <linux/types.h>
...@@ -57,7 +57,7 @@ static int fddi_header(struct sk_buff *skb, struct net_device *dev, ...@@ -57,7 +57,7 @@ static int fddi_header(struct sk_buff *skb, struct net_device *dev,
{ {
int hl = FDDI_K_SNAP_HLEN; int hl = FDDI_K_SNAP_HLEN;
struct fddihdr *fddi; struct fddihdr *fddi;
if(type != ETH_P_IP && type != ETH_P_IPV6 && type != ETH_P_ARP) if(type != ETH_P_IP && type != ETH_P_IPV6 && type != ETH_P_ARP)
hl=FDDI_K_8022_HLEN-3; hl=FDDI_K_8022_HLEN-3;
fddi = (struct fddihdr *)skb_push(skb, hl); fddi = (struct fddihdr *)skb_push(skb, hl);
...@@ -74,7 +74,7 @@ static int fddi_header(struct sk_buff *skb, struct net_device *dev, ...@@ -74,7 +74,7 @@ static int fddi_header(struct sk_buff *skb, struct net_device *dev,
} }
/* Set the source and destination hardware addresses */ /* Set the source and destination hardware addresses */
if (saddr != NULL) if (saddr != NULL)
memcpy(fddi->saddr, saddr, dev->addr_len); memcpy(fddi->saddr, saddr, dev->addr_len);
else else
...@@ -95,7 +95,7 @@ static int fddi_header(struct sk_buff *skb, struct net_device *dev, ...@@ -95,7 +95,7 @@ static int fddi_header(struct sk_buff *skb, struct net_device *dev,
* (or in future other address resolution) has completed on * (or in future other address resolution) has completed on
* this sk_buff. We now let ARP fill in the other fields. * this sk_buff. We now let ARP fill in the other fields.
*/ */
static int fddi_rebuild_header(struct sk_buff *skb) static int fddi_rebuild_header(struct sk_buff *skb)
{ {
struct fddihdr *fddi = (struct fddihdr *)skb->data; struct fddihdr *fddi = (struct fddihdr *)skb->data;
...@@ -105,7 +105,7 @@ static int fddi_rebuild_header(struct sk_buff *skb) ...@@ -105,7 +105,7 @@ static int fddi_rebuild_header(struct sk_buff *skb)
/* Try to get ARP to resolve the header and fill destination address */ /* Try to get ARP to resolve the header and fill destination address */
return arp_find(fddi->daddr, skb); return arp_find(fddi->daddr, skb);
else else
#endif #endif
{ {
printk("%s: Don't know how to resolve type %04X addresses.\n", printk("%s: Don't know how to resolve type %04X addresses.\n",
skb->dev->name, ntohs(fddi->hdr.llc_snap.ethertype)); skb->dev->name, ntohs(fddi->hdr.llc_snap.ethertype));
...@@ -120,19 +120,19 @@ static int fddi_rebuild_header(struct sk_buff *skb) ...@@ -120,19 +120,19 @@ static int fddi_rebuild_header(struct sk_buff *skb)
* up. It's used to fill in specific skb fields and to set * up. It's used to fill in specific skb fields and to set
* the proper pointer to the start of packet data (skb->data). * the proper pointer to the start of packet data (skb->data).
*/ */
__be16 fddi_type_trans(struct sk_buff *skb, struct net_device *dev) __be16 fddi_type_trans(struct sk_buff *skb, struct net_device *dev)
{ {
struct fddihdr *fddi = (struct fddihdr *)skb->data; struct fddihdr *fddi = (struct fddihdr *)skb->data;
__be16 type; __be16 type;
/* /*
* Set mac.raw field to point to FC byte, set data field to point * Set mac.raw field to point to FC byte, set data field to point
* to start of packet data. Assume 802.2 SNAP frames for now. * to start of packet data. Assume 802.2 SNAP frames for now.
*/ */
skb->mac.raw = skb->data; /* point to frame control (FC) */ skb->mac.raw = skb->data; /* point to frame control (FC) */
if(fddi->hdr.llc_8022_1.dsap==0xe0) if(fddi->hdr.llc_8022_1.dsap==0xe0)
{ {
skb_pull(skb, FDDI_K_8022_HLEN-3); skb_pull(skb, FDDI_K_8022_HLEN-3);
...@@ -143,9 +143,9 @@ __be16 fddi_type_trans(struct sk_buff *skb, struct net_device *dev) ...@@ -143,9 +143,9 @@ __be16 fddi_type_trans(struct sk_buff *skb, struct net_device *dev)
skb_pull(skb, FDDI_K_SNAP_HLEN); /* adjust for 21 byte header */ skb_pull(skb, FDDI_K_SNAP_HLEN); /* adjust for 21 byte header */
type=fddi->hdr.llc_snap.ethertype; type=fddi->hdr.llc_snap.ethertype;
} }
/* Set packet type based on destination address and flag settings */ /* Set packet type based on destination address and flag settings */
if (*fddi->daddr & 0x01) if (*fddi->daddr & 0x01)
{ {
if (memcmp(fddi->daddr, dev->broadcast, FDDI_K_ALEN) == 0) if (memcmp(fddi->daddr, dev->broadcast, FDDI_K_ALEN) == 0)
...@@ -153,7 +153,7 @@ __be16 fddi_type_trans(struct sk_buff *skb, struct net_device *dev) ...@@ -153,7 +153,7 @@ __be16 fddi_type_trans(struct sk_buff *skb, struct net_device *dev)
else else
skb->pkt_type = PACKET_MULTICAST; skb->pkt_type = PACKET_MULTICAST;
} }
else if (dev->flags & IFF_PROMISC) else if (dev->flags & IFF_PROMISC)
{ {
if (memcmp(fddi->daddr, dev->dev_addr, FDDI_K_ALEN)) if (memcmp(fddi->daddr, dev->dev_addr, FDDI_K_ALEN))
...@@ -187,7 +187,7 @@ static void fddi_setup(struct net_device *dev) ...@@ -187,7 +187,7 @@ static void fddi_setup(struct net_device *dev)
dev->addr_len = FDDI_K_ALEN; dev->addr_len = FDDI_K_ALEN;
dev->tx_queue_len = 100; /* Long queues on FDDI */ dev->tx_queue_len = 100; /* Long queues on FDDI */
dev->flags = IFF_BROADCAST | IFF_MULTICAST; dev->flags = IFF_BROADCAST | IFF_MULTICAST;
memset(dev->broadcast, 0xFF, FDDI_K_ALEN); memset(dev->broadcast, 0xFF, FDDI_K_ALEN);
} }
......
...@@ -39,7 +39,7 @@ ...@@ -39,7 +39,7 @@
#include <asm/system.h> #include <asm/system.h>
/* /*
* Create the HIPPI MAC header for an arbitrary protocol layer * Create the HIPPI MAC header for an arbitrary protocol layer
* *
* saddr=NULL means use device source address * saddr=NULL means use device source address
* daddr=NULL means leave destination address (eg unresolved arp) * daddr=NULL means leave destination address (eg unresolved arp)
...@@ -104,8 +104,8 @@ static int hippi_rebuild_header(struct sk_buff *skb) ...@@ -104,8 +104,8 @@ static int hippi_rebuild_header(struct sk_buff *skb)
/* /*
* Only IP is currently supported * Only IP is currently supported
*/ */
if(hip->snap.ethertype != __constant_htons(ETH_P_IP)) if(hip->snap.ethertype != __constant_htons(ETH_P_IP))
{ {
printk(KERN_DEBUG "%s: unable to resolve type %X addresses.\n",skb->dev->name,ntohs(hip->snap.ethertype)); printk(KERN_DEBUG "%s: unable to resolve type %X addresses.\n",skb->dev->name,ntohs(hip->snap.ethertype));
return 0; return 0;
...@@ -122,11 +122,11 @@ static int hippi_rebuild_header(struct sk_buff *skb) ...@@ -122,11 +122,11 @@ static int hippi_rebuild_header(struct sk_buff *skb)
/* /*
* Determine the packet's protocol ID. * Determine the packet's protocol ID.
*/ */
__be16 hippi_type_trans(struct sk_buff *skb, struct net_device *dev) __be16 hippi_type_trans(struct sk_buff *skb, struct net_device *dev)
{ {
struct hippi_hdr *hip; struct hippi_hdr *hip;
hip = (struct hippi_hdr *) skb->data; hip = (struct hippi_hdr *) skb->data;
/* /*
...@@ -173,10 +173,10 @@ static int hippi_neigh_setup_dev(struct net_device *dev, struct neigh_parms *p) ...@@ -173,10 +173,10 @@ static int hippi_neigh_setup_dev(struct net_device *dev, struct neigh_parms *p)
{ {
/* Never send broadcast/multicast ARP messages */ /* Never send broadcast/multicast ARP messages */
p->mcast_probes = 0; p->mcast_probes = 0;
/* In IPv6 unicast probes are valid even on NBMA, /* In IPv6 unicast probes are valid even on NBMA,
* because they are encapsulated in normal IPv6 protocol. * because they are encapsulated in normal IPv6 protocol.
* Should be a generic flag. * Should be a generic flag.
*/ */
if (p->tbl->family != AF_INET6) if (p->tbl->family != AF_INET6)
p->ucast_probes = 0; p->ucast_probes = 0;
...@@ -193,7 +193,7 @@ static void hippi_setup(struct net_device *dev) ...@@ -193,7 +193,7 @@ static void hippi_setup(struct net_device *dev)
dev->hard_header_parse = NULL; dev->hard_header_parse = NULL;
dev->hard_header_cache = NULL; dev->hard_header_cache = NULL;
dev->header_cache_update = NULL; dev->header_cache_update = NULL;
dev->neigh_setup = hippi_neigh_setup_dev; dev->neigh_setup = hippi_neigh_setup_dev;
/* /*
* We don't support HIPPI `ARP' for the time being, and probably * We don't support HIPPI `ARP' for the time being, and probably
...@@ -210,9 +210,9 @@ static void hippi_setup(struct net_device *dev) ...@@ -210,9 +210,9 @@ static void hippi_setup(struct net_device *dev)
/* /*
* HIPPI doesn't support broadcast+multicast and we only use * HIPPI doesn't support broadcast+multicast and we only use
* static ARP tables. ARP is disabled by hippi_neigh_setup_dev. * static ARP tables. ARP is disabled by hippi_neigh_setup_dev.
*/ */
dev->flags = 0; dev->flags = 0;
} }
/** /**
......
...@@ -117,7 +117,7 @@ module_exit(snap_exit); ...@@ -117,7 +117,7 @@ module_exit(snap_exit);
*/ */
struct datalink_proto *register_snap_client(unsigned char *desc, struct datalink_proto *register_snap_client(unsigned char *desc,
int (*rcvfunc)(struct sk_buff *, int (*rcvfunc)(struct sk_buff *,
struct net_device *, struct net_device *,
struct packet_type *, struct packet_type *,
struct net_device *)) struct net_device *))
{ {
......
/* /*
* NET3: Token ring device handling subroutines * NET3: Token ring device handling subroutines
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License * modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version * as published by the Free Software Foundation; either version
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
* 22 Jun 98 Paul Norton <p.norton@computer.org> Rearranged * 22 Jun 98 Paul Norton <p.norton@computer.org> Rearranged
* tr_header and tr_type_trans to handle passing IPX SNAP and * tr_header and tr_type_trans to handle passing IPX SNAP and
* 802.2 through the correct layers. Eliminated tr_reformat. * 802.2 through the correct layers. Eliminated tr_reformat.
* *
*/ */
#include <asm/uaccess.h> #include <asm/uaccess.h>
...@@ -45,7 +45,7 @@ static void rif_check_expire(unsigned long dummy); ...@@ -45,7 +45,7 @@ static void rif_check_expire(unsigned long dummy);
/* /*
* Each RIF entry we learn is kept this way * Each RIF entry we learn is kept this way
*/ */
struct rif_cache { struct rif_cache {
unsigned char addr[TR_ALEN]; unsigned char addr[TR_ALEN];
int iface; int iface;
...@@ -62,7 +62,7 @@ struct rif_cache { ...@@ -62,7 +62,7 @@ struct rif_cache {
* We hash the RIF cache 32 ways. We do after all have to look it * We hash the RIF cache 32 ways. We do after all have to look it
* up a lot. * up a lot.
*/ */
static struct rif_cache *rif_table[RIF_TABLE_SIZE]; static struct rif_cache *rif_table[RIF_TABLE_SIZE];
static DEFINE_SPINLOCK(rif_lock); static DEFINE_SPINLOCK(rif_lock);
...@@ -71,7 +71,7 @@ static DEFINE_SPINLOCK(rif_lock); ...@@ -71,7 +71,7 @@ static DEFINE_SPINLOCK(rif_lock);
/* /*
* Garbage disposal timer. * Garbage disposal timer.
*/ */
static struct timer_list rif_timer; static struct timer_list rif_timer;
int sysctl_tr_rif_timeout = 60*10*HZ; int sysctl_tr_rif_timeout = 60*10*HZ;
...@@ -96,16 +96,16 @@ static inline unsigned long rif_hash(const unsigned char *addr) ...@@ -96,16 +96,16 @@ static inline unsigned long rif_hash(const unsigned char *addr)
* Put the headers on a token ring packet. Token ring source routing * Put the headers on a token ring packet. Token ring source routing
* makes this a little more exciting than on ethernet. * makes this a little more exciting than on ethernet.
*/ */
static int tr_header(struct sk_buff *skb, struct net_device *dev, static int tr_header(struct sk_buff *skb, struct net_device *dev,
unsigned short type, unsigned short type,
void *daddr, void *saddr, unsigned len) void *daddr, void *saddr, unsigned len)
{ {
struct trh_hdr *trh; struct trh_hdr *trh;
int hdr_len; int hdr_len;
/* /*
* Add the 802.2 SNAP header if IP as the IPv4/IPv6 code calls * Add the 802.2 SNAP header if IP as the IPv4/IPv6 code calls
* dev->hard_header directly. * dev->hard_header directly.
*/ */
if (type == ETH_P_IP || type == ETH_P_IPV6 || type == ETH_P_ARP) if (type == ETH_P_IP || type == ETH_P_IPV6 || type == ETH_P_ARP)
...@@ -123,7 +123,7 @@ static int tr_header(struct sk_buff *skb, struct net_device *dev, ...@@ -123,7 +123,7 @@ static int tr_header(struct sk_buff *skb, struct net_device *dev,
else else
{ {
hdr_len = sizeof(struct trh_hdr); hdr_len = sizeof(struct trh_hdr);
trh = (struct trh_hdr *)skb_push(skb, hdr_len); trh = (struct trh_hdr *)skb_push(skb, hdr_len);
} }
trh->ac=AC; trh->ac=AC;
...@@ -137,8 +137,8 @@ static int tr_header(struct sk_buff *skb, struct net_device *dev, ...@@ -137,8 +137,8 @@ static int tr_header(struct sk_buff *skb, struct net_device *dev,
/* /*
* Build the destination and then source route the frame * Build the destination and then source route the frame
*/ */
if(daddr) if(daddr)
{ {
memcpy(trh->daddr,daddr,dev->addr_len); memcpy(trh->daddr,daddr,dev->addr_len);
tr_source_route(skb,trh,dev); tr_source_route(skb,trh,dev);
...@@ -147,13 +147,13 @@ static int tr_header(struct sk_buff *skb, struct net_device *dev, ...@@ -147,13 +147,13 @@ static int tr_header(struct sk_buff *skb, struct net_device *dev,
return -hdr_len; return -hdr_len;
} }
/* /*
* A neighbour discovery of some species (eg arp) has completed. We * A neighbour discovery of some species (eg arp) has completed. We
* can now send the packet. * can now send the packet.
*/ */
static int tr_rebuild_header(struct sk_buff *skb) static int tr_rebuild_header(struct sk_buff *skb)
{ {
struct trh_hdr *trh=(struct trh_hdr *)skb->data; struct trh_hdr *trh=(struct trh_hdr *)skb->data;
struct trllc *trllc=(struct trllc *)(skb->data+sizeof(struct trh_hdr)); struct trllc *trllc=(struct trllc *)(skb->data+sizeof(struct trh_hdr));
...@@ -162,7 +162,7 @@ static int tr_rebuild_header(struct sk_buff *skb) ...@@ -162,7 +162,7 @@ static int tr_rebuild_header(struct sk_buff *skb)
/* /*
* FIXME: We don't yet support IPv6 over token rings * FIXME: We don't yet support IPv6 over token rings
*/ */
if(trllc->ethertype != htons(ETH_P_IP)) { if(trllc->ethertype != htons(ETH_P_IP)) {
printk("tr_rebuild_header: Don't know how to resolve type %04X addresses ?\n", ntohs(trllc->ethertype)); printk("tr_rebuild_header: Don't know how to resolve type %04X addresses ?\n", ntohs(trllc->ethertype));
return 0; return 0;
...@@ -172,39 +172,39 @@ static int tr_rebuild_header(struct sk_buff *skb) ...@@ -172,39 +172,39 @@ static int tr_rebuild_header(struct sk_buff *skb)
if(arp_find(trh->daddr, skb)) { if(arp_find(trh->daddr, skb)) {
return 1; return 1;
} }
else else
#endif #endif
{ {
tr_source_route(skb,trh,dev); tr_source_route(skb,trh,dev);
return 0; return 0;
} }
} }
/* /*
* Some of this is a bit hackish. We intercept RIF information * Some of this is a bit hackish. We intercept RIF information
* used for source routing. We also grab IP directly and don't feed * used for source routing. We also grab IP directly and don't feed
* it via SNAP. * it via SNAP.
*/ */
__be16 tr_type_trans(struct sk_buff *skb, struct net_device *dev) __be16 tr_type_trans(struct sk_buff *skb, struct net_device *dev)
{ {
struct trh_hdr *trh=(struct trh_hdr *)skb->data; struct trh_hdr *trh=(struct trh_hdr *)skb->data;
struct trllc *trllc; struct trllc *trllc;
unsigned riflen=0; unsigned riflen=0;
skb->mac.raw = skb->data; skb->mac.raw = skb->data;
if(trh->saddr[0] & TR_RII) if(trh->saddr[0] & TR_RII)
riflen = (ntohs(trh->rcf) & TR_RCF_LEN_MASK) >> 8; riflen = (ntohs(trh->rcf) & TR_RCF_LEN_MASK) >> 8;
trllc = (struct trllc *)(skb->data+sizeof(struct trh_hdr)-TR_MAXRIFLEN+riflen); trllc = (struct trllc *)(skb->data+sizeof(struct trh_hdr)-TR_MAXRIFLEN+riflen);
skb_pull(skb,sizeof(struct trh_hdr)-TR_MAXRIFLEN+riflen); skb_pull(skb,sizeof(struct trh_hdr)-TR_MAXRIFLEN+riflen);
if(*trh->daddr & 0x80) if(*trh->daddr & 0x80)
{ {
if(!memcmp(trh->daddr,dev->broadcast,TR_ALEN)) if(!memcmp(trh->daddr,dev->broadcast,TR_ALEN))
skb->pkt_type=PACKET_BROADCAST; skb->pkt_type=PACKET_BROADCAST;
else else
skb->pkt_type=PACKET_MULTICAST; skb->pkt_type=PACKET_MULTICAST;
...@@ -213,7 +213,7 @@ __be16 tr_type_trans(struct sk_buff *skb, struct net_device *dev) ...@@ -213,7 +213,7 @@ __be16 tr_type_trans(struct sk_buff *skb, struct net_device *dev)
{ {
skb->pkt_type=PACKET_MULTICAST; skb->pkt_type=PACKET_MULTICAST;
} }
else if(dev->flags & IFF_PROMISC) else if(dev->flags & IFF_PROMISC)
{ {
if(memcmp(trh->daddr, dev->dev_addr, TR_ALEN)) if(memcmp(trh->daddr, dev->dev_addr, TR_ALEN))
skb->pkt_type=PACKET_OTHERHOST; skb->pkt_type=PACKET_OTHERHOST;
...@@ -221,10 +221,10 @@ __be16 tr_type_trans(struct sk_buff *skb, struct net_device *dev) ...@@ -221,10 +221,10 @@ __be16 tr_type_trans(struct sk_buff *skb, struct net_device *dev)
if ((skb->pkt_type != PACKET_BROADCAST) && if ((skb->pkt_type != PACKET_BROADCAST) &&
(skb->pkt_type != PACKET_MULTICAST)) (skb->pkt_type != PACKET_MULTICAST))
tr_add_rif_info(trh,dev) ; tr_add_rif_info(trh,dev) ;
/* /*
* Strip the SNAP header from ARP packets since we don't * Strip the SNAP header from ARP packets since we don't
* pass them through to the 802.2/SNAP layers. * pass them through to the 802.2/SNAP layers.
*/ */
...@@ -241,32 +241,32 @@ __be16 tr_type_trans(struct sk_buff *skb, struct net_device *dev) ...@@ -241,32 +241,32 @@ __be16 tr_type_trans(struct sk_buff *skb, struct net_device *dev)
} }
/* /*
* We try to do source routing... * We try to do source routing...
*/ */
void tr_source_route(struct sk_buff *skb,struct trh_hdr *trh,struct net_device *dev) void tr_source_route(struct sk_buff *skb,struct trh_hdr *trh,struct net_device *dev)
{ {
int slack; int slack;
unsigned int hash; unsigned int hash;
struct rif_cache *entry; struct rif_cache *entry;
unsigned char *olddata; unsigned char *olddata;
unsigned long flags; unsigned long flags;
static const unsigned char mcast_func_addr[] static const unsigned char mcast_func_addr[]
= {0xC0,0x00,0x00,0x04,0x00,0x00}; = {0xC0,0x00,0x00,0x04,0x00,0x00};
spin_lock_irqsave(&rif_lock, flags); spin_lock_irqsave(&rif_lock, flags);
/* /*
* Broadcasts are single route as stated in RFC 1042 * Broadcasts are single route as stated in RFC 1042
*/ */
if( (!memcmp(&(trh->daddr[0]),&(dev->broadcast[0]),TR_ALEN)) || if( (!memcmp(&(trh->daddr[0]),&(dev->broadcast[0]),TR_ALEN)) ||
(!memcmp(&(trh->daddr[0]),&(mcast_func_addr[0]), TR_ALEN)) ) (!memcmp(&(trh->daddr[0]),&(mcast_func_addr[0]), TR_ALEN)) )
{ {
trh->rcf=htons((((sizeof(trh->rcf)) << 8) & TR_RCF_LEN_MASK) trh->rcf=htons((((sizeof(trh->rcf)) << 8) & TR_RCF_LEN_MASK)
| TR_RCF_FRAME2K | TR_RCF_LIMITED_BROADCAST); | TR_RCF_FRAME2K | TR_RCF_LIMITED_BROADCAST);
trh->saddr[0]|=TR_RII; trh->saddr[0]|=TR_RII;
} }
else else
{ {
hash = rif_hash(trh->daddr); hash = rif_hash(trh->daddr);
/* /*
...@@ -277,7 +277,7 @@ void tr_source_route(struct sk_buff *skb,struct trh_hdr *trh,struct net_device * ...@@ -277,7 +277,7 @@ void tr_source_route(struct sk_buff *skb,struct trh_hdr *trh,struct net_device *
/* /*
* If we found an entry we can route the frame. * If we found an entry we can route the frame.
*/ */
if(entry) if(entry)
{ {
#if TR_SR_DEBUG #if TR_SR_DEBUG
printk("source routing for %02X:%02X:%02X:%02X:%02X:%02X\n",trh->daddr[0], printk("source routing for %02X:%02X:%02X:%02X:%02X:%02X\n",trh->daddr[0],
...@@ -287,7 +287,7 @@ printk("source routing for %02X:%02X:%02X:%02X:%02X:%02X\n",trh->daddr[0], ...@@ -287,7 +287,7 @@ printk("source routing for %02X:%02X:%02X:%02X:%02X:%02X\n",trh->daddr[0],
{ {
trh->rcf=entry->rcf; trh->rcf=entry->rcf;
memcpy(&trh->rseg[0],&entry->rseg[0],8*sizeof(unsigned short)); memcpy(&trh->rseg[0],&entry->rseg[0],8*sizeof(unsigned short));
trh->rcf^=htons(TR_RCF_DIR_BIT); trh->rcf^=htons(TR_RCF_DIR_BIT);
trh->rcf&=htons(0x1fff); /* Issam Chehab <ichehab@madge1.demon.co.uk> */ trh->rcf&=htons(0x1fff); /* Issam Chehab <ichehab@madge1.demon.co.uk> */
trh->saddr[0]|=TR_RII; trh->saddr[0]|=TR_RII;
...@@ -301,14 +301,14 @@ printk("source routing for %02X:%02X:%02X:%02X:%02X:%02X\n",trh->daddr[0], ...@@ -301,14 +301,14 @@ printk("source routing for %02X:%02X:%02X:%02X:%02X:%02X\n",trh->daddr[0],
} }
entry->last_used=jiffies; entry->last_used=jiffies;
} }
else else
{ {
/* /*
* Without the information we simply have to shout * Without the information we simply have to shout
* on the wire. The replies should rapidly clean this * on the wire. The replies should rapidly clean this
* situation up. * situation up.
*/ */
trh->rcf=htons((((sizeof(trh->rcf)) << 8) & TR_RCF_LEN_MASK) trh->rcf=htons((((sizeof(trh->rcf)) << 8) & TR_RCF_LEN_MASK)
| TR_RCF_FRAME2K | TR_RCF_LIMITED_BROADCAST); | TR_RCF_FRAME2K | TR_RCF_LIMITED_BROADCAST);
trh->saddr[0]|=TR_RII; trh->saddr[0]|=TR_RII;
#if TR_SR_DEBUG #if TR_SR_DEBUG
...@@ -320,7 +320,7 @@ printk("source routing for %02X:%02X:%02X:%02X:%02X:%02X\n",trh->daddr[0], ...@@ -320,7 +320,7 @@ printk("source routing for %02X:%02X:%02X:%02X:%02X:%02X\n",trh->daddr[0],
/* Compress the RIF here so we don't have to do it in the driver(s) */ /* Compress the RIF here so we don't have to do it in the driver(s) */
if (!(trh->saddr[0] & 0x80)) if (!(trh->saddr[0] & 0x80))
slack = 18; slack = 18;
else else
slack = 18 - ((ntohs(trh->rcf) & TR_RCF_LEN_MASK)>>8); slack = 18 - ((ntohs(trh->rcf) & TR_RCF_LEN_MASK)>>8);
olddata = skb->data; olddata = skb->data;
spin_unlock_irqrestore(&rif_lock, flags); spin_unlock_irqrestore(&rif_lock, flags);
...@@ -333,7 +333,7 @@ printk("source routing for %02X:%02X:%02X:%02X:%02X:%02X\n",trh->daddr[0], ...@@ -333,7 +333,7 @@ printk("source routing for %02X:%02X:%02X:%02X:%02X:%02X\n",trh->daddr[0],
* We have learned some new RIF information for our source * We have learned some new RIF information for our source
* routing. * routing.
*/ */
static void tr_add_rif_info(struct trh_hdr *trh, struct net_device *dev) static void tr_add_rif_info(struct trh_hdr *trh, struct net_device *dev)
{ {
unsigned int hash, rii_p = 0; unsigned int hash, rii_p = 0;
...@@ -343,29 +343,29 @@ static void tr_add_rif_info(struct trh_hdr *trh, struct net_device *dev) ...@@ -343,29 +343,29 @@ static void tr_add_rif_info(struct trh_hdr *trh, struct net_device *dev)
spin_lock_irqsave(&rif_lock, flags); spin_lock_irqsave(&rif_lock, flags);
saddr0 = trh->saddr[0]; saddr0 = trh->saddr[0];
/* /*
* Firstly see if the entry exists * Firstly see if the entry exists
*/ */
if(trh->saddr[0] & TR_RII) if(trh->saddr[0] & TR_RII)
{ {
trh->saddr[0]&=0x7f; trh->saddr[0]&=0x7f;
if (((ntohs(trh->rcf) & TR_RCF_LEN_MASK) >> 8) > 2) if (((ntohs(trh->rcf) & TR_RCF_LEN_MASK) >> 8) > 2)
{ {
rii_p = 1; rii_p = 1;
} }
} }
hash = rif_hash(trh->saddr); hash = rif_hash(trh->saddr);
for(entry=rif_table[hash];entry && memcmp(&(entry->addr[0]),&(trh->saddr[0]),TR_ALEN);entry=entry->next); for(entry=rif_table[hash];entry && memcmp(&(entry->addr[0]),&(trh->saddr[0]),TR_ALEN);entry=entry->next);
if(entry==NULL) if(entry==NULL)
{ {
#if TR_SR_DEBUG #if TR_SR_DEBUG
printk("adding rif_entry: addr:%02X:%02X:%02X:%02X:%02X:%02X rcf:%04X\n", printk("adding rif_entry: addr:%02X:%02X:%02X:%02X:%02X:%02X rcf:%04X\n",
trh->saddr[0],trh->saddr[1],trh->saddr[2], trh->saddr[0],trh->saddr[1],trh->saddr[2],
trh->saddr[3],trh->saddr[4],trh->saddr[5], trh->saddr[3],trh->saddr[4],trh->saddr[5],
ntohs(trh->rcf)); ntohs(trh->rcf));
#endif #endif
/* /*
...@@ -377,7 +377,7 @@ printk("adding rif_entry: addr:%02X:%02X:%02X:%02X:%02X:%02X rcf:%04X\n", ...@@ -377,7 +377,7 @@ printk("adding rif_entry: addr:%02X:%02X:%02X:%02X:%02X:%02X rcf:%04X\n",
*/ */
entry=kmalloc(sizeof(struct rif_cache),GFP_ATOMIC); entry=kmalloc(sizeof(struct rif_cache),GFP_ATOMIC);
if(!entry) if(!entry)
{ {
printk(KERN_DEBUG "tr.c: Couldn't malloc rif cache entry !\n"); printk(KERN_DEBUG "tr.c: Couldn't malloc rif cache entry !\n");
spin_unlock_irqrestore(&rif_lock, flags); spin_unlock_irqrestore(&rif_lock, flags);
...@@ -400,13 +400,13 @@ printk("adding rif_entry: addr:%02X:%02X:%02X:%02X:%02X:%02X rcf:%04X\n", ...@@ -400,13 +400,13 @@ printk("adding rif_entry: addr:%02X:%02X:%02X:%02X:%02X:%02X rcf:%04X\n",
{ {
entry->local_ring = 1; entry->local_ring = 1;
} }
} }
else /* Y. Tahara added */ else /* Y. Tahara added */
{ {
/* /*
* Update existing entries * Update existing entries
*/ */
if (!entry->local_ring) if (!entry->local_ring)
if (entry->rcf != (trh->rcf & htons((unsigned short)~TR_RCF_BROADCAST_MASK)) && if (entry->rcf != (trh->rcf & htons((unsigned short)~TR_RCF_BROADCAST_MASK)) &&
!(trh->rcf & htons(TR_RCF_BROADCAST_MASK))) !(trh->rcf & htons(TR_RCF_BROADCAST_MASK)))
{ {
...@@ -417,9 +417,9 @@ printk("updating rif_entry: addr:%02X:%02X:%02X:%02X:%02X:%02X rcf:%04X\n", ...@@ -417,9 +417,9 @@ printk("updating rif_entry: addr:%02X:%02X:%02X:%02X:%02X:%02X rcf:%04X\n",
ntohs(trh->rcf)); ntohs(trh->rcf));
#endif #endif
entry->rcf = trh->rcf & htons((unsigned short)~TR_RCF_BROADCAST_MASK); entry->rcf = trh->rcf & htons((unsigned short)~TR_RCF_BROADCAST_MASK);
memcpy(&(entry->rseg[0]),&(trh->rseg[0]),8*sizeof(unsigned short)); memcpy(&(entry->rseg[0]),&(trh->rseg[0]),8*sizeof(unsigned short));
} }
entry->last_used=jiffies; entry->last_used=jiffies;
} }
trh->saddr[0]=saddr0; /* put the routing indicator back for tcpdump */ trh->saddr[0]=saddr0; /* put the routing indicator back for tcpdump */
spin_unlock_irqrestore(&rif_lock, flags); spin_unlock_irqrestore(&rif_lock, flags);
...@@ -429,16 +429,16 @@ printk("updating rif_entry: addr:%02X:%02X:%02X:%02X:%02X:%02X rcf:%04X\n", ...@@ -429,16 +429,16 @@ printk("updating rif_entry: addr:%02X:%02X:%02X:%02X:%02X:%02X rcf:%04X\n",
* Scan the cache with a timer and see what we need to throw out. * Scan the cache with a timer and see what we need to throw out.
*/ */
static void rif_check_expire(unsigned long dummy) static void rif_check_expire(unsigned long dummy)
{ {
int i; int i;
unsigned long flags, next_interval = jiffies + sysctl_tr_rif_timeout/2; unsigned long flags, next_interval = jiffies + sysctl_tr_rif_timeout/2;
spin_lock_irqsave(&rif_lock, flags); spin_lock_irqsave(&rif_lock, flags);
for(i =0; i < RIF_TABLE_SIZE; i++) { for(i =0; i < RIF_TABLE_SIZE; i++) {
struct rif_cache *entry, **pentry; struct rif_cache *entry, **pentry;
pentry = rif_table+i; pentry = rif_table+i;
while((entry=*pentry) != NULL) { while((entry=*pentry) != NULL) {
unsigned long expires unsigned long expires
...@@ -455,7 +455,7 @@ static void rif_check_expire(unsigned long dummy) ...@@ -455,7 +455,7 @@ static void rif_check_expire(unsigned long dummy)
} }
} }
} }
spin_unlock_irqrestore(&rif_lock, flags); spin_unlock_irqrestore(&rif_lock, flags);
mod_timer(&rif_timer, next_interval); mod_timer(&rif_timer, next_interval);
...@@ -466,7 +466,7 @@ static void rif_check_expire(unsigned long dummy) ...@@ -466,7 +466,7 @@ static void rif_check_expire(unsigned long dummy)
* Generate the /proc/net information for the token ring RIF * Generate the /proc/net information for the token ring RIF
* routing. * routing.
*/ */
#ifdef CONFIG_PROC_FS #ifdef CONFIG_PROC_FS
static struct rif_cache *rif_get_idx(loff_t pos) static struct rif_cache *rif_get_idx(loff_t pos)
...@@ -475,7 +475,7 @@ static struct rif_cache *rif_get_idx(loff_t pos) ...@@ -475,7 +475,7 @@ static struct rif_cache *rif_get_idx(loff_t pos)
struct rif_cache *entry; struct rif_cache *entry;
loff_t off = 0; loff_t off = 0;
for(i = 0; i < RIF_TABLE_SIZE; i++) for(i = 0; i < RIF_TABLE_SIZE; i++)
for(entry = rif_table[i]; entry; entry = entry->next) { for(entry = rif_table[i]; entry; entry = entry->next) {
if (off == pos) if (off == pos)
return entry; return entry;
...@@ -504,7 +504,7 @@ static void *rif_seq_next(struct seq_file *seq, void *v, loff_t *pos) ...@@ -504,7 +504,7 @@ static void *rif_seq_next(struct seq_file *seq, void *v, loff_t *pos)
goto scan; goto scan;
} }
if (ent->next) if (ent->next)
return ent->next; return ent->next;
i = rif_hash(ent->addr); i = rif_hash(ent->addr);
...@@ -541,13 +541,13 @@ static int rif_seq_show(struct seq_file *seq, void *v) ...@@ -541,13 +541,13 @@ static int rif_seq_show(struct seq_file *seq, void *v)
ttl/HZ); ttl/HZ);
if (entry->local_ring) if (entry->local_ring)
seq_puts(seq, "local\n"); seq_puts(seq, "local\n");
else { else {
seq_printf(seq, "%04X", ntohs(entry->rcf)); seq_printf(seq, "%04X", ntohs(entry->rcf));
rcf_len = ((ntohs(entry->rcf) & TR_RCF_LEN_MASK)>>8)-2; rcf_len = ((ntohs(entry->rcf) & TR_RCF_LEN_MASK)>>8)-2;
if (rcf_len) if (rcf_len)
rcf_len >>= 1; rcf_len >>= 1;
for(j = 1; j < rcf_len; j++) { for(j = 1; j < rcf_len; j++) {
if(j==1) { if(j==1) {
segment=ntohs(entry->rseg[j-1])>>4; segment=ntohs(entry->rseg[j-1])>>4;
...@@ -559,7 +559,7 @@ static int rif_seq_show(struct seq_file *seq, void *v) ...@@ -559,7 +559,7 @@ static int rif_seq_show(struct seq_file *seq, void *v)
} }
seq_putc(seq, '\n'); seq_putc(seq, '\n');
} }
} }
return 0; return 0;
} }
...@@ -591,7 +591,7 @@ static void tr_setup(struct net_device *dev) ...@@ -591,7 +591,7 @@ static void tr_setup(struct net_device *dev)
/* /*
* Configure and register * Configure and register
*/ */
dev->hard_header = tr_header; dev->hard_header = tr_header;
dev->rebuild_header = tr_rebuild_header; dev->rebuild_header = tr_rebuild_header;
...@@ -600,7 +600,7 @@ static void tr_setup(struct net_device *dev) ...@@ -600,7 +600,7 @@ static void tr_setup(struct net_device *dev)
dev->mtu = 2000; dev->mtu = 2000;
dev->addr_len = TR_ALEN; dev->addr_len = TR_ALEN;
dev->tx_queue_len = 100; /* Long queues on tr */ dev->tx_queue_len = 100; /* Long queues on tr */
memset(dev->broadcast,0xFF, TR_ALEN); memset(dev->broadcast,0xFF, TR_ALEN);
/* New-style flags. */ /* New-style flags. */
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册