[PATCH] Generic PPP for Generic HDLC [2/3]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is part 2 of a 3-message set that adds generic PPP support to the
generic HDLC layer.  These changes were made in PPC Linux 2.4.21-pre4.

These 3 parts DO NOT include changes to the PPP daemon to enable it to
work with WAN HDLC devices.  I shall post those changes to the
linux-ppp email list, under the subject "[PATCH] WAN HDLC Support".

I welcome comments and suggestions, polite or not.  Eventually, this
will be used in the real world ;) and I would like it to work
properly.
______________________________________________________________________

Part 1 is a new drivers/net/wan/hdlc_ppp.c.  I have included it
verbatim because I think it is easier to read than a patch (since
almost all of it is different from the previous version).

Part 2 patches the following:

  * In include/linux/hdlc.h, the PPP state variables have changed
    in accordance with the switch from syncppp.c to ppp_generic.

  * In drivers/net/wan/Makefile, syncppp.c is no longer required
    when CONFIG_HDLC_PPP is defined.

  * In include/linux/hdlc/ioctl.h, there is now a structure
    (ppp_proto) for retrieving PPP protocol information via
    the SIOCWANDEV(IF_GET_PROTO) ioctl.

  * In include/linux/if.h, ppp_proto is part of the union used in
    SIOCWANDEV.

Part 3 patches the "sethdlc" program to use the new ppp_proto
structure.

-- 
Dan Eble <dane@aiinet.com>  _____  .
                           |  _  |/|
Applied Innovation Inc.    | |_| | |
http://www.aiinet.com/     |__/|_|_|

diff -wbBurN linux-GPL.old/drivers/net/wan/Makefile linux-GPL/drivers/net/wan/Makefile
--- linux-GPL.old/drivers/net/wan/Makefile	2003-04-09 09:44:17.000000000 -0400
+++ linux-GPL/drivers/net/wan/Makefile	2003-05-29 15:03:35.000000000 -0400
@@ -88,9 +88,6 @@
 obj-$(CONFIG_LAPBETHER)		+= lapbether.o
 obj-$(CONFIG_SBNI)		+= sbni.o
 obj-$(CONFIG_HDLC)		+= hdlc.o
-ifeq ($(CONFIG_HDLC_PPP),y)
-  obj-$(CONFIG_HDLC)		+= syncppp.o
-endif
 obj-$(CONFIG_N2)		+= n2.o
 obj-$(CONFIG_C101)		+= c101.o
 
diff -wbBurN linux-GPL.old/include/linux/hdlc/ioctl.h linux-GPL/include/linux/hdlc/ioctl.h
--- linux-GPL.old/include/linux/hdlc/ioctl.h	2003-05-27 09:10:08.000000000 -0400
+++ linux-GPL/include/linux/hdlc/ioctl.h	2003-06-09 10:49:23.000000000 -0400
@@ -45,6 +45,8 @@
     unsigned int timeout;
 } cisco_proto;
 
-/* PPP doesn't need any info now - supply length = 0 to ioctl */
+typedef struct {
+	int channel; /* read-only index assigned by generic PPP layer */
+} ppp_proto;
 
 #endif /* __HDLC_IOCTL_H__ */
diff -wbBurN linux-GPL.old/include/linux/hdlc.h linux-GPL/include/linux/hdlc.h
--- linux-GPL.old/include/linux/hdlc.h	2003-04-10 15:14:01.000000000 -0400
+++ linux-GPL/include/linux/hdlc.h	2003-06-09 14:35:31.000000000 -0400
@@ -403,7 +403,7 @@
 
 #include <linux/skbuff.h>
 #include <linux/netdevice.h>
-#include <net/syncppp.h>
+#include <linux/ppp_channel.h>
 #include <linux/hdlc/ioctl.h>
 
 #define HDLC_MAX_MTU 1500	/* Ethernet 1500 bytes */
@@ -576,10 +576,12 @@
 		}raw_hdlc;
 
 		struct {
-			struct ppp_device pppdev;
-			struct ppp_device *syncppp_ptr;
+			ppp_proto settings;
+
+			unsigned int	flags;
 			int (*old_change_mtu)(struct net_device *dev,
 					      int new_mtu);
+			struct ppp_channel chan; /* interface to generic PPP */
 		}ppp;
 	}state;
 }hdlc_device;
diff -wbBurN linux-GPL.old/include/linux/if.h linux-GPL/include/linux/if.h
--- linux-GPL.old/include/linux/if.h	2003-04-16 08:57:02.000000000 -0400
+++ linux-GPL/include/linux/if.h	2003-06-09 14:35:31.000000000 -0400
@@ -110,6 +110,7 @@
 		fr_proto		*fr;
 		fr_proto_pvc		*fr_pvc;
 		fr_proto_pvc_info	*fr_pvc_info;
+		ppp_proto		*ppp;
 
 		/* interface settings */
 		sync_serial_settings	*sync;

-
: send the line "unsubscribe linux-net" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux 802.1Q VLAN]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Git]     [Bugtraq]     [Yosemite News and Information]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux PCI]     [Linux Admin]     [Samba]

  Powered by Linux