*
* Version: @(#)hippi.c 1.0.0 05/29/97
*
- * Authors: Ross Biro, <bir7@leland.Stanford.Edu>
+ * Authors: Ross Biro
* Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
* Mark Evans, <evansmp@uhura.aston.ac.uk>
* Florian La Roche, <rzsfl@rz.uni-sb.de>
#include <linux/module.h>
#include <linux/types.h>
#include <linux/kernel.h>
-#include <linux/sched.h>
#include <linux/string.h>
#include <linux/mm.h>
#include <linux/socket.h>
#include <net/arp.h>
#include <net/sock.h>
#include <asm/uaccess.h>
-#include <asm/checksum.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
* daddr=NULL means leave destination address (eg unresolved arp)
unsigned len)
{
struct hippi_hdr *hip = (struct hippi_hdr *)skb_push(skb, HIPPI_HLEN);
+ struct hippi_cb *hcb = (struct hippi_cb *) skb->cb;
if (!len){
len = skb->len - HIPPI_HLEN;
if (daddr)
{
memcpy(hip->le.dest_switch_addr, daddr + 3, 3);
- memcpy(&skb->private.ifield, daddr + 2, 4);
+ memcpy(&hcb->ifield, daddr + 2, 4);
return HIPPI_HLEN;
}
+ hcb->ifield = 0;
return -((int)HIPPI_HLEN);
}
/*
* 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));
return 0;
/*
* Determine the packet's protocol ID.
*/
-
-unsigned short 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;
-
+
hip = (struct hippi_hdr *) skb->data;
/*
{
/* Never send broadcast/multicast ARP messages */
p->mcast_probes = 0;
-
+
/* In IPv6 unicast probes are valid even on NBMA,
* because they are encapsulated in normal IPv6 protocol.
- * Should be a generic flag.
+ * Should be a generic flag.
*/
if (p->tbl->family != AF_INET6)
p->ucast_probes = 0;
dev->hard_header_parse = NULL;
dev->hard_header_cache = 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
/*
* 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;
}
/**