summaryrefslogtreecommitdiff
path: root/net/ipx
diff options
context:
space:
mode:
authorstephen hemminger <shemminger@vyatta.com>2012-07-18 09:09:48 +0000
committerDavid S. Miller <davem@davemloft.net>2012-07-19 10:48:00 -0700
commit83bd1b793e1e6b68be4f7b18752de9620137dfa2 (patch)
treeed10c333697b1e7f620d17f90d0cadeac48c2869 /net/ipx
parentd8f1641b5829629d3af8e52750ba3b542f8f56c8 (diff)
downloadlwn-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/Makefile2
-rw-r--r--net/ipx/pe2.c35
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);
+}