OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [linux/] [linux-2.4/] [Documentation/] [networking/] [wan-router.txt] - Rev 1765

Compare with Previous | Blame | View Log

------------------------------------------------------------------------------
Linux WAN Router Utilities Package
------------------------------------------------------------------------------
Version 2.2.1 
Mar 28, 2001
Author: Nenad Corbic <ncorbic@sangoma.com>
Copyright (c) 1995-2001 Sangoma Technologies Inc.
------------------------------------------------------------------------------

INTRODUCTION

Wide Area Networks (WANs) are used to interconnect Local Area Networks (LANs)
and/or stand-alone hosts over vast distances with data transfer rates
significantly higher than those achievable with commonly used dial-up
connections.

Usually an external device called `WAN router' sitting on your local network
or connected to your machine's serial port provides physical connection to
WAN.  Although router's job may be as simple as taking your local network
traffic, converting it to WAN format and piping it through the WAN link, these
devices are notoriously expensive, with prices as much as 2 - 5 times higher
then the price of a typical PC box.

Alternatively, considering robustness and multitasking capabilities of Linux,
an internal router can be built (most routers use some sort of stripped down
Unix-like operating system anyway). With a number of relatively inexpensive WAN
interface cards available on the market, a perfectly usable router can be
built for less than half a price of an external router.  Yet a Linux box
acting as a router can still be used for other purposes, such as fire-walling,
running FTP, WWW or DNS server, etc.

This kernel module introduces the notion of a WAN Link Driver (WLD) to Linux
operating system and provides generic hardware-independent services for such
drivers.  Why can existing Linux network device interface not be used for
this purpose?  Well, it can.  However, there are a few key differences between
a typical network interface (e.g. Ethernet) and a WAN link.

Many WAN protocols, such as X.25 and frame relay, allow for multiple logical
connections (known as `virtual circuits' in X.25 terminology) over a single
physical link.  Each such virtual circuit may (and almost always does) lead
to a different geographical location and, therefore, different network.  As a
result, it is the virtual circuit, not the physical link, that represents a
route and, therefore, a network interface in Linux terms.

