ADSL Configuration

ADSL Installation and Support

-> Download Wanpipe Driver for ADSL protocol Support
-> ADSL protocol is Supported with Sangoma S518 Hardware (S519 is End-of-Life, click HERE for S519 installation information)

 

NOTE:  The S518 ADSL drivers do not work on 64bit kernels

 

 

 Installation:

ADSL drivers are part of Wanpipe's DEFAULT installation.
eg:  ./Setup install  -> Default Compilation Mode

Configuration:

ADSL configuration is performed using /usr/sbin/wancfg GUI configurator.  Sample files are also located at the bottom of this file.

ADSL & ATM:

All ADSL networks use ATM protocol as its data link layer.  In OSI network model ADSL would be the physical layer and ATM would be the data link layer.  All higher layer protocol running over ADSL actually run on top of the ATM protocol that is synonimous with ADSL.

 


PPPoE over ADSL

As the name implies PPPoE protocol is a combination of two protocols running over ADSL/ATM data link layer. Top protocol is PPP and bottom is Ethernet.  

Wanpipe drivers do not support PPPoE protocol directly.  Wanpipe drivers provide only the Ethernet/ATM/ADSL portion, the actual PPPoE protocol must be obtained from Roaring Penguin PPPoE suite. 

PPPoE Configuration:

Run: /usr/sbin/wancfg

  1. Create new device

  2. Select wanpipe1 (or next available device)

  3. Hardware Section: Select S518 card from hardware probe

 

  1. Select Encapsulation Mode (ATM):
    Bridged Ethernet LLC over ATM: (PPPoE)

  2. ATM Auto Configuration Option
    Default set to NO.  Use the VPI/VCI info from your ISP spec

  3. VCI 
    Specify VCI number based on your ISP spec

  4. VPI
    Specify VPI number based on your ISP spec

  5. ADSL Watchdog: Default ON.
    Adsl watchdog, will monitor the line using ATM OAM Loopback requests, every 10 seconds. If 4 consecutive requests are not responded to, the ADSL line will be re-trained. If the remote side doesn't support ATM OAM  loopback protocol, the Watchdog will automatically turn off

    Leave the rest of the options DEFAULT

  1. Protocol Section

    Specify ADSL protocol,  no other options

  1. Interface Section

  2. Specify interface name.
    (Leave it default)

  3. Operation Mode: PPPoE
    PPPoE: This interface will be used by the PPPoE
                daemon, thus no ip information is needed.

  4. Leave the rest of the option DEFAULT

  5. End of configuration, exit and save

  6. Download Roaring Penguin PPPoE Stack : 

rp-pppoe-3.4.tar.gz -  README 

  1. Start Wanpipe:  

wanrouter start

  1. Install and configure Roaring Penguin PPPoE Stack.

    Note: The ethernet interface name must be the wanpipe 
              pppoe interface name in section 5.1 above.

 

NOTE: If you see "LCP Confreq request" errors occuring edit your pppoe.conf file and add the parameter "SYNCHRONOUS=yes".


PPPoA over ADSL using PPPD Daemon

As the name implies PPPoA protocol: PPP protocol running directly over ATM protocol over ADSL physical layer. 

In this scenario PPP protocol will be supported by the PPPD Daemon, thus Wanpipe drivers must only be configured for TTY device over ATM protocol.  The PPPD daemon will connect to ATM wanpipe driver using /dev/ttyWP{0,1,3...} device.

PPPoA TTY Configuration:

Run: /usr/sbin/wancfg

  1. Create new device

  2. Select wanpipe1 (or next available device)

  3. Hardware Section: Select S518 card from hardware probe

  4. Select Encapsulation Mode (ATM):
    PPP VC over ATM: (PPPoA)

  5. ATM Auto Configuration Option
    Default set to NO.  Use the VPI/VCI info from your ISP spec

  6. VCI 
    Specify VCI number based on your ISP spec

  7. VPI
    Specify VPI number based on your ISP spec

  8. ADSL Watchdog
    Adsl watchdog, will monitor the line using ATM OAM Loopback requests, every 10 seconds. If 4 consecutive requests are not responded to, the ADSL line will be re-trained. If the remote side doesn't support ATM OAM  loopback protocol, the Watchdog will automatically turn off

    Leave the rest of the options DEFAULT

  1. Protocol Section: 

