Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
net
802
p8023.c
Go to the documentation of this file.
1
/*
2
* NET3: 802.3 data link hooks used for IPX 802.3
3
*
4
* This program is free software; you can redistribute it and/or
5
* modify it under the terms of the GNU General Public License
6
* as published by the Free Software Foundation; either version
7
* 2 of the License, or (at your option) any later version.
8
*
9
* 802.3 isn't really a protocol data link layer. Some old IPX stuff
10
* uses it however. Note that there is only one 802.3 protocol layer
11
* in the system. We don't currently support different protocols
12
* running raw 802.3 on different devices. Thankfully nobody else
13
* has done anything like the old IPX.
14
*/
15
16
#include <linux/in.h>
17
#include <
linux/mm.h
>
18
#include <linux/module.h>
19
#include <linux/netdevice.h>
20
#include <
linux/skbuff.h
>
21
#include <linux/slab.h>
22
23
#include <
net/datalink.h
>
24
#include <
net/p8022.h
>
25
26
/*
27
* Place an 802.3 header on a packet. The driver will do the mac
28
* addresses, we just need to give it the buffer length.
29
*/
30
static
int
p8023_request(
struct
datalink_proto
*
dl
,
31
struct
sk_buff
*
skb
,
unsigned
char
*dest_node)
32
{
33
struct
net_device
*
dev
= skb->
dev
;
34
35
dev_hard_header(skb, dev,
ETH_P_802_3
, dest_node,
NULL
, skb->
len
);
36
return
dev_queue_xmit
(skb);
37
}
38
39
/*
40
* Create an 802.3 client. Note there can be only one 802.3 client
41
*/
42
struct
datalink_proto
*
make_8023_client
(
void
)
43
{
44
struct
datalink_proto
*
proto
=
kmalloc
(
sizeof
(*proto),
GFP_ATOMIC
);
45
46
if
(proto) {
47
proto->
header_length
= 0;
48
proto->
request
= p8023_request;
49
}
50
return
proto
;
51
}
52
53
/*
54
* Destroy the 802.3 client.
55
*/
56
void
destroy_8023_client
(
struct
datalink_proto
*
dl
)
57
{
58
kfree
(dl);
59
}
60
61
EXPORT_SYMBOL
(
destroy_8023_client
);
62
EXPORT_SYMBOL
(
make_8023_client
);
63
64
MODULE_LICENSE
(
"GPL"
);
Generated on Thu Jan 10 2013 14:56:36 for Linux Kernel by
1.8.2