* v 1.0 03/22/99
*/
-#include <linux/config.h>
#include <asm/uaccess.h>
#include <asm/system.h>
#include <linux/types.h>
* Put the headers on a Fibre Channel packet.
*/
-int fc_header(struct sk_buff *skb, struct net_device *dev, unsigned short type,
- void *daddr, void *saddr, unsigned len)
+static int fc_header(struct sk_buff *skb, struct net_device *dev,
+ unsigned short type,
+ void *daddr, void *saddr, unsigned len)
{
struct fch_hdr *fch;
int hdr_len;
* can now send the packet.
*/
-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 fcllc *fcllc=(struct fcllc *)(skb->data+sizeof(struct fch_hdr));
if(fcllc->ethertype != htons(ETH_P_IP)) {
- printk("fc_rebuild_header: Don't know how to resolve type %04X addresses ?\n",(unsigned int)htons(fcllc->ethertype));
+ printk("fc_rebuild_header: Don't know how to resolve type %04X addresses ?\n", ntohs(fcllc->ethertype));
return 0;
}
#ifdef CONFIG_INET
#endif
}
-unsigned short
-fc_type_trans(struct sk_buff *skb, struct net_device *dev)
-{
- struct fch_hdr *fch = (struct fch_hdr *)skb->data;
- struct fcllc *fcllc;
-
- skb->mac.raw = skb->data;
- fcllc = (struct fcllc *)(skb->data + sizeof (struct fch_hdr) + 2);
- skb_pull(skb, sizeof (struct fch_hdr) + 2);
-
- if (*fch->daddr & 1) {
- if (!memcmp(fch->daddr, dev->broadcast, FC_ALEN))
- skb->pkt_type = PACKET_BROADCAST;
- else
- skb->pkt_type = PACKET_MULTICAST;
- } else if (dev->flags & IFF_PROMISC) {
- if (memcmp(fch->daddr, dev->dev_addr, FC_ALEN))
- skb->pkt_type = PACKET_OTHERHOST;
- }
-
- /*
- * Strip the SNAP header from ARP packets since we don't pass
- * them through to the 802.2/SNAP layers.
- */
- if (fcllc->dsap == EXTENDED_SAP &&
- (fcllc->ethertype == ntohs(ETH_P_IP) ||
- fcllc->ethertype == ntohs(ETH_P_ARP))) {
- skb_pull(skb, sizeof (struct fcllc));
- return fcllc->ethertype;
- }
-
- return ntohs(ETH_P_802_2);
-}
-
static void fc_setup(struct net_device *dev)
{
dev->hard_header = fc_header;