diff options
author | stephen hemminger <shemminger@vyatta.com> | 2012-07-18 09:09:48 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-07-19 10:48:00 -0700 |
commit | 83bd1b793e1e6b68be4f7b18752de9620137dfa2 (patch) | |
tree | ed10c333697b1e7f620d17f90d0cadeac48c2869 /net/ipx | |
parent | d8f1641b5829629d3af8e52750ba3b542f8f56c8 (diff) | |
download | lwn-83bd1b793e1e6b68be4f7b18752de9620137dfa2.tar.gz lwn-83bd1b793e1e6b68be4f7b18752de9620137dfa2.zip |
ipx: move peII functions
The Ethernet II wrapper is only used by IPX protocol, may have once
been used by Appletalk but not currently. Therefore it makes sense to
move it to the IPX dust bin and drop the exports.
Build tested only.
Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipx')
-rw-r--r-- | net/ipx/Makefile | 2 | ||||
-rw-r--r-- | net/ipx/pe2.c | 35 |
2 files changed, 36 insertions, 1 deletions
diff --git a/net/ipx/Makefile b/net/ipx/Makefile index 4b95e3ea0f8b..440fafa9fd07 100644 --- a/net/ipx/Makefile +++ b/net/ipx/Makefile @@ -4,5 +4,5 @@ obj-$(CONFIG_IPX) += ipx.o -ipx-y := af_ipx.o ipx_route.o ipx_proc.o +ipx-y := af_ipx.o ipx_route.o ipx_proc.o pe2.o ipx-$(CONFIG_SYSCTL) += sysctl_net_ipx.o diff --git a/net/ipx/pe2.c b/net/ipx/pe2.c new file mode 100644 index 000000000000..32dcd601ab32 --- /dev/null +++ b/net/ipx/pe2.c @@ -0,0 +1,35 @@ +#include <linux/in.h> +#include <linux/mm.h> +#include <linux/module.h> +#include <linux/netdevice.h> +#include <linux/skbuff.h> +#include <linux/slab.h> + +#include <net/datalink.h> + +static int pEII_request(struct datalink_proto *dl, + struct sk_buff *skb, unsigned char *dest_node) +{ + struct net_device *dev = skb->dev; + + skb->protocol = htons(ETH_P_IPX); + dev_hard_header(skb, dev, ETH_P_IPX, dest_node, NULL, skb->len); + return dev_queue_xmit(skb); +} + +struct datalink_proto *make_EII_client(void) +{ + struct datalink_proto *proto = kmalloc(sizeof(*proto), GFP_ATOMIC); + + if (proto) { + proto->header_length = 0; + proto->request = pEII_request; + } + + return proto; +} + +void destroy_EII_client(struct datalink_proto *dl) +{ + kfree(dl); +} |