To further complicate things, virtual circuits are usually volatile in nature
(excluding so called `permanent' virtual circuits or PVCs).  With almost no
time required to set up and tear down a virtual circuit, it is highly desirable
to implement on-demand connections in order to minimize network charges.  So
unlike a typical network driver, the WAN driver must be able to handle multiple
network interfaces and cope as multiple virtual circuits come into existence
and go away dynamically.
 
Last, but not least, WAN configuration is much more complex than that of say
Ethernet and may well amount to several dozens of parameters.  Some of them
are "link-wide"  while others are virtual circuit-specific.  The same holds
true for WAN statistics which is by far more extensive and extremely useful
when troubleshooting WAN connections.  Extending the ifconfig utility to suit
these needs may be possible, but does not seem quite reasonable.  Therefore, a
WAN configuration utility and corresponding application programmer's interface
is needed for this purpose.

Most of these problems are taken care of by this module.  Its goal is to
provide a user with more-or-less standard look and feel for all WAN devices and
assist a WAN device driver writer by providing common services, such as:

 o User-level interface via /proc file system
 o Centralized configuration
 o Device management (setup, shutdown, etc.)
 o Network interface management (dynamic creation/destruction)
 o Protocol encapsulation/decapsulation

To ba able to use the Linux WAN Router you will also need a WAN Tools package
available from

        ftp.sangoma.com/pub/linux/current_wanpipe/wanpipe-X.Y.Z.tgz

where vX.Y.Z represent the wanpipe version number.

For technical questions and/or comments please e-mail to ncorbic@sangoma.com.
For general inquiries please contact Sangoma Technologies Inc. by

        Hotline:        1-800-388-2475  (USA and Canada, toll free)
        Phone:          (905) 474-1990  ext: 106
        Fax:            (905) 474-9223
        E-mail:         dm@sangoma.com  (David Mandelstam)
        WWW:            http://www.sangoma.com


INSTALLATION

Please read the WanpipeForLinux.pdf manual on how to 
install the WANPIPE tools and drivers properly. 


After installing wanpipe package: /usr/local/wanrouter/doc. 
On the ftp.sangoma.com : /linux/current_wanpipe/doc


COPYRIGHT AND LICENSING INFORMATION

This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation; either version 2, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with
this program; if not, write to the Free Software Foundation, Inc., 675 Mass
Ave, Cambridge, MA 02139, USA.



ACKNOWLEDGEMENTS

This product is based on the WANPIPE(tm) Multiprotocol WAN Router developed
by Sangoma Technologies Inc. for Linux 2.0.x and 2.2.x.  Success of the WANPIPE
together with the next major release of Linux kernel in summer 1996 commanded
adequate changes to the WANPIPE code to take full advantage of new Linux
features.

Instead of continuing developing proprietary interface tied to Sangoma WAN
cards, we decided to separate all hardware-independent code into a separate
module and defined two levels of interfaces - one for user-level applications
and another for kernel-level WAN drivers.  WANPIPE is now implemented as a
WAN driver compliant with the WAN Link Driver interface.  Also a general
purpose WAN configuration utility and a set of shell scripts was developed to 
support WAN router at the user level.

Many useful ideas concerning hardware-independent interface implementation
were given by Mike McLagan <mike.mclagan@linux.org> and his implementation
of the Frame Relay router and drivers for Sangoma cards (dlci/sdla).

With the new implementation of the APIs being incorporated into the WANPIPE,
a special thank goes to Alan Cox in providing insight into BSD sockets.

Special thanks to all the WANPIPE users who performed field-testing, reported
bugs and made valuable comments and suggestions that help us to improve this
product.



NEW IN THIS RELEASE

        o Updated the WANCFG utility
                Calls the pppconfig to configure the PPPD
                for async connections.

        o Added the PPPCONFIG utility
                Used to configure the PPPD dameon for the
                WANPIPE Async PPP and standard serial port.
                The wancfg calls the pppconfig to configure
                the pppd.

        o Fixed the PCI autodetect feature.  
                The SLOT 0 was used as an autodetect option
                however, some high end PC's slot numbers start
                from 0. 

        o This release has been tested with the new backupd
          daemon release.
        

PRODUCT COMPONENTS AND RELATED FILES

/etc: (or user defined)
        wanpipe1.conf   default router configuration file

/lib/modules/X.Y.Z/misc:
        wanrouter.o     router kernel loadable module
        af_wanpipe.o    wanpipe api socket module

/lib/modules/X.Y.Z/net:
        sdladrv.o       Sangoma SDLA support module
        wanpipe.o       Sangoma WANPIPE(tm) driver module

/proc/net/wanrouter
        Config          reads current router configuration
        Status          reads current router status
        {name}          reads WAN driver statistics

/usr/sbin:
        wanrouter       wanrouter start-up script
        wanconfig       wanrouter configuration utility
        sdladump        WANPIPE adapter memory dump utility
        fpipemon        Monitor for Frame Relay
        cpipemon        Monitor for Cisco HDLC
        ppipemon        Monitor for PPP
        xpipemon        Monitor for X25
        wpkbdmon        WANPIPE keyboard led monitor/debugger

/usr/local/wanrouter:
        README          this file
        COPYING         GNU General Public License
        Setup           installation script
        Filelist        distribution definition file
        wanrouter.rc    meta-configuration file 
                        (used by the Setup and wanrouter script)

/usr/local/wanrouter/doc:
        wanpipeForLinux.pdf     WAN Router User's Manual

/usr/local/wanrouter/patches:
        wanrouter-v2213.gz      patch for Linux kernels 2.2.11 up to 2.2.13.
        wanrouter-v2214.gz      patch for Linux kernel 2.2.14. 
        wanrouter-v2215.gz      patch for Linux kernels 2.2.15 to 2.2.17.
        wanrouter-v2218.gz      patch for Linux kernels 2.2.18 and up.
        wanrouter-v240.gz       patch for Linux kernel 2.4.0.  
        wanrouter-v242.gz       patch for Linux kernel 2.4.2 and up.
        wanrouter-v2034.gz      patch for Linux kernel 2.0.34
        wanrouter-v2036.gz      patch for Linux kernel 2.0.36 and up. 

/usr/local/wanrouter/patches/kdrivers:
        Sources of the latest WANPIPE device drivers.
        These are used to UPGRADE the linux kernel to the newest
        version if the kernel source has already been pathced with
        WANPIPE drivers.

/usr/local/wanrouter/samples:
        interface       sample interface configuration file
        wanpipe1.cpri   CHDLC primary port
        wanpipe2.csec   CHDLC secondary port
        wanpipe1.fr     Frame Relay protocol
        wanpipe1.ppp    PPP protocol ) 
        wanpipe1.asy    CHDLC ASYNC protocol
        wanpipe1.x25    X25 protocol
        wanpipe1.stty   Sync TTY driver (Used by Kernel PPPD daemon)
        wanpipe1.atty   Async TTY driver (Used by Kernel PPPD daemon)
        wanrouter.rc    sample meta-configuration file

/usr/local/wanrouter/util:
        *               wan-tools utilities source code

/usr/local/wanrouter/api/x25:
        *               x25 api sample programs.
/usr/local/wanrouter/api/chdlc:
        *               chdlc api sample programs.
/usr/local/wanrouter/api/fr:
        *               fr api sample programs.
/usr/local/wanrouter/config/wancfg:
        wancfg          WANPIPE GUI configuration program.
                        Creates wanpipe#.conf files. 
/usr/local/wanrouter/config/cfgft1:
        cfgft1          GUI CSU/DSU configuration program.

/usr/include/linux:
        wanrouter.h     router API definitions
        wanpipe.h       WANPIPE API definitions
        sdladrv.h       SDLA support module API definitions
        sdlasfm.h       SDLA firmware module definitions
        if_wanpipe.h    WANPIPE Socket definitions
        if_wanpipe_common.h     WANPIPE Socket/Driver common definitions.
        sdlapci.h       WANPIPE PCI definitions
        

/usr/src/linux/net/wanrouter:
        *               wanrouter source code

/var/log:
        wanrouter       wanrouter start-up log (created by the Setup script)

/var/lock:  (or /var/lock/subsys for RedHat)
        wanrouter       wanrouter lock file (created by the Setup script)

/usr/local/wanrouter/firmware:
        fr514.sfm       Frame relay firmware for Sangoma S508/S514 card
        cdual514.sfm    Dual Port Cisco HDLC firmware for Sangoma S508/S514 card
        ppp514.sfm      PPP Firmware for Sangoma S508 and S514 cards
        x25_508.sfm     X25 Firmware for Sangoma S508 card.


REVISION HISTORY

1.0.0   December 31, 1996       Initial version

1.0.1   January 30, 1997        Status and statistics can be read via /proc
                                filesystem entries.

1.0.2   April 30, 1997          Added UDP management via monitors.

1.0.3   June 3, 1997            UDP management for multiple boards using Frame
                                Relay and PPP
                                Enabled continuous transmission of Configure 
                                Request Packet for PPP (for 508 only)
                                Connection Timeout for PPP changed from 900 to 0
                                Flow Control Problem fixed for Frame Relay

1.0.4   July 10, 1997           S508/FT1 monitoring capability in fpipemon and
                                ppipemon utilities.
                                Configurable TTL for UDP packets.
                                Multicast and Broadcast IP source addresses are
                                silently discarded.

1.0.5   July 28, 1997           Configurable T391,T392,N391,N392,N393 for Frame
                                Relay in router.conf.
                                Configurable Memory Address through router.conf 
                                for Frame Relay, PPP and X.25. (commenting this
                                out enables auto-detection).
                                Fixed freeing up received buffers using kfree()
                                for Frame Relay and X.25.
                                Protect sdla_peek() by calling save_flags(),
                                cli() and restore_flags().
                                Changed number of Trace elements from 32 to 20
                                Added DLCI specific data monitoring in FPIPEMON. 
2.0.0   Nov 07, 1997            Implemented protection of RACE conditions by 
                                critical flags for FRAME RELAY and PPP.
                                DLCI List interrupt mode implemented.
                                IPX support in FRAME RELAY and PPP.
                                IPX Server Support (MARS)
                                More driver specific stats included in FPIPEMON
                                and PIPEMON.

2.0.1   Nov 28, 1997            Bug Fixes for version 2.0.0.
                                Protection of "enable_irq()" while 
                                "disable_irq()" has been enabled from any other
                                routine (for Frame Relay, PPP and X25).
                                Added additional Stats for Fpipemon and Ppipemon
                                Improved Load Sharing for multiple boards

2.0.2   Dec 09, 1997            Support for PAP and CHAP for ppp has been
                                implemented.

2.0.3   Aug 15, 1998            New release supporting Cisco HDLC, CIR for Frame
                                relay, Dynamic IP assignment for PPP and Inverse
                                Arp support for Frame-relay.  Man Pages are 
                                included for better support and a new utility
                                for configuring FT1 cards.

2.0.4   Dec 09, 1998            Dual Port support for Cisco HDLC.
                                Support for HDLC (LAPB) API.
                                Supports BiSync Streaming code for S502E 
                                and S503 cards.
                                Support for Streaming HDLC API.
                                Provides a BSD socket interface for 
                                creating applications using BiSync
                                streaming.        

2.0.5   Aug 04, 1999            CHDLC initializatin bug fix.
                                PPP interrupt driven driver: 
                                Fix to the PPP line hangup problem.
                                New PPP firmware
                                Added comments to the startup SYSTEM ERROR messages
                                Xpipemon debugging application for the X25 protocol
                                New USER_MANUAL.txt
                                Fixed the odd boundary 4byte writes to the board.
                                BiSync Streaming code has been taken out.  
                                 Available as a patch.
                                Streaming HDLC API has been taken out.  
                                 Available as a patch.                 

2.0.6   Aug 17, 1999            Increased debugging in statup scripts
                                Fixed insallation bugs from 2.0.5
                                Kernel patch works for both 2.2.10 and 2.2.11 kernels.
                                There is no functional difference between the two packages         

2.0.7   Aug 26, 1999            o  Merged X25API code into WANPIPE.
                                o  Fixed a memeory leak for X25API
                                o  Updated the X25API code for 2.2.X kernels.
                                o  Improved NEM handling.   

2.1.0   Oct 25, 1999            o New code for S514 PCI Card
                                o New CHDLC and Frame Relay drivers
                                o PPP and X25 are not supported in this release    

2.1.1   Nov 30, 1999            o PPP support for S514 PCI Cards

2.1.3   Apr 06, 2000            o Socket based x25api 
                                o Socket based chdlc api
                                o Socket based fr api
                                o Dual Port Receive only CHDLC support.
                                o Asynchronous CHDLC support (Secondary Port)
                                o cfgft1 GUI csu/dsu configurator
                                o wancfg GUI configuration file 
                                  configurator.
                                o Architectual directory changes.

beta-2.1.4 Jul 2000             o Dynamic interface configuration:
                                        Network interfaces reflect the state
                                        of protocol layer.  If the protocol becomes
                                        disconnected, driver will bring down
                                        the interface.  Once the protocol reconnects
                                        the interface will be brought up. 
                                        
                                        Note: This option is turned off by default.

                                o Dynamic wanrouter setup using 'wanconfig':
                                        wanconfig utility can be used to
                                        shutdown,restart,start or reconfigure 
                                        a virtual circuit dynamically.
                                     
                                        Frame Relay:  Each DLCI can be: 
                                                      created,stopped,restarted and reconfigured
                                                      dynamically using wanconfig.
                                        
                                                      ex: wanconfig card wanpipe1 dev wp1_fr16 up
                                  
                                o Wanrouter startup via command line arguments:
                                        wanconfig also supports wanrouter startup via command line
                                        arguments.  Thus, there is no need to create a wanpipe#.conf
                                        configuration file.  

                                o Socket based x25api update/bug fixes.
                                        Added support for LCN numbers greater than 255.
                                        Option to pass up modem messages.
                                        Provided a PCI IRQ check, so a single S514
                                        card is guaranteed to have a non-sharing interrupt.

                                o Fixes to the wancfg utility.
                                o New FT1 debugging support via *pipemon utilities.
                                o Frame Relay ARP support Enabled.

beta3-2.1.4 Jul 2000            o X25 M_BIT Problem fix.
                                o Added the Multi-Port PPP
                                  Updated utilites for the Multi-Port PPP.

2.1.4   Aut 2000
                                o In X25API:
                                        Maximum packet an application can send
                                        to the driver has been extended to 4096 bytes.

                                        Fixed the x25 startup bug. Enable 
                                        communications only after all interfaces
                                        come up.  HIGH SVC/PVC is used to calculate
                                        the number of channels.
                                        Enable protocol only after all interfaces
                                        are enabled.

                                o Added an extra state to the FT1 config, kernel module.
                                o Updated the pipemon debuggers.

                                o Blocked the Multi-Port PPP from running on kernels
                                  2.2.16 or greater, due to syncppp kernel module
                                  change. 
          
beta1-2.1.5     Nov 15 2000
                                o Fixed the MulitPort PPP Support for kernels 2.2.16 and above.
                                  2.2.X kernels only

                                o Secured the driver UDP debugging calls
                                        - All illegal netowrk debugging calls are reported to
                                          the log.
                                        - Defined a set of allowed commands, all other denied.
                                        
                                o Cpipemon
                                        - Added set FT1 commands to the cpipemon. Thus CSU/DSU
                                          configuraiton can be performed using cpipemon.
                                          All systems that cannot run cfgft1 GUI utility should
                                          use cpipemon to configure the on board CSU/DSU.


                                o Keyboard Led Monitor/Debugger
                                        - A new utilty /usr/sbin/wpkbdmon uses keyboard leds
                                          to convey operatinal statistic information of the 
                                          Sangoma WANPIPE cards.
                                        NUM_LOCK    = Line State  (On=connected,    Off=disconnected)
                                        CAPS_LOCK   = Tx data     (On=transmitting, Off=no tx data)
                                        SCROLL_LOCK = Rx data     (On=receiving,    Off=no rx data
                                        
                                o Hardware probe on module load and dynamic device allocation
                                        - During WANPIPE module load, all Sangoma cards are probed
                                          and found information is printed in the /var/log/messages.
                                        - If no cards are found, the module load fails.
                                        - Appropriate number of devices are dynamically loaded 
                                          based on the number of Sangoma cards found.

                                          Note: The kernel configuraiton option 
                                                CONFIG_WANPIPE_CARDS has been taken out.
                                        
                                o Fixed the Frame Relay and Chdlc network interfaces so they are
                                  compatible with libpcap libraries.  Meaning, tcpdump, snort,
                                  ethereal, and all other packet sniffers and debuggers work on
                                  all WANPIPE netowrk interfaces.
                                        - Set the network interface encoding type to ARPHRD_PPP.
                                          This tell the sniffers that data obtained from the
                                          network interface is in pure IP format.
                                  Fix for 2.2.X kernels only.
                                
                                o True interface encoding option for Frame Relay and CHDLC
                                        - The above fix sets the network interface encoding
                                          type to ARPHRD_PPP, however some customers use
                                          the encoding interface type to determine the
                                          protocol running.  Therefore, the TURE ENCODING
                                          option will set the interface type back to the
                                          original value.  

                                          NOTE: If this option is used with Frame Relay and CHDLC
                                                libpcap library support will be broken.  
                                                i.e. tcpdump will not work.
                                        Fix for 2.2.x Kernels only.
                                                
                                o Ethernet Bridgind over Frame Relay
                                        - The Frame Relay bridging has been developed by 
                                          Kristian Hoffmann and Mark Wells.  
                                        - The Linux kernel bridge is used to send ethernet 
                                          data over the frame relay links.
                                        For 2.2.X Kernels only.

                                o Added extensive 2.0.X support. Most new features of
                                  2.1.5 for protocols Frame Relay, PPP and CHDLC are
                                  supported under 2.0.X kernels. 

beta1-2.2.0     Dec 30 2000
                                o Updated drivers for 2.4.X kernels.
                                o Updated drivers for SMP support.
                                o X25API is now able to share PCI interrupts.
                                o Took out a general polling routine that was used
                                  only by X25API. 
                                o Added appropriate locks to the dynamic reconfiguration
                                  code.
                                o Fixed a bug in the keyboard debug monitor.

beta2-2.2.0     Jan 8 2001
                                o Patches for 2.4.0 kernel
                                o Patches for 2.2.18 kernel
                                o Minor updates to PPP and CHLDC drivers.
                                  Note: No functinal difference. 

beta3-2.2.9     Jan 10 2001
                                o I missed the 2.2.18 kernel patches in beta2-2.2.0
                                  release.  They are included in this release.

Stable Release
2.2.0           Feb 01 2001
                                o Bug fix in wancfg GUI configurator.
                                        The edit function didn't work properly.


bata1-2.2.1     Feb 09 2001
                        o WANPIPE TTY Driver emulation. 
                          Two modes of operation Sync and Async.
                                Sync: Using the PPPD daemon, kernel SyncPPP layer
                                      and the Wanpipe sync TTY driver: a PPP protocol 
                                      connection can be established via Sangoma adapter, over
                                      a T1 leased line.
                        
                                      The 2.4.0 kernel PPP layer supports MULTILINK
                                      protocol, that can be used to bundle any number of Sangoma
                                      adapters (T1 lines) into one, under a single IP address.
                                      Thus, efficiently obtaining multiple T1 throughput. 

                                      NOTE: The remote side must also implement MULTILINK PPP
                                            protocol.

                                Async:Using the PPPD daemon, kernel AsyncPPP layer
                                      and the WANPIPE async TTY driver: a PPP protocol
                                      connection can be established via Sangoma adapter and
                                      a modem, over a telephone line.

                                      Thus, the WANPIPE async TTY driver simulates a serial
                                      TTY driver that would normally be used to interface the 
                                      MODEM to the linux kernel.
                                
                        o WANPIPE PPP Backup Utility
                                This utility will monitor the state of the PPP T1 line.
                                In case of failure, a dial up connection will be established
                                via pppd daemon, ether via a serial tty driver (serial port), 
                                or a WANPIPE async TTY driver (in case serial port is unavailable).
                                
                                Furthermore, while in dial up mode, the primary PPP T1 link
                                will be monitored for signs of life.  

                                If the PPP T1 link comes back to life, the dial up connection
                                will be shutdown and T1 line re-established.
                        

                        o New Setup installation script.
                                Option to UPGRADE device drivers if the kernel source has
                                already been patched with WANPIPE.

                                Option to COMPILE WANPIPE modules against the currently 
                                running kernel, thus no need for manual kernel and module
                                re-compilatin.
                        
                        o Updates and Bug Fixes to wancfg utility.

bata2-2.2.1     Feb 20 2001

                        o Bug fixes to the CHDLC device drivers.
                                The driver had compilation problmes under kernels
                                2.2.14 or lower.

                        o Bug fixes to the Setup installation script.
                                The device drivers compilation options didn't work
                                properly.

                        o Update to the wpbackupd daemon.  
                                Optimized the cross-over times, between the primary
                                link and the backup dialup.

beta3-2.2.1     Mar 02 2001
                        o Patches for 2.4.2 kernel.

                        o Bug fixes to util/ make files.
                        o Bug fixes to the Setup installation script.

                        o Took out the backupd support and made it into
                          as separate package.
                          
beta4-2.2.1     Mar 12 2001

                o Fix to the Frame Relay Device driver.
                        IPSAC sends a packet of zero length
                        header to the frame relay driver.  The
                        driver tries to push its own 2 byte header
                        into the packet, which causes the driver to
                        crash.

                o Fix the WANPIPE re-configuration code.
                        Bug was found by trying to run  the cfgft1 while the
                        interface was already running.  

                o Updates to cfgft1.
                        Writes a wanpipe#.cfgft1 configuration file
                        once the CSU/DSU is configured. This file can
                        holds the current CSU/DSU configuration.



>>>>>> END OF README <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<


Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.