Skip to contentSkip to conversation

2.4.19-pre7 ATM Ethernet bridging support (BR2684)

PATCH New Maksim (Max) Krasnyanskiy 1 participant 1 message Apr 23, 2002

Subsystems (4)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 2.4.19-pre7 ATM Ethernet bridging support (BR2684)

Marcelo,
Dave,

Following patch adds support for ATM Ethernet bridging (RFC 2684) implemented by Marcell GAL.
http://bluez.sourceforge.net/patches/atm-br2684-2.4.19-pre7.gz

Please apply

Thanks
Max

 Documentation/Configure.help |   13 
 arch/sparc/config.in         |    6 
 include/linux/atmbr2684.h    |  101 +++++
 include/linux/atmdev.h       |    4 
 net/Config.in                |    4 
 net/atm/Makefile             |    9 
 net/atm/br2684.c             |  804 +++++++++++++++++++++++++++++++++++++++++++
 net/atm/common.c             |   15 
 8 files changed, 955 insertions(+), 1 deletion(-)

# This is a BitKeeper generated patch for the following project:
# Project Name: Linux kernel tree
# This patch format is intended for GNU patch command version 2.5 or higher. # This patch includes the following deltas:

#	           ChangeSet	1.449   -> 1.450  
#	arch/sparc/config.in	1.8     -> 1.9    
#	    net/atm/Makefile	1.3     -> 1.4    
#	       net/Config.in	1.8     -> 1.9    
#	include/linux/atmdev.h	1.3     -> 1.4    
#	    net/atm/common.c	1.8     -> 1.9    
#	Documentation/Configure.help	1.98    -> 1.99   
#	               (new)	        -> 1.1     include/linux/atmbr2684.h
#	               (new)	        -> 1.1     net/atm/br2684.c

#
# The following is the BitKeeper ChangeSet Log
# --------------------------------------------
# 02/04/23 [email protected] 1.450
# Support for ATM Ethernet bridging (BR2684)
# --------------------------------------------
#

Documentation/Configure.help +13 -0
diff -Nru a/Documentation/Configure.help b/Documentation/Configure.help
@@ -6209,6 +6209,19 @@
   briefly removed during revalidation. If you say Y here, packets to
   such neighbours are silently discarded instead.
 
+RFC1483/2684 Bridged protocols
+CONFIG_ATM_BR2684
+  ATM PVCs can carry ethernet PDUs according to rfc2684 (formerly 1483)
+  This device will act like an ethernet from the kernels point of view,
+  with the traffic being carried by ATM PVCs (currently 1 PVC/device).
+  This is sometimes used over DSL lines.  If in doubt, say N.
+
+Per-VC IP filter kludge
+CONFIG_ATM_BR2684_IPFILTER
+  This is an experimental mechanism for users who need to terminating a
+  large number of IP-only vcc's.  Do not enable this unless you are sure
+  you know what you are doing.
+
 LAN Emulation (LANE) support
 CONFIG_ATM_LANE
   LAN Emulation emulates services of existing LANs across an ATM
arch/sparc/config.in +6 -0
diff -Nru a/arch/sparc/config.in b/arch/sparc/config.in
@@ -211,6 +211,12 @@
         dep_tristate '  PPP support for sync tty ports' CONFIG_PPP_SYNC_TTY $CONFIG_PPP
         dep_tristate '  PPP Deflate compression' CONFIG_PPP_DEFLATE $CONFIG_PPP
         dep_tristate '  PPP BSD-Compress compression' CONFIG_PPP_BSDCOMP m
+	if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
+	  dep_tristate '  PPP over Ethernet (EXPERIMENTAL)' CONFIG_PPPOE $CONFIG_PPP
+	  if [ "$CONFIG_ATM" = "y" ]; then
+	    dep_tristate '  PPP over ATM (EXPERIMENTAL)' CONFIG_PPPOATM $CONFIG_PPP
+	  fi
+	fi
       fi
       tristate '  SLIP (serial line) support' CONFIG_SLIP
       if [ "$CONFIG_SLIP" != "n" ]; then
