提交 5f77076d 编写于 作者: R Remi Denis-Courmont 提交者: David S. Miller

Phonet: provide MAC header operations

Signed-off-by: NRémi Denis-Courmont <remi.denis-courmont@nokia.com>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 107d0d9b
...@@ -12,3 +12,7 @@ ...@@ -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 = { ...@@ -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.
*/ */
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册