TTY
    Specify TTY protocol,  no other options

  1. Interface Section

  2. Specify interface name.
    (Leave it default)

  3. Operation Mode: TTY (no other option)

  4. Minor Number
    This number binds the ADSL driver to /dev/ttyWP# interface. Where # = Minor number. 
    Therefore if Minor Number=0, this card would be bound to /dev/ttyWP0.

  5. End of configuration, exit and save

  6. Start wanpipe:  

wanrouter start 

Check /var/log/messages.
...
w1g1: TTY Driver Init: Major 240, Minor Range 0-32
w1g1: TTY Sync Dev Minor 0 : /dev/ttyWP0   
...
or you might see the following depending on kernel used: 
---
w1g1: TTY Driver Init: Major 240, Minor Range 0-32
w1g1: TTY Sync Dev Minor 0 : /dev/ttyWP/0
---
Now the driver is ready for pppd connection.

  1. Start PPPD based on configuration below:

pppd call isp_wanpipe1 <enter>
pppd call isp_wanpipe2 <enter>
...
For all wanpipe devices configured.

 

PPPD Configuration

  1. Three files MUST be created for each Wanpipe device:

- /dev/ttyWPX             :X is TTY_MINOR number.
- /etc/ppp/options         
- /etc/ppp/peers/isp_wanpipeX     :X is a wanpipe device number (1-16)

  1. Device /dev/ttyWP(0,1,2..)

To interface a PPPD daemon to the WANPIPE TTY driver a 
/dev/ttyWPX X={0,1,3...) device must be created.
eg: 
mknod -m 666 /dev/ttyWP0 c 240 0
mknod -m 666 /dev/ttyWP1 c 240 1
mknod -m 666 /dev/ttyWP2 c 240 2 
...
Note: 240 is the Major Number and 0,1,2... are the Minor Numbers

  1. File /etc/ppp/options

-------CUT HERE ----------------------
persist            #If connection goes down try to connect again
defaultroute   #This interface will set default route
asyncmap 0
sync                #Use Synchronous PPP 
lcp-echo-interval 5
lcp-echo-failure 12

#Following options disable compression.
#Lot of Telco equipment doesnt support it
nobsdcomp
nodeflate
nopcomp
novj
novjccomp
noaccomp -am

#silent          #On some CISCO routers we must be in silent mode
nodetach     #DEBUG Should be commented out in production
debug          #Should be commented out in production
kdebug 2      #Should be commented out in production
-------CUT HERE ----------------------

 

  1. File /etc/ppp/peers/isp_wanpipeX (X=1 to 16)

-------CUT HERE----------------------
ttyWP0          #Bind to WANPIPE device wanpipe1

#If IP address is commented out PPPD will attempt to
#get the IP address dynamically. 
#Some PPP servers only negotiate single IP p-to-p address
#in such cases one must specify a their own Local:PtoP IP addresses.
#1.1.1.1:1.1.1.2         

#Set user name and password if running with PAP/CHAP
#Uncomment next two parameters if needed
#user <username>
#password <password>

-------CUT HERE----------------------

  1. For more information on PPPD configuration view 

README.pppd


 

Multilink-PPP (PPPoA) over ADSL using PPPD Daemon

The Multilink-PPP protocol has been designed to combine multiple physical connections into a single logical connection.  Therefore, one can bound number of ADSL lines into one logical connection and achieve greater throughput.

PPPoA TTY Configuration:

The wanpipe configuration is exactly the same as above.

 

PPPD Multilink Configuration

  1. Three files MUST be created for each Wanpipe device:

- /dev/ttyWPX             :X is TTY_MINOR number.
- /etc/ppp/options         
- /etc/ppp/peers/isp_wanpipeX     :X is a wanpipe device number (1-16)

  1. Device /dev/ttyWP(0,1,2..)

To interface a PPPD daemon to the WANPIPE TTY driver a 
/dev/ttyWPX X={0,1,3...) device must be created.
eg: 
mknod -m 666 /dev/ttyWP0 c 240 0
mknod -m 666 /dev/ttyWP1 c 240 1
mknod -m 666 /dev/ttyWP2 c 240 2 
...
Note: 240 is the Major Number and 0,1,2... are the Minor Numbers

  1. File /etc/ppp/options

