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
Create new device
Select wanpipe1 (or next available device)
Hardware Section: Select S518 card from hardware probe
Select Encapsulation Mode (ATM):
Bridged Ethernet LLC over ATM: (PPPoE)ATM Auto Configuration Option
Default set to NO. Use the VPI/VCI info from your ISP specVCI
Specify VCI number based on your ISP specVPI
Specify VPI number based on your ISP specADSL 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
Protocol Section
Specify ADSL protocol, no other options
Interface Section
Specify interface name.
(Leave it default)Operation Mode: PPPoE
PPPoE: This interface will be used by the PPPoE
daemon, thus no ip information is needed.Leave the rest of the option DEFAULT
End of configuration, exit and save
Download Roaring Penguin PPPoE Stack :
Start Wanpipe:
wanrouter start
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
Create new device
Select wanpipe1 (or next available device)
Hardware Section: Select S518 card from hardware probe
Select Encapsulation Mode (ATM):
PPP VC over ATM: (PPPoA)ATM Auto Configuration Option
Default set to NO. Use the VPI/VCI info from your ISP specVCI
Specify VCI number based on your ISP specVPI
Specify VPI number based on your ISP specADSL 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
Protocol Section:
TTY
Specify TTY protocol, no other options
Interface Section
Specify interface name.
(Leave it default)Operation Mode: TTY (no other option)
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.
End of configuration, exit and save
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.
Start PPPD based on configuration below:
pppd call isp_wanpipe1 <enter>
pppd call isp_wanpipe2 <enter>
...
For all wanpipe devices configured.
PPPD Configuration
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)
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
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 ----------------------
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----------------------
For more information on PPPD configuration view
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
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)
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
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 PPPlcp-echo-interval 1
lcp-echo-failure 3
#Following options disable compression.
#Lot of Telco equipment doesnt support it
nobsdcomp
nodeflate
nopcomp
novj
novjccomp
noaccomp -ammultilink #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 ----------------------
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----------------------
For more information on PPPD configuration view
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
Create new device
Select wanpipe1 (or next available device)
Hardware Section: Select S518 card from hardware probe
Select Encapsulation Mode (ATM):
PPP VC over ATM: (PPPoA)ATM Auto Configuration Option
Default set to NO. Use the VPI/VCI info from your ISP specVCI
Specify VCI number based on your ISP specVPI
Specify VPI number based on your ISP specADSL 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
Protocol Section
Specify PPP over ADSL protocol, no other options
Interface Section
Specify interface name.
(Leave it default)Operation Mode:
WANPIPE: This interface will be used by IP
layer, thus IP information is required.PAP:
Enable PPP PAP authentication as per ISP configCHAP:
Enable PPP CHAP authenticaiton as per ISP configUSERID:
User id used for PPP authentication as per ISP configPASSWD:
User password used for PPP auth. as per ISP configDYN_INTR_CFG: Enable dynamic IP addressing
If enabled set all IP addresses to 0.0.0.0IP 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.
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.