mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-01 22:54:01 +00:00
Phonet: provide MAC header operations
Signed-off-by: Rémi Denis-Courmont <remi.denis-courmont@nokia.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
107d0d9b8d
commit
5f77076d75
2 changed files with 33 additions and 0 deletions
|
@ -12,3 +12,7 @@
|
||||||
/* 6 bytes header + 65535 bytes payload */
|
/* 6 bytes header + 65535 bytes payload */
|
||||||
#define PHONET_MAX_MTU 65541
|
#define PHONET_MAX_MTU 65541
|
||||||
#define PHONET_DEV_MTU PHONET_MAX_MTU
|
#define PHONET_DEV_MTU PHONET_MAX_MTU
|
||||||
|
|
||||||
|
#ifdef __KERNEL__
|
||||||
|
extern struct header_ops phonet_header_ops;
|
||||||
|
#endif
|
||||||
|
|
|
@ -99,6 +99,35 @@ static struct net_proto_family phonet_proto_family = {
|
||||||
.owner = THIS_MODULE,
|
.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.
|
* Prepends an ISI header and sends a datagram.
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in a new issue