~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Linux Cross Reference
Linux/Documentation/networking/wan-router.txt

Version: ~ [ 2.4.0 ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 ------------------------------------------------------------------------------
  2 WAN Router for Linux Operating System
  3 ------------------------------------------------------------------------------
  4 Version 2.1.1 - Nov 08, 1999
  5 Version 2.0.8 - Nov 02, 1999
  6 Version 2.0.7 - Aug 26, 1999
  7 Version 2.0.6 - Aug 17, 1999
  8 Version 2.0.5 - Aug 12, 1999
  9 Version 2.0.4 - Nov 26, 1998
 10 Version 2.0.3 - Aug 25, 1998
 11 Version 2.0.2 - Dec 09, 1997
 12 Version 2.0.1 - Nov 28, 1997
 13 Version 2.0.0 - Nov 06, 1997
 14 Version 1.0.3 - June 3, 1997
 15 Version 1.0.1 - January 30, 1997
 16 Author: Nenad Corbic <ncorbic@sangoma.com>
 17 Copyright (c) 1995-1999 Sangoma Technologies Inc.
 18 ------------------------------------------------------------------------------
 19 
 20 
 21 WARNING:  This Version of WANPIPE supports only the S508 and S508/FT1 cards.  
 22 IF YOU OWN A S502E OR A S508 CARD THEN PLEASE CONTACT SANGOMA TECHNOLOGIES FOR 
 23 AN UPGRADE.  ONLY THE BiSYNC STREAMING CODE IS SUPPORTED ON S502E/S503 cards. 
 24 
 25 INTRODUCTION
 26 
 27 Wide Area Networks (WANs) are used to interconnect Local Area Networks (LANs)
 28 and/or stand-alone hosts over vast distances with data transfer rates
 29 significantly higher than those achievable with commonly used dial-up
 30 connections.
 31 
 32 Usually an external device called `WAN router' sitting on your local network
 33 or connected to your machine's serial port provides physical connection to
 34 WAN.  Although router's job may be as simple as taking your local network
 35 traffic, converting it to WAN format and piping it through the WAN link, these
 36 devices are notoriously expensive, with prices as much as 2 - 5 times higher
 37 then the price of a typical PC box.
 38 
 39 Alternatively, considering robustness and multitasking capabilities of Linux,
 40 an internal router can be built (most routers use some sort of stripped down
 41 Unix-like operating system anyway). With a number of relatively inexpensive WAN
 42 interface cards available on the market, a perfectly usable router can be
 43 built for less than half a price of an external router.  Yet a Linux box
 44 acting as a router can still be used for other purposes, such as firewalling,
 45 running FTP, WWW or DNS server, etc.
 46 
 47 This kernel module introduces the notion of a WAN Link Driver (WLD) to Linux
 48 operating system and provides generic hardware-independent services for such
 49 drivers.  Why can existing Linux network device interface not be used for
 50 this purpose?  Well, it can.  However, there are a few key differences between
 51 a typical network interface (e.g. Ethernet) and a WAN link.
 52 
 53 Many WAN protocols, such as X.25 and frame relay, allow for multiple logical
 54 connections (known as `virtual circuits' in X.25 terminology) over a single
 55 physical link.  Each such virtual circuit may (and almost always does) lead
 56 to a different geographical location and, therefore, different network.  As a
 57 result, it is the virtual circuit, not the physical link, that represents a
 58 route and, therefore, a network interface in Linux terms.
 59 
 60 To further complicate things, virtual circuits are usually volatile in nature
 61 (excluding so called `permanent' virtual circuits or PVCs).  With almost no
 62 time required to set up and tear down a virtual circuit, it is highly desirable
 63 to implement on-demand connections in order to minimize network charges.  So
 64 unlike a typical network driver, the WAN driver must be able to handle multiple
 65 network interfaces and cope as multiple virtual circuits come into existence
 66 and go away dynamically.
 67  
 68 Last, but not least, WAN configuration is much more complex than that of say
 69 Ethernet and may well amount to several dozens of parameters.  Some of them
 70 are "link-wide"  while others are virtual circuit-specific.  The same holds
 71 true for WAN statistics which is by far more extensive and extremely useful
 72 when troubleshooting WAN connections.  Extending the ifconfig utility to suit
 73 these needs may be possible, but does not seem quite reasonable.  Therefore, a
 74 WAN configuration utility and corresponding application programmer's interface
 75 is needed for this purpose.
 76 
 77 Most of these problems are taken care of by this module.  Its goal is to
 78 provide a user with more-or-less standard look and feel for all WAN devices and
 79 assist a WAN device driver writer by providing common services, such as:
 80 
 81  o User-level interface via /proc file system
 82  o Centralized configuration
 83  o Device management (setup, shutdown, etc.)
 84  o Network interface management (dynamic creation/destruction)
 85  o Protocol encapsulation/decapsulation
 86 
 87 To ba able to use the Linux WAN Router you will also need a WAN Tools package
 88 available from
 89 
 90         ftp.sangoma.com/pub/linux/vX.Y.Z/wantools-X.Y.Z.tgz
 91                         or
 92         ftp.sangoma.com/pub/linux/vX.Y.Z/wanpipe-X.Y.Z.tgz
 93 
 94 where vX.Y.Z represent the Linux kernel version number.
 95 
 96 For technical questions and/or comments regarding this product please e-mail
 97 to jaspreet@sangoma.com or dm@sangoma.com.
 98 
 99 
100 
101 COPYRIGHT AND LICENSING INFORMATION
102 
103 This program is free software; you can redistribute it and/or modify it under
104 the terms of the GNU General Public License as published by the Free Software
105 Foundation; either version 2, or (at your option) any later version.
106 
107 This program is distributed in the hope that it will be useful, but WITHOUT
108 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
109 FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
110 
111 You should have received a copy of the GNU General Public License along with
112 this program; if not, write to the Free Software Foundation, Inc., 675 Mass
113 Ave, Cambridge, MA 02139, USA.
114 
115 
116 
117 ACKNOWLEDGMENTS
118 
119 This product is based on the WANPIPE(tm) Multiprotocol WAN Router developed
120 by Sangoma Technologies Inc. for Linux 1.2.x.  Release of Linux 2.0 in summer
121 1996 commanded adequate changes to the WANPIPE code to take full advantage of
122 new Linux features.  Instead of continuing developing proprietary interface
123 specific to Sangoma WAN cards, we decided to put all hardware-independent code
124 into a separate module and define two levels of interfaces - one for user-
125 level applications and another for kernel-level WAN drivers.
126 
127 Many useful ideas concerning hardware-independent interface implementation
128 were given by Mike McLagan <mike.mclagan@linux.org> and his implementation
129 of the Frame Relay router and drivers for Sangoma cards (dlci/sdla).
130 
131 Special thanks to all the WANPIPE users who performed field-testing, reported
132 bugs and made valuable comments and suggestions that help us to improve this
133 product.
134 
135 
136 
137 REVISION HISTORY
138 
139 2.1.1   Nov 09, 1999            - New code for S514PCI card
140                                 - Completely redesigned drivers
141                                   fully tested and optimized.
142 
143 2.0.8   Nov 02, 1999            - Fixed up the X25API code.
144                                 - Clear call bug fixed.i
145                                 - Enabled driver for multi-card
146                                   operation.                                
147 
148 2.0.7   Aug 26, 1999            - Merged X25API code into WANPIPE.
149                                 - Fixed a memory leak for X25API
150                                 - Updated the X25API code for 2.2.X kernels.
151                                 - Improved NEM handling.
152 
153 2.0.6   Aug 17, 1999            - Kernel patch works for both 2.2.10 and 2.2.11 kernels
154                                 - Fixed up 2.0.5 installation bugs
155                                 - No functional difference between 2.0.6 and 2.0.5         
156 
157 2.0.5   Aug 12, 1999            - NEW PPP, interrupt drive code
158                                 - NEW X25 Xpipmon debugger
159                                 - Comments added to setup scripts
160                                 - Numerous bug fixes
161 
162 2.0.4   Nov 26, 1998            - NEW Cisco Dual Port support. 
163                                 - NEW support for BiSync Streaming API.
164                                 - NEW support for HDLC (LAPB) API.
165                                 - WANPIPE provides an API for application 
166                                   development using the BSD socket interface.
167 
168 2.0.3   Aug 25, 1998            - NEW support for Cisco HDLC, with cpipemon 
169                                   utility for monitoring
170                                 - CIR support for Frame-relay
171                                 - Support for PAP and CHAP for ppp has been 
172                                   implemented
173                                 - Dynamic IP assignment for PPP
174                                 - Multiple channel IPX support for Frame-relay 
175                                   and X25
176                                 - Inverse Arp support for Frame-relay
177                                 - FT1 Configuration utility for linux
178                                 - Man Pages for router.conf, router, sdladump,
179                                   cfgft1, fpipemon, ppipemon and cpipemon
180 
181 2.0.2   Dev 09, 1997          - Implemented PAP and CHAP for ppp.
182 
183 2.0.1   Nov 28, 1997          - Protection of "enable_irq()" while
184                                 "disable_irq()" has been enabled from any other
185                                 routine (for Frame Relay, PPP and X25).
186                               - Added additional Stats for Fpipemon and Ppipemon
187                               - Improved Load Sharing for multiple boards.
188 
189 2.0.0   Nov 07, 1997          - Implemented protection of RACE conditions by
190                                 critical flags for FRAME RELAY and PPP.
191                               - DLCI List interrupt mode implemented.
192                               - IPX support in FRAME RELAY and PPP.
193                               - IPX Server Support (MARS)
194                               - More driver specific stats included in FPIPEMON
195                                 and PIPEMON.
196 
197 1.0.5   July 28, 1997         - Configurable T391,T392,N391,N392,N393 for Frame
198                                 Relay in router.conf.
199                               - Configurable Memory Address through router.conf
200                                 for Frame Relay, PPP and X.25. (commenting this
201                                 out enables auto-detection).
202                               - Fixed freeing up received buffers using kfree()
203                                 for Frame Relay and X.25.
204                               - Protect sdla_peek() by calling save_flags(),
205                                 cli() and restore_flags().
206                               - Changed number of Trace elements from 32 to 20
207                               - Added DLCI specific data monitoring in FPIPEMON.
208 
209 1.0.4   July 10, 1997         - S508/FT1 monitoring capability in fpipemon and
210                                 ppipemon utilities.
211                               - Configurable TTL for UDP packets.
212                               - Multicast and Broadcast IP source addresses are
213                                 silently discarded.
214 
215 1.0.3   June 3, 1997
216                               - UDP port for multiple boards (Frame relay, PPP)
217                                 Continuous Transmission of Configure Request 
218                               - Packet for PPP (this support is only added for 
219                                 508 cards)
220                               - Connection Timeout for PPP changed from 900 to 0
221                               - Flow Control for multiple boards and multiple 
222                                 channels (Frame Relay)
223 
224 1.0.1   January 30, 1997
225 
226                               - Implemented user-readable status and statistics
227                                 via /proc filesystem
228 
229 1.0.0   December 31, 1996
230 
231                               - Initial version
232 
233 >>>>>> END <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.