-------CUT HERE ----------------------
persist            #If connection goes down try to connect again
defaultroute   #This interface will set default route
asyncmap 0
sync                #Use Synchronous PPP 

lcp-echo-interval 1
lcp-echo-failure 3
 
#Following options disable compression.
#Lot of Telco equipment doesnt support it
nobsdcomp
nodeflate
nopcomp
novj
novjccomp
noaccomp -am

multilink       #Enable Multilink

#silent          #On some CISCO routers we must be in silent mode
#nodetach     #DEBUG Should be commented out in production
#debug          #Should be commented out in production
#kdebug 2      #Should be commented out in production
-------CUT HERE ----------------------

 

  1. File /etc/ppp/peers/isp_wanpipeX (X=1 to 16)

-------CUT HERE----------------------

ttyWP0          #Bind to WANPIPE device wanpipe1

#If IP address is commented out PPPD will attempt to
#get the IP address dynamically. 
#Some PPP servers only negotiate single IP p-to-p address
#in such cases one must specify a their own Local:PtoP IP addresses.
#1.1.1.1:1.1.1.2       

#MULTILINK NOTE: 
#Each peer interface must have same IP configuration

#Set user name and password if running with PAP/CHAP
#Uncomment next two parameters if needed
#user <username>
#password <password>

-------CUT HERE----------------------

  1. For more information on PPPD configuration view 

README.pppd

  1. Start PPPD based on configuration above:

pppd call isp_wanpipe1 <enter>
pppd call isp_wanpipe2 <enter>
...
For all wanpipe devices configured.
Where isp_wanpipe1 is the master device that contains IP information, and the rest of wanpipe devices have "noip" config options in peers/isp_wanpipeX filex.


PPPoA over ADSL using Wanpipe PPP Stack

As the name implies PPPoA protocol: PPP protocol running directly over ATM protocol over ADSL physical layer. 

In this scenario PPP protocol will be supported by wanpipe drivers SyncPPP protocol, thus Wanpipe drivers must only be configured for SyncPPP over ATM protocol.  This configuration is easier than the PPPD however, in some circumstances SyncPPP protocol might not support ALL Authentication/Protocol features of PPPD Daemon.  In such circumstances PPPD PPPoA configuration is needed.

Note: Dynamic IP Broken in kernels 2.6.17 and above.
New kernels do not allow changing of the ip address internally from the kernel. Due to this reason the Wanpipe PPP stack cannot support dynamic ip mode.  We strongly suggest that your use the PPPD/TTY implementation of PPPoA as described above.

PPPoA Configuration:

Run: /usr/sbin/wancfg

  1. Create new device

  2. Select wanpipe1 (or next available device)

  3. Hardware Section: Select S518 card from hardware probe

  4. Select Encapsulation Mode (ATM):
    PPP VC over ATM: (PPPoA)

  5. ATM Auto Configuration Option
    Default set to NO.  Use the VPI/VCI info from your ISP spec

  6. VCI 
    Specify VCI number based on your ISP spec

  7. VPI
    Specify VPI number based on your ISP spec

  8. ADSL Watchdog
    Adsl watchdog, will monitor the line using ATM OAM Loopback requests, every 10 seconds. If 4 consecutive requests are not responded to, the ADSL line will be re-trained. If the remote side doesn't support ATM OAM  loopback protocol, the Watchdog will automatically turn off

    Leave the rest of the options DEFAULT

  1. Protocol Section

    Specify PPP over ADSL protocol,  no other options

  1. Interface Section

  2. Specify interface name.
    (Leave it default)

  3. Operation Mode:
    WANPIPE: This interface will be used by IP 
                     layer, thus IP information is required.

  4. PAP:    
    Enable PPP PAP authentication as per ISP config

  5. CHAP:    
    Enable PPP CHAP authenticaiton as per ISP config

  6. USERID: 
    User id used for PPP authentication as per ISP config

  7. PASSWD: 
    User password used for PPP auth.   as per ISP config

  8. DYN_INTR_CFG: Enable dynamic IP addressing  
    If enabled set all IP addresses to 0.0.0.0  

  9. IP Address Setup:
    Specify your telco supplied IP addresses. 
    Set IP addresses to 0.0.0.0 if DYN_INTR_CFG option has been enabled.  This way PPP will obtain IP  address from ISP.

  10. End of configuration, exit and save


