summaryrefslogtreecommitdiffstats
path: root/drivers/staging/ipx/pe2.c
diff options
context:
space:
mode:
authorStephen Hemminger <stephen@networkplumber.org>2017-11-14 08:37:14 -0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2017-11-28 13:55:00 +0100
commite02554e9a4338c58e75fdfb0ef908a5adc86cba5 (patch)
treec9b2029a35a8ee2583b8ba9c6df783b72c14ae44 /drivers/staging/ipx/pe2.c
parentda1725ca4869461890d5fd1be5202ff691c05f78 (diff)
downloadlinux-stable-e02554e9a4338c58e75fdfb0ef908a5adc86cba5.tar.gz
linux-stable-e02554e9a4338c58e75fdfb0ef908a5adc86cba5.tar.bz2
linux-stable-e02554e9a4338c58e75fdfb0ef908a5adc86cba5.zip
ipx: move Novell IPX protocol support into staging
The Netware IPX protocol is very old and no one should still be using it. It is time to move it into staging for a while and eventually decommision it. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: David S. Miller <davem@davemloft.net> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/ipx/pe2.c')
-rw-r--r--drivers/staging/ipx/pe2.c36
1 files changed, 36 insertions, 0 deletions
diff --git a/drivers/staging/ipx/pe2.c b/drivers/staging/ipx/pe2.c
new file mode 100644
index 000000000000..ba7d4214bbff
--- /dev/null
+++ b/drivers/staging/ipx/pe2.c
@@ -0,0 +1,36 @@
+// SPDX-License-Identifier: GPL-2.0
+#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);
+}