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 | op-kernel-dev-83bd1b793e1e6b68be4f7b18752de9620137dfa2.zip op-kernel-dev-83bd1b793e1e6b68be4f7b18752de9620137dfa2.tar.gz |
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 4b95e3e..440fafa 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 0000000..32dcd60 --- /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); +} |