/* saddr!=NULL means use this specific address (n/a for Metricom) saddr==NULL means use default device source address daddr!=NULL means use this destination address daddr==NULL means leave destination address alone (e.g. unresolved arp  */
static int strip_header(struct sk_buff *skb, struct net_device *dev, unsigned short type, const void *daddr, const void *saddr, unsigned len)
/* saddr!=NULL means use this specific address (n/a for Metricom) saddr==NULL means use default device source address daddr!=NULL means use this destination address daddr==NULL means leave destination address alone (e.g. unresolved arp  */
static int strip_header(struct sk_buff *skb, struct net_device *dev, unsigned short type, const void *daddr, const void *saddr, unsigned len)
{
	struct strip *strip_info = netdev_priv(dev);
	STRIP_Header *header = (STRIP_Header *) skb_push(skb, sizeof(STRIP_Header));
	header->src_addr = strip_info->true_dev_addr;
	header->protocol = htons(type);
	if (!daddr)
		return (-dev->hard_header_len);
	header->dst_addr = *(MetricomAddress *) daddr;
	return (dev->hard_header_len);
}