Decoded Sample ADSL Config File

A wanpipe configuration file is located in /etc/wanpipe directory.

Location: /etc/wanpipe
Name: wanpipe1.conf   (Where number is associated device id)

 

-----CUT HERE------
#================================================
# WANPIPE1 Configuration File
#================================================
#
# Date: Wed Oct 12 10:48:34 EDT 2005
#
# Note: This file was generated automatically
#       by /usr/sbin/wancfg program.
#
#       If you want to edit this file, it is
#       recommended that you use wancfg program
#       to do so.
#================================================
# Sangoma Technologies Inc.
#================================================

[devices]
wanpipe1 = WAN_ADSL, Comment    #WAN_ADSL indicates S518 ADSL card

[interfaces]

#-------- DRIVER INTERFACE DEFINITIONS --------------------------------

w1ad = wanpipe1, , PPPoE, Comment    #PPPoE : Configure interface as Ethernet
                                        #        so one can run PPPoE protocol over
                                        #        it. (Roraing Penguin PPPoE)
                    

[wanpipe1]

CARD_TYPE     = S518    #S518: Same for all ADSL cards must
                        #This value must be hardcoded to S518 for all
                        #ADSL cards.

AUTO_PCISLOT     = YES    #Auto detect PCI/BUS info for this card type
                        #NO - disable this option
                        #YES- enable this option
                        #     if enabled bottom two options 
            #     PCISLOT and PCIBUS will not be used. 
                        #     Therefore one can set the to arbitrary value 
                        #     or remove them all together.

PCISLOT     = 2     #PCI SLOT Number: 
                        #Valid values = any number
    
PCIBUS      = 2     #PCI BUS Number:
            #Valid values = any number

 

ENCAPMODE    = ETH_LLC_OA    #ATM Encapsulation Mode
                    #ETH_LLC_OA: Bridged Ethernet over ATM
                                #            ATM will expect incoming and outgoing
                                #            ethernet protocol frames.
                                #            LLC ATM headers. 
                #ETH_VC_OA : Bridged Ethernet over ATM
                #            No ATM headers.
                #IP_LLC_OA : Classical IP over ATM
                                #            LLC ATM headers   
                #IP_VC_OA  : IP over ATM
                                #            No ATM headers
                #PPP_LLC_OA:
                #PPP_VC_OA :
ATM_AUTOCFG    = NO    #Attempt to autodetect VPI/VCI numbers
                        #Default NO.
                
VCI    = 35        #VCI Value
VPI    = 0        #VPI Value

ADSL_WATCHDOG    = YES    #Use ATM PING to test the line status
                        #If ATM PING failes the line will be restarted 

#-------------ADSL INTERNAL VARIALBES ------------------

VERBOSE    = 1                #ADSL internal variable set to 1
                    #No other options

RXBUFFERCOUNT    = 50            #Rx buffer count
                    #No other options

TXBUFFERCOUNT    = 50            #Tx buffer count
                    #No other optiosn

ADSLSTANDARD    = ADSL_MULTIMODE    #ADSL Standard
                    #ADSL_MULTIMODE : (Default)
                    #          Automatically detect ADSL standard
                    #          We never needed to change this option
                    #ADSL_T1_413      
                    #ADSL_G_LITE
                    #ADSL_G_DMT
                    #ADSL_ALCATEL_1_4
                    #ADSL_ADI
                    #ADSL_ALCATEL
                    #ADSL_T1_413_AUTO

ADSLTRELLIS    = ADSL_TRELLIS_ENABLE    #Trellis Enable/Disable
                    #ADSL_TRELLIS_ENABLE : (Default)
                    #               We never needed to change this option
                    #ADSL_TRELLIS_DISABLE

 
ADSLTXPOWERATTEN    = 0        #ADSL Tx Power Attenuation
                                        #
                    #*** This a valuable variable and it also works in 
                                        #    conjuction with ADSLCODINGGAIN
                    #
                    #Integer Value 0 to 6 
                    # 0 (Deafult)
                    # 3 or 6 (*MAGIC: Found that it helps if the line is noisy
                    #                 and ADSL is constantly retraining)

 

