Phonet: provide MAC header operations

Signed-off-by: Rémi Denis-Courmont <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
This commit is contained in:
Remi Denis-Courmont 2008-09-22 20:08:04 -07:00 • committed by David S. Miller
commit 5f77076d75
2 changed files with 33 additions and 0 deletions

View file

@ -99,6 +99,35 @@ static struct net_proto_family phonet_proto_family = {
.owner = THIS_MODULE,
};
/* Phonet device header operations */
static int pn_header_create(struct sk_buff *skb, struct net_device *dev,
unsigned short type, const void *daddr,
const void *saddr, unsigned len)
{
u8 *media = skb_push(skb, 1);
if (type != ETH_P_PHONET)
return -1;
if (!saddr)
saddr = dev->dev_addr;
*media = *(const u8 *)saddr;
return 1;
}
static int pn_header_parse(const struct sk_buff *skb, unsigned char *haddr)
{
const u8 *media = skb_mac_header(skb);
*haddr = *media;
return 1;
}
struct header_ops phonet_header_ops = {
.create = pn_header_create,
.parse = pn_header_parse,
};
EXPORT_SYMBOL(phonet_header_ops);
/*
* Prepends an ISI header and sends a datagram.
*/