The DSLAM is the Digital Subscriber Line Access Multiplexer or Digitial Subscriber Line Access Modem. The Multiplexer part refers to multiplexing between multiple tenants in an actual network. Practicaly the DSLAM is a Master Modem which controls the actual modem / client.
Allnet ALL126AM2
Specs
- 100MBit up / 100MBit down VDSL2
- 1 line
- 4 Port 10/100MBit ethernet
- 1 Phone / POTS Port
- Internal Splitter
- RS232 / Console Port with full root access
Configuration
All necessary settings can be performed from the VDSL2 -> Profile Config
page.
Scripts
The initialization of most components is performed via shell scripts. Thus the devices allow a vast amount of customization or remote control.
# cat /nv/vdsl2_selfstart.sh
#*****************************
#** Script to autostart CPE **
#** 03 March 2006 **
#*****************************
Profile="17A"
lock="x"
if [ $# != 1 ]; then
echo ---------------------------------------------------
echo - run with default values
echo ---------------------------------------------------
else
if [ $1 = "l" ] ; then
lock=$1
else
Profile=$1
fi
fi
if [ -r /etc/rc.conf ]; then
. /etc/rc.conf
fi
CURRENT_C0_D_MAX=`grep ^VDSL2_Channel_0_DOWN_MAX= /etc/rc.conf | cut -f2 -d'"' | cut -f3 -d" "`
CURRENT_C0_D_MIN=`grep ^VDSL2_Channel_0_DOWN_MIN= /etc/rc.conf | cut -f2 -d'"' | cut -f3 -d" "`
CURRENT_C0_U_MAX=`grep ^VDSL2_Channel_0_UP_MAX= /etc/rc.conf | cut -f2 -d'"' | cut -f3 -d" "`
CURRENT_C0_U_MIN=`grep ^VDSL2_Channel_0_UP_MIN= /etc/rc.conf | cut -f2 -d'"' | cut -f3 -d" "`
CURRENT_C0_U_INT=`grep ^VDSL2_Channel_0_UP_MaxIntDelay /etc/rc.conf | cut -f2 -d'"' | cut -f3 -d" "`
CURRENT_C0_D_INT=`grep ^VDSL2_Channel_0_DOWN_MaxIntDelay /etc/rc.conf | cut -f2 -d'"' | cut -f3 -d" "`
CURRENT_VDSL2_ProfileList=`grep ^VDSL2_ProfileList /etc/rc.conf | cut -f2 -d'"' | cut -f3 -d" "`
CURRENT_VDSL2_BandPlanList=`grep ^VDSL2_BandPlanList /etc/rc.conf | cut -f2 -d'"' | cut -f3 -d" "`
CURRENT_VDSL2_FilterList=`grep ^VDSL2_FilterList /etc/rc.conf | cut -f2 -d'"' | cut -f3 -d" "`
CURRENT_VDSL2_LineModeList=`grep ^VDSL2_LineModeList /etc/rc.conf | cut -f2 -d'"' | cut -f3 -d" "`
#CURRENT_VDSL2_Tone=`grep ^VDSL2_LineModeList /etc/rc.conf | cut -f2 -d'"' | cut -f3 -d" "`
CURRENT_VDSL2_U_SNRM=`grep ^VDSL2_Channel_0_UP_SNRM /etc/rc.conf | cut -f2 -d'"' | cut -f3 -d" "`
CURRENT_VDSL2_U_MAX_SNRM=`grep ^VDSL2_Channel_0_UP_MAX_SNRM /etc/rc.conf | cut -f2 -d'"' | cut -f3 -d" "`
CURRENT_VDSL2_U_MIN_SNRM=`grep ^VDSL2_Channel_0_UP_MIN_SNRM /etc/rc.conf | cut -f2 -d'"' | cut -f3 -d" "`
CURRENT_VDSL2_D_SNRM=`grep ^VDSL2_Channel_0_DOWN_SNRM /etc/rc.conf | cut -f2 -d'"' | cut -f3 -d" "`
CURRENT_VDSL2_D_MAX_SNRM=`grep ^VDSL2_Channel_0_DOWN_MAX_SNRM /etc/rc.conf | cut -f2 -d'"' | cut -f3 -d" "`
CURRENT_VDSL2_D_MIN_SNRM=`grep ^VDSL2_Channel_0_DOWN_MIN_SNRM /etc/rc.conf | cut -f2 -d'"' | cut -f3 -d" "`
# sleep 5
echo "CURRENT_VDSL2_ProfileList = $CURRENT_VDSL2_ProfileList"
echo "CURRENT_VDSL2_BandPlanList = $CURRENT_VDSL2_BandPlanList"
echo "CURRENT_VDSL2_FilterList = $CURRENT_VDSL2_FilterList"
echo "CURRENT_VDSL2_LineModeList = $CURRENT_VDSL2_LineModeList"
echo "CURRENT_VDSL2_Tone = $CURRENT_VDSL2_Tone"
echo "CURRENT_C0_D_MAX = ${CURRENT_C0_D_MAX}"
echo "CURRENT_C0_D_MIN = ${CURRENT_C0_D_MIN}"
echo "CURRENT_C0_U_MAX = ${CURRENT_C0_U_MAX}"
echo "CURRENT_C0_U_MIN = ${CURRENT_C0_U_MIN}"
echo "CURRENT_C0_U_INT = ${CURRENT_C0_U_INT}"
echo "CURRENT_C0_D_INT = ${CURRENT_C0_D_INT}"
echo "CURRENT_VDSL2_U_SNRM = ${CURRENT_VDSL2_U_SNRM}"
echo "CURRENT_VDSL2_U_MAX_SNRM = ${CURRENT_VDSL2_U_MAX_SNRM}"
echo "CURRENT_VDSL2_U_MIN_SNRM = ${CURRENT_VDSL2_U_MIN_SNRM}"
echo "CURRENT_VDSL2_D_SNRM = ${CURRENT_VDSL2_D_SNRM}"
echo "CURRENT_VDSL2_D_MAX_SNRM = ${CURRENT_VDSL2_D_MAX_SNRM}"
echo "CURRENT_VDSL2_D_MIN_SNRM = ${CURRENT_VDSL2_D_MIN_SNRM}"
# sleep 5
case ${CURRENT_VDSL2_ProfileList} in
0)
Profile="8A"
echo "$Profile"
;;
1)
Profile="8B"
echo "$Profile"
;;
2)
Profile="8C"
echo "$Profile"
;;
3)
Profile="8D"
echo "$Profile"
;;
4)
Profile="12A"
echo "$Profile"
;;
5)
Profile="12B"
echo "$Profile"
;;
6)
Profile="17A"
echo "$Profile"
;;
7)
Profile="30A"
echo "$Profile"
;;
8)
Profile="17B"
echo "$Profile"
;;
esac
cd /ifx/vdsl2
if [ $lock = "l" ] ; then
echo "... Disable Autorestart ..."
./dsl_pipe dms 0 0549 0 1 0
./dsl_pipe dms 0 0649 0 1 0
else
# configure System Interface MII, EFM-TC
./dsl_pipe sics 0 1 2
# channel config set int delay 0 and data rate 64k - 140M
# ./dsl_pipe g997ccs 0 0 0 64000 140000000 10 0 2
# ./dsl_pipe g997ccs 0 0 1 64000 140000000 10 0 2
./dsl_pipe g997ccs 0 0 0 ${CURRENT_C0_U_MIN}000 ${CURRENT_C0_U_MAX}000 ${CURRENT_C0_U_INT} 0 2
./dsl_pipe g997ccs 0 0 1 ${CURRENT_C0_D_MIN}000 ${CURRENT_C0_D_MAX}000 ${CURRENT_C0_D_INT} 0 2
if [ $CURRENT_VDSL2_LineModeList = 0 ]; then
CURRENT_VDSL2_Tone="1"
elif [ $CURRENT_VDSL2_LineModeList = 1 ]; then
CURRENT_VDSL2_Tone="2"
elif [ $CURRENT_VDSL2_LineModeList = 2 ]; then
CURRENT_VDSL2_Tone="4"
elif [ $CURRENT_VDSL2_LineModeList = 3 ]; then
CURRENT_VDSL2_Tone="8"
elif [ $CURRENT_VDSL2_LineModeList = 4 ]; then
CURRENT_VDSL2_Tone="10"
elif [ $CURRENT_VDSL2_LineModeList = 5 ]; then
CURRENT_VDSL2_Tone="20"
elif [ $CURRENT_VDSL2_LineModeList = 6 ]; then
CURRENT_VDSL2_Tone="40"
elif [ $CURRENT_VDSL2_LineModeList = 7 ]; then
CURRENT_VDSL2_Tone="80"
elif [ $CURRENT_VDSL2_LineModeList = 8 ]; then
CURRENT_VDSL2_Tone="100"
fi
echo "LineModeList = $CURRENT_VDSL2_LineModeList"
echo "CURRENT_VDSL2_Tone = $CURRENT_VDSL2_Tone"
if [ $CURRENT_VDSL2_LineModeList = 2 ]; then
./dsl_pipe lllcs 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 4 ${CURRENT_VDSL2_FilterList} -1 -1 -1 -1 -1 2
else
./dsl_pipe lllcs 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 ${CURRENT_VDSL2_Tone} ${CURRENT_VDSL2_FilterList} -1 -1 -1 -1 -1 0
fi
# echo bandplan 30a,17a,12a or 8a
echo bandplan "$Profile"
./dsl_pipe bpcs 0 ${CURRENT_VDSL2_BandPlanList} ${CURRENT_VDSL2_ProfileList}
# sleep 1
# echo "g997nmcg"
./dsl_pipe g997nmcg 0 0
./dsl_pipe g997nmcg 0 1
# sleep 1
# echo "g997nmcs"
./dsl_pipe g997nmcs 0 0 ${CURRENT_VDSL2_U_SNRM} ${CURRENT_VDSL2_U_MAX_SNRM} ${CURRENT_VDSL2_U_MIN_SNRM}
./dsl_pipe g997nmcs 0 1 ${CURRENT_VDSL2_D_SNRM} ${CURRENT_VDSL2_D_MAX_SNRM} ${CURRENT_VDSL2_D_MIN_SNRM}
# activate line
./dsl_pipe la 0
fi
sleep 5
# disable the system interface for the first time until showtime is reached
./dsl_pipe dms 0 0xA173 0 2 000E2040 00000037
echo "done"
echo
# cat /nv/vdsl2_start.sh
#! /bin/sh
#
# CPE Ref Board: Start of the VDSL2 applications
# Call this script manually or via startup scripts.
#
# For setup see
# /etc/vdsl2.conf --> /nv/vdsl2.conf (flash file)
#
echo Start VDSL2 CPE Ref environment
#
# Get the VDSL2 Board specific configuration.
if [ -r /etc/vdsl2.conf ]; then
. /etc/vdsl2.conf
else
VDSL2_START_APP_WINHOST="0"
VDSL2_START_APP_CPE_RB="1"
VDSL2_START_APP_DSL_DAEMON="0"
fi
if [ ${EXEC_VDSL2_POST_INIT} != 1 ];then
echo "skip VDSL2 post init"
exit
fi
if [ ${VDSL2_FW_DOWNLOAD} != 0 ];then
echo "Start VINAX firmeware download"
./vinax_drv_test -F
fi
if [ ${VDSL2_START_APP_WINHOST} != 0 ];then
echo "Start VDSL2 WinHost Application"
./winhost_vdsl2_dfe &
fi
if [ ${VDSL2_START_APP_CPE_RB} != 0 ];then
echo "Start VDSL2 CPE Ref Application"
./vdsl2_cpe_rb &
fi
if [ ${VDSL2_START_APP_DSL_DAEMON} != 0 ];then
echo "Start VDSL2 DSL DAEMON Application"
./dsl_daemon &
sleep 3
fi
if [ ${VDSL2_DSL_DAEMON_AUTOSTART} != 0 ];then
echo "Autostarting the line: param " ${VDSL2_DSL_DAEMON_AUTOSTART}
sleep 2
cd /nv/
./vdsl2_selfstart.sh ${VDSL2_DSL_DAEMON_AUTOSTART}
fi
# cat /etc/vdsl2.conf
# VDSL2 configuration on ADM5120 CPE Ref Board
#
# VDLS2 directory
VDSL2_DIR="/ifx/vdsl2"
#
# used driver names
VDSL2_BOARD_DRV_NAME=drv_adm5120_rb
VDSL2_MEI_DRV_NAME=drv_vinax
#
# VDSL2 firmware file names
VDSL2_FW_NAME_CO=vco_hw.bin
VDSL2_FW_NAME_CPE=vcpe_hw.bin
#
# Update FW while startup
VDSL2_FW_UPDATE="0"
#
# TFTP server IP for download
# if not set the default_router IP (ISP Gateway Address) will be used
VDSL2_TFTP_SERVER_IP=""
VDSL2_REMOTE_FW_NAME=""
#
# Get Boot Parameter for VDSL2 CO or CPE configuration
BOOT_PARAM_CO_CPE_OFFSET="0x1F0"
#
# initialization stuff before net-init
EXEC_VDSL2_PRE_INIT="1"
#
# initialization stuff after net-init
EXEC_VDSL2_POST_INIT="1"
#
# Used Driver Debug Level
VDSL2_DRV_DBG_LEVEL="3"
#
# start VINAX FW download
VDSL2_FW_DOWNLOAD="1"
#
# start winhost
VDSL2_START_APP_WINHOST="0"
#
# start vdsl2_cpe_rb
VDSL2_START_APP_CPE_RB="0"
#
# start dsl_daemon
VDSL2_START_APP_DSL_DAEMON="1"
#
# autostart feature of the line
# specify 0, 17A, 30A or whatever is known by selfstart.sh
VDSL2_DSL_DAEMON_AUTOSTART="30A"
Internals
Versions
Firmware Version
While not having found the firmware online, the Allnet customer support is very very quick in sending a temporary DL link.
Chipset Version
PCB
Top | Bottom |
---|---|
Infineon ADM5120P
- Infineon ADM5120P AB1104 HALQ000591X02SL
- SoC with networking capabilities
- 208-pin LQFP
- 175MHZ / 227 MIPS 4Kc CPU
- 5 Port 10/100MBit PHY
Lantiq PSB 80600 E
- Lantiq PSB 80600 E V1.1 VINAX-D ZA022056M04 H1026
- VDSL Bridge Modem?
A short note on Lantiq: Used to belong to Infineon, sold to Intel in 2015. Datasheets are rather rather
Lantiq PSB 80170 E
- Lantiq PSB 80170 E V1.1 VINAX-A M5106304.01 H1044
- AFE/LD
- ADSL Front End / Line Driver
ALL126AM2 vs ALL126AS2
I was recently asked whether the ALL126AS2 and ALL126AM2 might be using the same hardware, just with different firmware settings. A potential hint to this comes from the TFTP flashing guide:
Nun begeben Sie sich zu Punkt Nr. „4“ -> Set Boot Parameters. Alles was gefragt wird, mit „Enter“ bestätigen. Achten Sie bitte beim letzten Punkt darauf, dass Sie das Modem als „CPE (0)“ (Slave)(CO (1) beim Master) einrichten. Zu guter Letzt empfehle ich hiernach einen Reset auf FactoryDefault zu vollziehen.
Saying that one has to select a boot parameter and carefully switch between CPE/Slave and CO/Master mode. I do currently not have the AS version, but I will add some information, soon.
# cat /nv/vdsl2_hw_type.sh
#! /bin/sh
#
# Get the VDSL2 Board specific configuration.
if [ -r /etc/vdsl2.conf ]; then
. /etc/vdsl2.conf
fi
#
# Check if the board driver is loaded
BOARD_DRV_LOADED=`lsmod | grep ${VDSL2_BOARD_DRV_NAME} | cut -b1-14`
case ${BOARD_DRV_LOADED} in
drv_adm5120_rb) echo "board driver <${VDSL2_BOARD_DRV_NAME}> loaded"
;;
*) echo "ERROR: no board driver <${VDSL2_BOARD_DRV_NAME}> - can not check HW type"
exit 1 ;;
esac
#
# get the current HW type (CO or CPE) from the boot parameters
# board driver must be installed before
CURR_HW_TYPE=`./test_adm5120_rb -m | grep 'CPE_CO_Mode=' | cut -d= -f2`
echo "current HW type is ${CURR_HW_TYPE}"
# unpack firmware binary
if [ -e ./fw_packed.bin.gz ]; then
if [ -e /tmp ]; then
if [ ! -e /tmp/fw ]; then
mkdir /tmp/fw
fi
case ${CURR_HW_TYPE} in
CPE_MODE) echo "+++ unpack CPE firmware +++"
gunzip -c ./fw_packed.bin.gz > /tmp/fw/vcpe_hw.bin
ln -sf /tmp/fw/vcpe_hw.bin ./${VDSL2_FW_NAME_CPE}
;;
CO_MODE) echo "+++ unpack CO firmware +++"
gunzip -c ./fw_packed.bin.gz > /tmp/fw/vco_hw.bin
ln -sf /tmp/fw/vco_hw.bin ./${VDSL2_FW_NAME_CO}
;;
*) echo "ERROR: missing or invalid HW configuration"
exit 1 ;;
esac
else
echo
echo "!!! WARNING tmpfs must be enabled !!!"
echo
fi
fi
# check HW type
case ${CURR_HW_TYPE} in
CPE_MODE) echo "+++ setup CPE firmware ${VDSL2_FW_NAME_CPE} +++"
if [ -e ./${VDSL2_FW_NAME_CPE} ]; then
ln -sf ./${VDSL2_FW_NAME_CPE} ./firmware.bin
ln -sf ./${VDSL2_FW_NAME_CPE} ./firmware0.bin
ln -sf ./${VDSL2_FW_NAME_CPE} ./firmware1.bin
else
echo
echo "!!! WARNING firmware file ${VDSL2_FW_NAME_CPE} does not exits !!!"
echo
fi
;;
CO_MODE) echo "+++ setup CO firmware ${VDSL2_FW_NAME_CO} +++"
if [ -e ./${VDSL2_FW_NAME_CO} ]; then
ln -sf ./${VDSL2_FW_NAME_CO} ./firmware.bin
ln -sf ./${VDSL2_FW_NAME_CO} ./firmware0.bin
ln -sf ./${VDSL2_FW_NAME_CO} ./firmware1.bin
else
echo
echo "!!! WARNING firmware file ${VDSL2_FW_NAME_CO} does not exits !!!"
echo
fi
;;
*) echo "ERROR: missing or invalid HW configuration"
exit 1 ;;
esac
Refrences
I have a copy of each of these documents stored aways, just ask if a link should be down.