ADSLCODINGGAIN    = ADSL_AUTO_CODING_GAIN #ADSL Coding Gain
                    #
                    #*** This a valuable variable and it also works well in
                    #    conjuction with ADSLTXPOWERATTEN
                    #
                    #ADSL_AUTO_CODING_GAIN : (Default)
                    #
                    #ADSL_0DB_CODING_GAIN
                    #ADSL_1DB_CODING_GAIN
                    #ADSL_2DB_CODING_GAIN
                    #ADSL_3DB_CODING_GAIN (MAGIC: Found that helps in conjucture with
                                        #                             ADSLTXPOWERATTEN=3)
                    #ADSL_4DB_CODING_GAIN
                    #ADSL_5DB_CODING_GAIN
                    #ADSL_6DB_CODING_GAIN
                    #ADSL_7DB_CODING_GAIN
                    

ADSLMAXBITSPERBIN    = 0xE        #Maximum Bits per Bin
                    #Valid Values 0x01-0xF
                    #
                    #Determines the overall baud rate of theline.
                    #
                    #Theoretically it can help on very noisy lines
                                        #by lowering the value and using less frequency
                    #ranges to tx/rx data.

#The Start/End Tx/Rx Freqeuncy Ranges (Bins)
#Can theoretically lower the bandwidth
#on noisy lines, in order to avoid higher
#unstable frequency ranges.
#However, this never worked in practice
#thus our suggestion is to not try to set
#these values.

ADSLTXSTARTBIN    = 0x6            #Start Tx Frequency Range (Bin)
                    #Do not adjust

ADSLTXENDBIN    = 0x1F            #End Tx Frequency Range (Bin)
                    #Do not adjust
    
ADSLRXSTARTBIN    = 0x20            #Start Rx Frequency Range (Bin)
                    #Do not adjust

ADSLRXENDBIN    = 0xFF            #End of Rx Frequency Range (Bin)
                    #Do not adjust

 

ADSLRXBINADJUST    = ADSL_RX_BIN_DISABLE    #Disable Rx Frequency Ranges
                    #Do not ajust

ADSLFRAMINGSTRUCT    = ADSL_FRAMING_TYPE_3    #ADSL Framing
                        #ADSL_FRAMING_TYPE_0
                        #ADSL_FRAMING_TYPE_1
                        #ADSL_FRAMING_TYPE_2
                        #ADSL_FRAMING_TYPE_3 (Default)
                        #Do not adjust

ADSLEXPANDEDEXCHANGE    = ADSL_EXPANDED_EXCHANGE #ADSL Exchange
                         #ADSL_EXPANDED_EXCHANGE (Default)
                         #ADSL_SHORT_EXCHANGE
                         #Do not adjust

ADSLCLOCKTYPE    = ADSL_CLOCK_CRYSTAL    #ADSL Clocking
                    #ADSL_CLOCK_CRYSTAL : Slave Clocking (Default)
                    #ADSL_CLOCK_OSCILLATOR : Master Clock 
                    #Do not adjust

ADSLMAXDOWNRATE    = 8192        #ADSL Max Baudrate
                #This value WILL limit the negotiaged baudrate
                #Value is in Kilobits per second
                #
                #So by setting the value to 1000 the highest
                                #rx baud rate will by 1Mbps.
                #
                #Theoretically it can help on very noisy lines
                                #by lowering the value and using less frequency
                #ranges to tx/rx data.
                #
                #Doesn't work in reality :)
                #Do not adjust

 

MTU         = 1500    #Global MTU Value
                          #Note: This value is overwritten by the 
                          #      interface MTU value below if it exists.
              #DEFAULT: 1500
                          #Values: any number [ suggested 128 - 4086 ]

UDPPORT     = 9000    #OBSELETE option 
                          #Old wanpipemon used sockets to connect to
                          #device driver.

TTL        = 255     #OBSELETE option
              #Old wanpipemon used sockets to connect to
                          #device driver.

IGNORE_FRONT_END = NO      #Ignore Fronte End State
              #NOT USED BY ADSL

 

[w1ad]

---- CUT HERE -----

 


Protocols supported on Windows

Protocols supported on Windows by Sangoma Windows driver only:

  • Bridged Ethernet over ATM (RFC 1483)

  • Classical IP over ATM (RFC 1577)

Both protocols support LLC and VC.

 

Return to Documentation Home I Return to Sangoma Support