include/linux/atmbr2684.h new file +101 -0

101 lines not on this page · raw message

include/linux/atmdev.h +3 -1
diff -Nru a/include/linux/atmdev.h b/include/linux/atmdev.h
@@ -95,6 +95,8 @@
 					/* enable or disable single-copy */
 #define ATM_SETBACKEND	_IOW('a',ATMIOC_SPECIAL+2,atm_backend_t)
 					/* set backend handler */
+#define ATM_NEWBACKENDIF _IOW('a',ATMIOC_SPECIAL+3,atm_backend_t)
+					/* use backend to make new if */
 
 /*
  * These are backend handkers that can be set via the ATM_SETBACKEND call
@@ -103,7 +105,7 @@
  */
 #define ATM_BACKEND_RAW		0	
 #define ATM_BACKEND_PPP		1	/* PPPoATM - RFC2364 */
-#define ATM_BACKEND_BR_2684	2	/* Bridged RFC1483/2684 */
+#define ATM_BACKEND_BR2684	2	/* Bridged RFC1483/2684 */
 
 /* for ATM_GETTYPE */
 #define ATM_ITFTYP_LEN	8	/* maximum length of interface type name */
net/Config.in +4 -0
diff -Nru a/net/Config.in b/net/Config.in
@@ -43,6 +43,10 @@
       if [ "$CONFIG_INET" = "y" -a "$CONFIG_ATM_LANE" != "n" ]; then
 	 tristate '    Multi-Protocol Over ATM (MPOA) support' CONFIG_ATM_MPOA
       fi
+      tristate '  RFC1483/2684 Bridged protocols' CONFIG_ATM_BR2684
+      if [ "$CONFIG_ATM_BR2684" != "n" ]; then
+            bool '    Per-VC IP filter kludge' CONFIG_ATM_BR2684_IPFILTER
+      fi
    fi
 fi
 tristate '802.1Q VLAN Support' CONFIG_VLAN_8021Q
net/atm/Makefile +9 -0
diff -Nru a/net/atm/Makefile b/net/atm/Makefile
@@ -21,6 +21,15 @@
 NEED_IPCOM = ipcommon.o
 endif
 
+ifeq ($(CONFIG_ATM_BR2684),y)
+  NEED_IPCOM = ipcommon.o
+else
+  ifeq ($(CONFIG_ATM_BR2684),m)
+	NEED_IPCOM = ipcommon.o
+  endif
+endif
+obj-$(CONFIG_ATM_BR2684) += br2684.o
+
 ifeq ($(CONFIG_NET_SCH_ATM),y)
 NEED_IPCOM = ipcommon.o
 endif
net/atm/br2684.c new file +804 -0

804 lines not on this page · raw message

net/atm/common.c +15 -0
diff -Nru a/net/atm/common.c b/net/atm/common.c
@@ -63,6 +63,13 @@
 EXPORT_SYMBOL(pppoatm_ioctl_hook);
 #endif
 
+#if defined(CONFIG_ATM_BR2684) || defined(CONFIG_ATM_BR2684_MODULE)
+int (*br2684_ioctl_hook)(struct atm_vcc *, unsigned int, unsigned long);
+#endif
+#ifdef CONFIG_ATM_BR2684_MODULE
+EXPORT_SYMBOL(br2684_ioctl_hook);
+#endif
+
 #include "resources.h"		/* atm_find_dev */
 #include "common.h"		/* prototypes */
 #include "protocols.h"		/* atm_init_<transport> */
@@ -785,6 +792,14 @@
 			goto done;
 	}
 #endif
+#if defined(CONFIG_ATM_BR2684) || defined(CONFIG_ATM_BR2684_MODULE)
+	if (br2684_ioctl_hook) {
+		ret_val = br2684_ioctl_hook(vcc, cmd, arg);
+		if (ret_val != -ENOIOCTLCMD)
+			goto done;
+	}
+#endif
+
 	if (get_user(buf,&((struct atmif_sioc *) arg)->arg)) {
 		ret_val = -EFAULT;
 		goto done;