Differences

This shows you the differences between two versions of the page.

toh:tp-link:td-w8970 [2013/11/05 20:43]
fld OpenWrt bootlog
toh:tp-link:td-w8970 [2014/11/02 10:48] (current)
malvineous Add some installation instructions
Line 1: Line 1:
====== TP-Link TD-W8970 ====== ====== TP-Link TD-W8970 ======
300Mbps Wireless N VDSL2 Modem Router, ''[[doc/hardware/soc/soc.lantiq|Lantiq]]''-target, VDSL2-support is WIP. 300Mbps Wireless N VDSL2 Modem Router, ''[[doc/hardware/soc/soc.lantiq|Lantiq]]''-target, VDSL2-support is WIP.
 +
 +Firstly - **DO NOT** upgrade to the 28.08.2013 (or newer) firmware on TP-Link website. It has modified u-boot, and applies a **NEW UNKNOWN** header - first byte is 0x03. We don't know how is it working. It seems to be a rsa signed firmware upgrade. Flashing
 +over serial & bootloader works.
===== Supported Versions ===== ===== Supported Versions =====
Line 7: Line 10:
  * OEM source code available at: [[http://www.tp-link.com/resources/gpl/GPL_TD-W8970.tar.gz|GPL_TD-W8970.tar.gz]]   * OEM source code available at: [[http://www.tp-link.com/resources/gpl/GPL_TD-W8970.tar.gz|GPL_TD-W8970.tar.gz]]
 +  * ADSL/VDSL works
 +  * switch is passing traffic (tagged + untagged)
 +  * wifi doesn't work (regression since r40948) [[https://dev.openwrt.org/ticket/17069|#17069]]
==== Work-in-progress ==== ==== Work-in-progress ====
Line 12: Line 18:
  * [[https://dev.openwrt.org/changeset/37542|r37542 lantiq: add profile for TP-Link TDW8970]]   * [[https://dev.openwrt.org/changeset/37542|r37542 lantiq: add profile for TP-Link TDW8970]]
  * [[https://dev.openwrt.org/changeset/37543|r37543 lantiq: add TP-Link TDW8970 image generation]]   * [[https://dev.openwrt.org/changeset/37543|r37543 lantiq: add TP-Link TDW8970 image generation]]
 +  * [[https://dev.openwrt.org/changeset/37612|r37612 lantiq: setup gphy leds on TPlink TDW8970]] 
 +  * [[https://dev.openwrt.org/changeset/37718|r37718 firmware-utils: add support for TDW8970 to mktplinkfw]] 
 +  * [[https://dev.openwrt.org/changeset/37720|r37720 lantiq: fix TDW8970.dts commandline and partition name]] 
 +  * [[https://dev.openwrt.org/changeset/37727|r37727 lantiq: fix TD-W8970 image generation to work with the new tool]] 
 +  * [[https://dev.openwrt.org/changeset/38029|r38029 lantiq: add a subtarget for the xrx200 SoC family]]
===== Hardware Highlights ===== ===== Hardware Highlights =====
Line 22: Line 32:
===== Installation ===== ===== Installation =====
 +At the time of writing, the only known method of installation involves access to the bootloader, which requires using the serial console.  This in turn requires opening the device to access the contacts on the circuit board.
 +Once a serial console has been established (see below for further details) the following method worked for at least one person:
 +
 +  - Download the openwrt-lantiq-xrx200-TDW8970-uImage-initramfs image from wherever you can find it (the [[http://downloads.openwrt.org/barrier_breaker/14.07/lantiq/xrx200/|official release]] does not supply a uImage with an initramfs, so booting that just gives you an error about a missing root filesystem.)
 +  - Switch on the device and press 't' on the serial console until you get a prompt, then run commands similar to these:
 +    - Set the device's IP if you don't want the default 192.168.1.1: (so you don't have to move your TFTP server onto a different subnet)<code>setenv ipaddr 192.168.1.1</code>
 +    - Set the address of your TFTP server:<code>setenv serverip 192.168.1.2</code>
 +    - Set the board type:<code>setenv bootargs 'board=WD8970'</code>
 +    - Download the image into RAM (*not* flash):<code>tftpboot openwrt-lantiq-xrx200-TDW8970-uImage-initramfs</code>
 +    - Boot the image from RAM:<code>bootm</code>
 +  - If OpenWRT boots successfully, download the [[http://downloads.openwrt.org/barrier_breaker/14.07/lantiq/xrx200/|official release]] sysimage into /tmp
 +  - Flash the newly downloaded sysimage:<code>sysupgrade /tmp/openwrt-lantiq-xrx200-TDW8970-sysupgrade.image</code>The flash is extremely slow on this device (~100kB/sec) so the write takes a long time.
 +  - Find the DSL firmware which is not included in the image and copy it into /lib/firmware/vdsl.bin (this file is referenced in /etc/config/network)
==== Flash layout ==== ==== Flash layout ====
Line 43: Line 66:
| **[[doc:hardware:soc|System-On-Chip]]:**  | [[http://www.lantiq.com/uploads/media//Lantiq_XWAY-VRX268_Product-Brief_03.pdf|XWAY VRX268]] ([[http://wiki.openwrt.org/doc/hardware/soc/soc.lantiq|VR9 Family)]] | | **[[doc:hardware:soc|System-On-Chip]]:**  | [[http://www.lantiq.com/uploads/media//Lantiq_XWAY-VRX268_Product-Brief_03.pdf|XWAY VRX268]] ([[http://wiki.openwrt.org/doc/hardware/soc/soc.lantiq|VR9 Family)]] |
| **[[doc:hardware:cpu|CPU]]/Speed:**        | MIPS34Kc @ 500 MHz | | **[[doc:hardware:cpu|CPU]]/Speed:**        | MIPS34Kc @ 500 MHz |
-| **Flash Chip:**      | [[http://html.alldatasheet.com/html-pdf/313095/EON/EN56Q64-104HIP/61/1/EN56Q64-104HIP.html|cFeon Q64-104HIP]] |+| **Flash Chip:**      | [[http://html.alldatasheet.com/html-pdf/313095/EON/EN56Q64-104HIP/61/1/EN56Q64-104HIP.html|cFeon Q64-104HIP]] other [[https://www.winbond.com/NR/rdonlyres/05A6F2FD-83D2-4748-8394-65909AC2A8E3/0/W25Q64FV.pdf| Winbond 25Q64FVSIG]] |
| **Flash Specs:**    | 8 MiB SPI | | **Flash Specs:**    | 8 MiB SPI |
-| **RAM Chip:**        | [[http://www.skhynix.com/inc/pdfDownload.jsp?path=/datasheet/pdf/dram/consumer_H5PS518(6)2GFRseries(Rev1.5).pdf|Hynix H5PS5162GFR-Y5C]] |+| **RAM Chip:**        | [[http://www.skhynix.com/inc/pdfDownload.jsp?path=/datasheet/pdf/dram/consumer_H5PS518(6)2GFRseries(Rev1.5).pdf|Hynix H5PS5162GFR-Y5C]] other [[http://www.winbond.com/NR/rdonlyres/54848106-3243-4720-A223-18CFB79A9F37/0/W9751G6KB.pdf| Winbond W9751G6KB]] |
| **RAM Specs:**      | 64 MiB DDR2 @ 250 MHz (3-5-5-5) | | **RAM Specs:**      | 64 MiB DDR2 @ 250 MHz (3-5-5-5) |
-| **Wireless:**        | AR9381 2.4 GHz 802.11bgn | +| **Wireless:**        | AR9381 2.4 GHz (3x3) 802.11bgn | 
-| **Switch:**         | 4 x 10/100/1000 BASE-TX Ethernet Interface |+| **Ethernet:**       | 4x 10/100/1000 BASE-TX Ethernet Interface\\ (2x XWAY VR9 GPHY 11G & 2x XWAY PEF7071 via RGMII) | 
 +| **Switch:**          | [[#Switch|Internal configurable]] (Infineon) | 
 +| **xDSL:**            | [[http://www.lantiq.com/uploads/media//Lantiq_XWAY-VRX268_Product-Brief_03.pdf|Lantiq XWAY VRX208]]\\ ADSL1/2/2+ (G.992.1/3/5) Annexes A, B, I, J, M, L,\\ VDSL1 (G.993.1, T1.424, TS 101 270),\\  VDSL2 (G.993.2),\\ ITU-T G 998.2 Bonding,\\ EFM (IEEE 802.3ah)|
| **USB:**            | 2 x USB 2.0 | | **USB:**            | 2 x USB 2.0 |
-| **xDSL:**           | [[http://www.lantiq.com/uploads/media//Lantiq_XWAY-VRX268_Product-Brief_03.pdf|Lantiq XWAY VRX208]] |+| **GPIO Buttons:**   | WPS button, WiFi toggle switch, Reset button | 
 +| **GPIO LEDs:**      | ADSL, Internet, WPS, USB Port 1, USB Port 2 |
| **Power:**          | External 12V 1.5A | | **Power:**          | External 12V 1.5A |
| **Serial:**          | [[#Serial|Yes]] | | **Serial:**          | [[#Serial|Yes]] |
Line 56: Line 82:
==== Photos ==== ==== Photos ====
 +  * **Device**: [[http://wikidevi.com/wiki/TP-LINK_TD-W8970_v1]]
{{:media:toh:tp-link:td-w8970-internal.jpg?400|}} {{:media:toh:tp-link:tdw8970_hardware_labeled.png?400|}} {{:media:toh:tp-link:td-w8970-internal.jpg?400|}} {{:media:toh:tp-link:tdw8970_hardware_labeled.png?400|}}
Line 70: Line 97:
Press **''t''** on the console to interrupt U-Boot autobooting.\\ Press **''t''** on the console to interrupt U-Boot autobooting.\\
Logon through serial by pressing ''Enter'' and using: **admin/1234**. Logon through serial by pressing ''Enter'' and using: **admin/1234**.
 +
 +===== Switch =====
 +The XWAY VRX286 SoC features an internal configurable Infineon Gigabit Ethernet switch that connects all the physical Ethernet ports together.
 +
 +As of yet ([[https://dev.openwrt.org/browser/trunk?rev=38701|trunk: 38701]]) no support for this switch exists on OpenWrt.
 +
 +However a GPL source code exists for the switch under the name "''ifx_ethsw''" for the kernel module and "''switch_utility''" for the user-space configuration tool. The code can be found from links below:
 +  * [[http://gpl.back2roots.org/source/fritzbox/7390_5.50/GPL-release_kernel/linux/arch/mips/include/asm/mach-infineon/switch_api/]]
 +  * [[http://gpl.back2roots.org/source/fritzbox/7390_5.50/GPL-release_kernel/linux/drivers/net/ifxmips_switch_api/]]
 +
 +On the OEM firmware the driver initialization looks like this:
 +    IFX SWITCH API, Version 1.1.7.2
 +    SWAPI: Registered character device [switch_api] with major no [81]
 +    Switch API: PCE MicroCode loaded !!
 +    Init IFX_ETHSW_Switch_API_procModule successfully.
 +
 +And the configuration tool can be found at: ''/usr/sbin/switch_utility''
 +
 +==== switch_utility ====
 +<HTML>
 +<p style="padding: 10px;border:1px solid grey;height:300px;font:10px/14px Georgia, Garamond, Serif;overflow:Auto;background-color:#FFFFFF">
 +<code>~ # switch_utility
 +
 +Switch Utility Version : v1.1.7.1
 +Available commands:
 +        CfgGet
 +        CfgSet
 +        PortCfgGet
 +        PortCfgSet
 +        PortLinkCfgGet
 +        PortLinkCfgSet
 +        PortRedirectGet
 +        PortRedirectSet
 +        MAC_TableEntryRead
 +        MAC_TableEntryAdd
 +        MAC_TableEntryRemove
 +        MAC_TableClear
 +        VLAN_IdCreate
 +        VLAN_IdDelete
 +        VLAN_IdGet
 +        VLAN_PortMemberAdd
 +        VLAN_PortMapTableRead
 +        VLAN_PortMemberRemove
 +        VLAN_PortCfgGet
 +        VLAN_PortCfgSet
 +        VLAN_ReservedAdd
 +        VLAN_ReservedRemove
 +        MulticastRouterPortAdd
 +        MulticastRouterPortRemove
 +        MulticastRouterPortRead
 +        MulticastTableEntryAdd
 +        MulticastTableEntryRemove
 +        MulticastTableEntryRead
 +        MulticastSnoopCfgGet
 +        MulticastSnoopCfgSet
 +        RMON_Clear
 +        RMON_Get
 +        MDIO_DataRead
 +        MDIO_DataWrite
 +        MDIO_CfgGet
 +        MDIO_CfgSet
 +        PortRGMII_ClkCfgGet
 +        PortRGMII_ClkCfgSet
 +        RegisterGet
 +        RegisterSet
 +        CPU_PortExtendCfgGet
 +        CPU_PortExtendCfgSet
 +        CPU_PortCfgGet
 +        CPU_PortCfgSet
 +        MonitorPortGet
 +        MonitorPortSet
 +        PHY_AddrGet
 +        QOS_PortCfgGet
 +        QOS_PortCfgSet
 +        QOS_DscpClassGet
 +        QOS_DscpClassSet
 +        QOS_PcpClassGet
 +        QOS_PcpClassSet
 +        Reset
 +        HW_Init
 +        PCE_RuleRead
 +        PCE_RuleWrite
 +        PCE_RuleDelete
 +        QOS_QueuePortGet
 +        QOS_QueuePortSet
 +        QOS_MeterCfgGet
 +        QOS_MeterCfgSet
 +        QOS_MeterPortGet
 +        QOS_MeterPortAssign
 +        QOS_MeterPortDeassign
 +        QOS_WredCfgGet
 +        QOS_WredCfgSet
 +        QOS_WredQueueCfgGet
 +        QOS_WredQueueCfgSet
 +        QOS_SchedulerCfgGet
 +        QOS_SchedulerCfgSet
 +        QOS_StormAdd
 +        QOS_StormGet
 +        QOS_ShaperCfgGet
 +        QOS_ShaperCfgSet
 +        QOS_ShaperQueueAssign
 +        QOS_ShaperQueueDeassign
 +        QOS_ClassPCPGet
 +        QOS_ClassPCPSet
 +        QOS_ClassDSCPGet
 +        QOS_ClassDSCPSet
 +        QOS_PortRemarkingCfgGet
 +        QOS_PortRemarkingCfgSet
 +        STP_PortCfgGet
 +        STP_PortCfgSet
 +        STP_BPDU_RULE_Get
 +        STP_BPDU_RULE_Set
 +        8021X_PortCfgGet
 +        8021X_PortCfgSet
 +        PHY_Query
 +        VersionGet
 +        RMON_ExtendGet
 +        8021X_EAPOL_RuleGet
 +        8021X_EAPOL_RuleSet
 +        CapGet
 +        Enable
 +        Disable</code>
 +</p>
 +</HTML>
 +
 +=== OEM Default settings ===
 +These are the switch_utility settings on the OEM firmware right after booting up.
 +<HTML>
 +<p style="padding: 10px;border:1px solid grey;height:300px;font:10px/14px Georgia, Garamond, Serif;overflow:Auto;background-color:#FFFFFF">
 +<code>~ # brctl show
 +bridge name    bridge id              STP enabled    interfaces
 +br0            8000.f81a67d8b108      no              eth0.2
 +                                                        eth0.3
 +                                                        eth0.4
 +                                                        eth0.5
 +                                                        ath0
 +                                                        nas0_1
 +
 +~ # switch_utility CfgGet
 +        MAC_Table Age Timer = 3
 +        VLAN_Aware          = 1
 +        Max Packet Len      = 1536
 +        Max Packet Len      = 0
 +        Pause MAC Mode      = 0
 +        Pause MAC Src      = 00:d0:8f:00:01:00
 +~ # switch_utility PortCfgGet 4
 +        Port Id                = 4
 +        Port Enable            = 1
 +        Unicast Unkown Drop    = 0
 +        Multicast Unkown Drop  = 0
 +        Reserved Packet Drop    = 0
 +        Broadcast Packet Drop  = 0
 +        Aging                  = 0
 +        Learning Mac Port Lock  = 0
 +        Learning Limit          = 255
 +        Port Monitor            = 0
 +        Flow Control            = 0
 +~ # switch_utility PortLinkCfgGet 4
 +        Port Id                  = 4
 +        Force Port Duplex Mode.  = 0
 +        Port Duplex Status.      = 0
 +        Force Link Speed.        = 0
 +        Port link speed status    = 1000
 +        Force Link                = 0
 +        Force link status        = 0
 +        Selected interface mode  = 0
 +        Select if MAC or PHY mode = 1
 +        Interface clock Mode      = 0
 +~ # switch_utility PortRedirectGet 4
 +        Port Id                = 4
 +        Port Redirect Egress    = 0
 +        Port Redirect Ingress  = 0
 +~ # switch_utility MAC_TableEntryRead
 +ERROR: (VID does not exists) drivers/net/ifxmips_switch_api/ifx_ethsw_flow_api.c:IFX_FLOW_VLAN_IdGet:1711
 +--------------------------------------------------------------
 +  MAC Address      | port |  age    | FID | Static
 +--------------------------------------------------------------
 +  f8:1a:67:d8:b1:08  |  6  |    0    | 0  | 1
 +  f8:1a:67:d8:b1:08  |  6  |    15    | 2  | 0
 +  00:00:00:00:00:20  |  6  |    0    | 1  | 1
 +--------------------------------------------------------------
 +~ # switch_utility VLAN_IdGet 0
 +        VId = 0
 +        FId = 0
 +~ # switch_utility VLAN_IdGet 1
 +ERROR: (VID does not exists) drivers/net/ifxmips_switch_api/ifx_ethsw_flow_api.c:IFX_FLOW_VLAN_IdGet:1711
 +IOCTL failed for ioctl command 0xC0084517, returned -1
 +~ # switch_utility VLAN_IdGet 2
 +        VId = 2
 +        FId = 2
 +~ # switch_utility VLAN_IdGet 3
 +        VId = 3
 +        FId = 2
 +~ # switch_utility VLAN_IdGet 4
 +        VId = 4
 +        FId = 2
 +~ # switch_utility VLAN_IdGet 5
 +        VId = 5
 +        FId = 2
 +~ # switch_utility VLAN_IdGet 6
 +ERROR: (VID does not exists) drivers/net/ifxmips_switch_api/ifx_ethsw_flow_api.c:IFX_FLOW_VLAN_IdGet:1711
 +IOCTL failed for ioctl command 0xC0084517, returned -1
 +switch_utility VLAN_PortMapTableRead
 +--------------------------------------------------------------
 + VLAN ID            | Port              | Tag Member
 +--------------------------------------------------------------
 +                  50 |                  245 | FALSE
 +                  40 |                  64 | FALSE
 +                  30 |                  245 | FALSE
 +                  5 |                  96 | FALSE
 +                  4 |                  65 | FALSE
 +                  3 |                  68 | FALSE
 +                  2 |                  80 | FALSE
 +                2053 |                  117 | TRUE
 +                2052 |                  117 | TRUE
 +                2051 |                  117 | TRUE
 +                2050 |                  117 | TRUE
 +--------------------------------------------------------------
 +~ # switch_utility VLAN_PortCfgGet 0
 +        VLAN PortId          = 0
 +        VLAN PortVId          = 2052
 +        VLAN Unknown Drop    = 1
 +        VLAN ReAssign        = 0
 +        VLAN Violation Member = 3
 +        VLAN Admit Mode      = 0
 +        VLAN TVM              = 1
 +~ # switch_utility VLAN_PortCfgGet 1
 +        VLAN PortId          = 1
 +        VLAN PortVId          = 0
 +        VLAN Unknown Drop    = 0
 +        VLAN ReAssign        = 0
 +        VLAN Violation Member = 0
 +        VLAN Admit Mode      = 0
 +        VLAN TVM              = 0
 +~ # switch_utility VLAN_PortCfgGet 2
 +        VLAN PortId          = 2
 +        VLAN PortVId          = 2051
 +        VLAN Unknown Drop    = 1
 +        VLAN ReAssign        = 0
 +        VLAN Violation Member = 3
 +        VLAN Admit Mode      = 0
 +        VLAN TVM              = 1
 +~ # switch_utility VLAN_PortCfgGet 3
 +        VLAN PortId          = 3
 +        VLAN PortVId          = 0
 +        VLAN Unknown Drop    = 0
 +        VLAN ReAssign        = 0
 +        VLAN Violation Member = 0
 +        VLAN Admit Mode      = 0
 +        VLAN TVM              = 0
 +~ # switch_utility VLAN_PortCfgGet 4
 +        VLAN PortId          = 4
 +        VLAN PortVId          = 2050
 +        VLAN Unknown Drop    = 1
 +        VLAN ReAssign        = 0
 +        VLAN Violation Member = 3
 +        VLAN Admit Mode      = 0
 +        VLAN TVM              = 1
 +~ # switch_utility VLAN_PortCfgGet 5
 +        VLAN PortId          = 5
 +        VLAN PortVId          = 2053
 +        VLAN Unknown Drop    = 1
 +        VLAN ReAssign        = 0
 +        VLAN Violation Member = 3
 +        VLAN Admit Mode      = 0
 +        VLAN TVM              = 1
 +~ # switch_utility VLAN_PortCfgGet 6
 +        VLAN PortId          = 6
 +        VLAN PortVId          = 50
 +        VLAN Unknown Drop    = 0
 +        VLAN ReAssign        = 0
 +        VLAN Violation Member = 3
 +        VLAN Admit Mode      = 0
 +        VLAN TVM              = 0
 +~ # switch_utility MulticastSnoopCfgGet
 +        MULTICAST SNOOP IGMP_Mode          = 0
 +        MULTICAST SNOOP IGMPv3 support      = 0
 +        MULTICAST SNOOP CrossVLAN          = 0
 +        MULTICAST SNOOP ForwardPort        = 0
 +        MULTICAST SNOOP ForwardPortId      = 0
 +        MULTICAST SNOOP ClassOfService      = 0
 +        MULTICAST SNOOP Robust              = 3
 +        MULTICAST SNOOP QueryInterval (HEX) = 0x64
 +        MULTICAST Suppression | Aggregation = 2
 +        MULTICAST SNOOP FastLeave          = 0
 +        MULTICAST SNOOP LearningRouter      = 0
 +~ # switch_utility RMON_Get 4
 +        Port Id                                      = 4
 +        Receive Packet Count                          = 2695
 +        Receive Unicast Packet Count                  = 2634
 +        Receive Broadcast Packet Count                = 31
 +        Receive Multicast Packet Count                = 30
 +        Receive FCS Error Packet Count                = 0
 +        Receive Undersize Good Packet Count          = 0
 +        Receive Overswitch_utility MDIO_CfgGet
 +~ # switch_utility MDIO_CfgGet
 +        MDIO Access Enable = 1
 +        Clock Speed= 5
 +~ # switch_utility MDIO_DataRead 0
 +Invalid number of parameters: is 1, should be 2
 +Usage:  switch_utility MDIO_DataRead <PHY addr> <Register inside PHY>
 +
 +        phy addr:          0..14
 +        register:          0..24
 +
 +~ # switch_utility PortRGMII_ClkCfgGet 4
 +nDelayRx = 0
 +nDelayTx = 0
 +        Port Id        = 4
 +        Delay RX        = 0
 +        Delay TX        = 0
 +~ # switch_utility RegisterGet
 +Invalid number of parameters: is 0, should be 1
 +Usage:  switch_utility RegisterGet <nRegAddr>
 +
 +        nRegAddr:
 +
 +~ # switch_utility CPU_PortExtendCfgGet
 +        Add Ethernet layer-2 header = 0
 +        Remove Ethernet layer-2 header = 0
 +        Header data
 +          Source MAC    : 00:00:00:00:00:00
 +          Destination MAC: 00:00:00:00:00:00
 +          Packet EtherType Field = 0
 +          VLAN Tag Priority Field = 0
 +          VLAN Tag CFI = 0
 +          VLAN Tag VLAN ID = 0
 +        PAUSE frames coming = 0
 +        Remove the CRC = 1
 +        Port map of WAN Ethernet switch ports = 0
 +~ # switch_utility CPU_PortCfgGet 4
 +        Port Id                                = 4
 +        Enable FCS check                        = 0
 +        Enable FCS Enable FCS generation        = 1
 +        Special tag enable in egress direction  = 0
 +        Special tag enable in ingress direction = 0
 +        CPU port validity                      = 0
 +~ # switch_utility MonitorPortGet 4
 +        Port Id                                = 4
 +        This port is used as monitor port.      = 1
 +~ # switch_utility PHY_AddrGet 0
 +        Device address on the MDIO interface = 0
 +~ # switch_utility PHY_AddrGet 1
 +        Device address on the MDIO interface = 1
 +~ # switch_utility PHY_AddrGet 2
 +        Device address on the MDIO interface = 17
 +~ # switch_utility PHY_AddrGet 3
 +        Device address on the MDIO interface = 18
 +~ # switch_utility PHY_AddrGet 4
 +        Device address on the MDIO interface = 19
 +~ # switch_utility PHY_AddrGet 5
 +        Device address on the MDIO interface = 5
 +~ # switch_utility PHY_AddrGet 6
 +        Device address on the MDIO interface = 0
 +~ # switch_utility QOS_PortCfgGet 4
 +        Port Id                  = 4
 +        Traffic Class assignment = 0
 +        Traffic Class            = 0
 +~ # switch_utility QOS_DscpClassGet
 +        nTrafficClass[0] = 0
 +        nTrafficClass[1] = 0
 +        nTrafficClass[2] = 0
 +        nTrafficClass[3] = 0
 +        nTrafficClass[4] = 0
 +        nTrafficClass[5] = 0
 +        nTrafficClass[6] = 0
 +        nTrafficClass[7] = 0
 +        nTrafficClass[8] = 0
 +        nTrafficClass[9] = 0
 +        nTrafficClass[10] = 0
 +        nTrafficClass[11] = 0
 +        nTrafficClass[12] = 0
 +        nTrafficClass[13] = 0
 +        nTrafficClass[14] = 0
 +        nTrafficClass[15] = 0
 +        nTrafficClass[16] = 0
 +        nTrafficClass[17] = 0
 +        nTrafficClass[18] = 0
 +        nTrafficClass[19] = 0
 +        nTrafficClass[20] = 0
 +        nTrafficClass[21] = 0
 +        nTrafficClass[22] = 0
 +        nTrafficClass[23] = 0
 +        nTrafficClass[24] = 0
 +        nTrafficClass[25] = 0
 +        nTrafficClass[26] = 0
 +        nTrafficClass[27] = 0
 +        nTrafficClass[28] = 0
 +        nTrafficClass[29] = 0
 +        nTrafficClass[30] = 0
 +        nTrafficClass[31] = 0
 +        nTrafficClass[32] = 0
 +        nTrafficClass[33] = 0
 +        nTrafficClass[34] = 0
 +        nTrafficClass[35] = 0
 +        nTrafficClass[36] = 0
 +        nTrafficClass[37] = 0
 +        nTrafficClass[38] = 0
 +        nTrafficClass[39] = 0
 +        nTrafficClass[40] = 0
 +        nTrafficClass[41] = 0
 +        nTrafficClass[42] = 0
 +        nTrafficClass[43] = 0
 +        nTrafficClass[44] = 0
 +        nTrafficClass[45] = 0
 +        nTrafficClass[46] = 0
 +        nTrafficClass[47] = 0
 +        nTrafficClass[48] = 0
 +        nTrafficClass[49] = 0
 +        nTrafficClass[50] = 0
 +        nTrafficClass[51] = 0
 +        nTrafficClass[52] = 0
 +        nTrafficClass[53] = 0
 +        nTrafficClass[54] = 0
 +        nTrafficClass[55] = 0
 +        nTrafficClass[56] = 0
 +        nTrafficClass[57] = 0
 +        nTrafficClass[58] = 0
 +        nTrafficClass[59] = 0
 +        nTrafficClass[60] = 0
 +        nTrafficClass[61] = 0
 +        nTrafficClass[62] = 0
 +        nTrafficClass[63] = 0
 +~ # switch_utility QOS_PcpClassGet
 +        nTrafficClass[0] = 0
 +        nTrafficClass[1] = 0
 +        nTrafficClass[2] = 0
 +        nTrafficClass[3] = 0
 +        nTrafficClass[4] = 0
 +        nTrafficClass[5] = 0
 +        nTrafficClass[6] = 0
 +        nTrafficClass[7] = 0
 +~ # switch_utility PCE_RuleRead 4
 +        == Pattern Table:
 +        nIndex                              = 4
 +        Index is used(Enabled)/ (Disabled)  = 0
 +        Port ID used                        = 0
 +        Port ID                              = 0
 +        DSCP value used                      = 0
 +        DSCP value                          = 0
 +        PCP value used                      = 0
 +        PCP value                            = 0
 +        Packet length used                  = 0
 +        Packet length                        = 0
 +        Packet length Range                  = 0
 +        Destination MAC address used        = 0
 +        Destination MAC address              = 00:00:00:00:00:00
 +        Destination MAC address mask        = 0x0
 +        Source MAC address used              = 0
 +        Source MAC address                  = 00:00:00:00:00:00
 +        Source MAC address mask              = 0x0
 +        MSB Application field used          = 0
 +        MSB Application field                = 0
 +        MSB Application mask/range selection = 0
 +        MSB Application mask/range          = 0
 +        LSB Application used                = 0
 +        LSB Application field                = 0
 +        LSB Application mask/range selection = 0
 +        LSB Application mask/range          = 0
 +        DIP Selection.                      = 0
 +        DIP                                  = 000.000.000.000
 +        DIP Nibble Mask                      = 0x0
 +        SIP Selection.                      = 0
 +        SIP                                  = 000.000.000.000
 +        SIP Nibble Mask                      = 0x0
 +        Ethertype used                      = 0
 +        Ethertype                            = 0
 +        Ethertype Mask                      = 0x0
 +        IP protocol used                    = 0
 +        IP protocol                          = 0
 +        IP protocol Mask                    = 0x0
 +        PPPoE used                          = 0
 +        PPPoE                                = 0
 +        VLAN used                            = 0
 +        VLAN                                = 0
 +        == Action Table:
 +        Action Traffic class Group.          = 0
 +        Alternative Traffic class            = 0
 +        Action IGMP Snooping Group.          = 0
 +        Action Learning Group.              = 0
 +        Action Interrupt Group.              = 0
 +        Action Cross State Group.            = 0
 +        Action Critical Frames Group.        = 0
 +        Action Timestamp Group.              = 0
 +        Action Forwarding Group.            = 0
 +        Target portmap for forwarded packets = 0
 +        Action Remarking Group.              = 0
 +        PCP remarking enable                = 0
 +        DSCP remarking enable                = 0
 +        Class remarking enable              = 0
 +        Action Meter Group.                  = 0
 +        Meter ID                            = 0
 +        Action RMON Group.                  = 0
 +        Counter ID                          = 0
 +        Action VLAN Group.                  = 0
 +        Alternative VLAN Id.                = 0
 +        Action Cross VLAN Group.            = 0
 +~ # switch_utility QOS_QueuePortGet
 +Invalid number of parameters: is 0, should be 2
 +Usage:  switch_utility QOS_QueuePortGet <nPortId> <nTrafficClassId>
 +
 +        nPortId:            Port ID
 +        nTrafficClassId:    Traffic Class index
 +
 +~ # switch_utility QOS_MeterCfgGet 0
 +        The meter shaper Enable or Disable = 0
 +        Meter index = 0
 +        Committed Burst Size = 0
 +        Excess Burst Size = 0
 +        Rate[kbit/s] = 0
 +~ # switch_utility QOS_MeterPortGet
 + | Meter Index =  0 | Direction =  0 | Ingress PortID =  0 | Egress PortID =  0
 + | Meter Index =  0 | Direction =  0 | Ingress PortID =  0 | Egress PortID =  0
 + | Meter Index =  0 | Direction =  0 | Ingress PortID =  0 | Egress PortID =  0
 + | Meter Index =  0 | Direction =  0 | Ingress PortID =  0 | Egress PortID =  0
 + | Meter Index =  0 | Direction =  0 | Ingress PortID =  0 | Egress PortID =  0
 + | Meter Index =  0 | Direction =  0 | Ingress PortID =  0 | Egress PortID =  0
 + | Meter Index =  0 | Direction =  0 | Ingress PortID =  0 | Egress PortID =  0
 + | Meter Index =  0 | Direction =  0 | Ingress PortID =  0 | Egress PortID =  0
 + | Meter Index =  0 | Direction =  0 | Ingress PortID =  0 | Egress PortID =  0
 + | Meter Index =  0 | Direction =  0 | Ingress PortID =  0 | Egress PortID =  0
 + | Meter Index =  0 | Direction =  0 | Ingress PortID =  0 | Egress PortID =  0
 + | Meter Index =  0 | Direction =  0 | Ingress PortID =  0 | Egress PortID =  0
 + | Meter Index =  0 | Direction =  0 | Ingress PortID =  0 | Egress PortID =  0
 + | Meter Index =  0 | Direction =  0 | Ingress PortID =  0 | Egress PortID =  0
 + | Meter Index =  0 | Direction =  0 | Ingress PortID =  0 | Egress PortID =  0
 + | Meter Index =  0 | Direction =  0 | Ingress PortID =  0 | Egress PortID =  0
 +~ # switch_utility QOS_WredCfgGet
 +        Drop Probability Profile  = 0
 +        WRED Red Threshold Min    = 0x3ff
 +        WRED Red Threshold Max    = 0x3ff
 +        WRED Yellow Threshold Min  = 0x3ff
 +        WRED Yellow Threshold Max  = 0x3ff
 +        WRED Green Threshold Min  = 0x3ff
 +        WRED Green Threshold Max  = 0x3ff
 +~ # switch_utility QOS_WredQueueCfgGet 0
 +        QoS queue index = 0x0
 +        WRED Red Threshold Min = 0xff
 +        WRED Red Threshold Max = 0xff
 +        WRED Yellow Threshold Min = 0xff
 +        WRED Yellow Threshold Max = 0xff
 +        WRED Green Threshold Min = 0xff
 +        WRED Green Threshold Max = 0xff
 +~ # switch_utility QOS_SchedulerCfgGet 0
 +        QoS queue index = 0
 +        Scheduler Type  = 0x0
 +        Ratio = 0x1800
 +~ # switch_utility QOS_StormGet
 +        Meter index = 0x0
 +        broadcast traffic= 0x0
 +        multicast traffic = 0x0
 +        unknown unicast traffic= 0x0
 +~ # switch_utility QOS_ShaperCfgGet 0
 +        Rate shaper index = 0x0
 +        Enable or Disable the rate shaperx = 0x0
 +        Committed Burst Size = 0
 +        Rate [kbit/s]= 0
 +~ # switch_utility QOS_ClassPCPGet
 +        nPCP[0] = 0
 +        nPCP[1] = 0
 +        nPCP[2] = 0
 +        nPCP[3] = 0
 +        nPCP[4] = 0
 +        nPCP[5] = 0
 +        nPCP[6] = 0
 +        nPCP[7] = 0
 +        nPCP[8] = 0
 +        nPCP[9] = 0
 +        nPCP[10] = 0
 +        nPCP[11] = 0
 +        nPCP[12] = 0
 +        nPCP[13] = 0
 +        nPCP[14] = 0
 +        nPCP[15] = 0
 +~ # switch_utility QOS_ClassDSCPGet
 +        nDSCP[0] = 0
 +        nDSCP[1] = 0
 +        nDSCP[2] = 0
 +        nDSCP[3] = 0
 +        nDSCP[4] = 0
 +        nDSCP[5] = 0
 +        nDSCP[6] = 0
 +        nDSCP[7] = 0
 +        nDSCP[8] = 0
 +        nDSCP[9] = 0
 +        nDSCP[10] = 0
 +        nDSCP[11] = 0
 +        nDSCP[12] = 0
 +        nDSCP[13] = 0
 +        nDSCP[14] = 0
 +        nDSCP[15] = 0
 +~ # switch_utility QOS_PortRemarkingCfgGet 4
 +        nPortId = 0x4
 +        eDSCP_IngressRemarkingEnable = 0x0
 +        bDSCP_EgressRemarkingEnable  = 0x0
 +        bPCP_IngressRemarkingEnable  = 0x0
 +        bPCP_EgressRemarkingEnable  = 0x1
 +~ # switch_utility STP_PortCfgGet 4
 +        Port Id                      = 4
 +        Spanning Tree Protocol state = 0
 +~ # switch_utility STP_BPDU_RULE_Get
 +        Filter spanning tree packets      = 0
 +        Target port for forwarded packets = 0
 +~ # switch_utility 8021X_PortCfgGet 4
 +        Port number                  = 4
 +        802.1x state of the port    = 0
 +~ # switch_utility PHY_Query 0
 +        A connected PHY on this port = YES
 +~ # switch_utility PHY_Query 1
 +        A connected PHY on this port = No
 +~ # switch_utility PHY_Query 2
 +        A connected PHY on this port = YES
 +~ # switch_utility PHY_Query 3
 +        A connected PHY on this port = No
 +~ # switch_utility PHY_Query 4
 +        A connected PHY on this port = YES
 +~ # switch_utility PHY_Query 5
 +        A connected PHY on this port = YES
 +~ # switch_utility PHY_Query 6
 +        A connected PHY on this port = YES
 +~ # switch_utility VersionGet 0
 +        IFX ETHSW SWITCH API for GSWITCH Platform = 1.1.7.2
 +~ # switch_utility RMON_ExtendGet 0
 +        RMON Counter [0] = 0
 +        RMON Counter [1] = 0
 +        RMON Counter [2] = 0
 +        RMON Counter [3] = 0
 +        RMON Counter [4] = 0
 +        RMON Counter [5] = 0
 +        RMON Counter [6] = 0
 +        RMON Counter [7] = 0
 +        RMON Counter [8] = 0
 +        RMON Counter [9] = 0
 +        RMON Counter [10] = 0
 +        RMON Counter [11] = 0
 +        RMON Counter [12] = 0
 +        RMON Counter [13] = 0
 +        RMON Counter [14] = 0
 +        RMON Counter [15] = 0
 +        RMON Counter [16] = 0
 +        RMON Counter [17] = 0
 +        RMON Counter [18] = 0
 +        RMON Counter [19] = 0
 +        RMON Counter [20] = 0
 +        RMON Counter [21] = 0
 +        RMON Counter [22] = 0
 +        RMON Counter [23] = 0
 +~ # switch_utility 8021X_EAPOL_RuleGet
 +        8021.x forwarding port rule      = 0
 +        Target port for forwarded packets = 0
 +~ # switch_utility CapGet
 +        Capability: Number of physical Ethernet ports = 7
 +        Capability: Number of virtual Ethernet ports = 6
 +        Capability: Size of internal packet memory [in Bytes] = 65536
 +        Capability: Number of Segment size per device = 256
 +        Capability: Number of priority queues per device = 32
 +        Capability: Number of meter instances = 8
 +        Capability: Number of rate shaper instances = 16
 +        Capability: Number of VLAN groups that can be configured on the switch hardware = 64
 +        Capability: Number of Forwarding database IDs [FIDs] = 64
 +        Capability: Number of MAC table entries = 2048
 +        Capability: Number of multicast level 3 hardware table entries = 64
 +        Capability: Number of supported PPPoE sessions = 16</code>
 +</p>
 +</HTML>
 +
 +=== Empty settings ===
 +On the OEM firmware, the switch settings can be reset to manufacturer defaults by doing:
 +    ~ # switch_utility Reset
 +    ~ # switch_utility HW_Init
 +These settings would //probably// reflect what the settings are like when OpenWrt is running:
 +<HTML>
 +<p style="padding: 10px;border:1px solid grey;height:300px;font:10px/14px Georgia, Garamond, Serif;overflow:Auto;background-color:#FFFFFF">
 +<code>~ # switch_utility Reset
 +~ # switch_utility HW_Init
 +~ #
 +~ # switch_utility CfgGet
 +        MAC_Table Age Timer = 3
 +        VLAN_Aware          = 0
 +        Max Packet Len      = 9600
 +        Max Packet Len      = 0
 +        Pause MAC Mode      = 0
 +        Pause MAC Src      = 00:d0:8f:00:01:00
 +~ # switch_utility PortCfgGet 4
 +        Port Id                = 4
 +        Port Enable            = 0
 +        Unicast Unkown Drop    = 0
 +        Multicast Unkown Drop  = 0
 +        Reserved Packet Drop    = 0
 +        Broadcast Packet Drop  = 0
 +        Aging                  = 0
 +        Learning Mac Port Lock  = 0
 +        Learning Limit          = 255
 +        Port Monitor            = 0
 +        Flow Control            = 0
 +~ # switch_utility PortLinkCfgGet 4
 +        Port Id                  = 4
 +        Force Port Duplex Mode.  = 0
 +        Port Duplex Status.      = 0
 +        Force Link Speed.        = 0
 +        Port link speed status    = 1000
 +        Force Link                = 0
 +        Force link status        = 0
 +        Selected interface mode  = 0
 +        Select if MAC or PHY mode = 1
 +        Interface clock Mode      = 0
 +~ # switch_utility PortRedirectGet 4
 +        Port Id                = 4
 +        Port Redirect Egress    = 0
 +        Port Redirect Ingress  = 0
 +~ # switch_utility MAC_TableEntryRead
 +--------------------------------------------------------------
 +  MAC Address      | port |  age    | FID | Static
 +--------------------------------------------------------------
 +--------------------------------------------------------------
 +~ # switch_utility VLAN_IdGet 0
 +        VId = 0
 +        FId = 0
 +~ # switch_utility VLAN_IdGet 1
 +ERROR: (VID does not exists) drivers/net/ifxmips_switch_api/ifx_ethsw_flow_api.c:IFX_FLOW_VLAN_IdGet:1711
 +IOCTL failed for ioctl command 0xC0084517, returned -1
 +~ # switch_utility VLAN_IdGet 2
 +ERROR: (VID does not exists) drivers/net/ifxmips_switch_api/ifx_ethsw_flow_api.c:IFX_FLOW_VLAN_IdGet:1711
 +IOCTL failed for ioctl command 0xC0084517, returned -1
 +~ # switch_utility VLAN_IdGet 3
 +ERROR: (VID does not exists) drivers/net/ifxmips_switch_api/ifx_ethsw_flow_api.c:IFX_FLOW_VLAN_IdGet:1711
 +sIOCTL failed for ioctl command 0xC0084517, returned -1
 +~ # switch_utility VLAN_IdGet 4
 +ERROR: (VID does not exists) drivers/net/ifxmips_switch_api/ifx_ethsw_flow_api.c:IFX_FLOW_VLAN_IdGet:1711
 +IOCTL failed for ioctl command 0xC0084517, returned -1
 +~ # switch_utility VLAN_IdGet 5
 +ERROR: (VID does not exists) drivers/net/ifxmips_switch_api/ifx_ethsw_flow_api.c:IFX_FLOW_VLAN_IdGet:1711
 +IOCTL failed for ioctl command 0xC0084517, returned -1
 +~ # switch_utility VLAN_IdGet 6
 +ERROR: (VID does not exists) drivers/net/ifxmips_switch_api/ifx_ethsw_flow_api.c:IFX_FLOW_VLAN_IdGet:1711
 +IOCTL failed for ioctl command 0xC0084517, returned -1
 +~ # switch_utility VLAN_PortMapTableRead
 +--------------------------------------------------------------
 + VLAN ID            | Port              | Tag Member
 +--------------------------------------------------------------
 +--------------------------------------------------------------
 +~ # switch_utility VLAN_PortCfgGet 0
 +        VLAN PortId          = 0
 +        VLAN PortVId          = 0
 +        VLAN Unknown Drop    = 0
 +        VLAN ReAssign        = 0
 +        VLAN Violation Member = 0
 +        VLAN Admit Mode      = 0
 +        VLAN TVM              = 0
 +~ # switch_utility VLAN_PortCfgGet 1
 +        VLAN PortId          = 1
 +        VLAN PortVId          = 0
 +        VLAN Unknown Drop    = 0
 +        VLAN ReAssign        = 0
 +        VLAN Violation Member = 0
 +        VLAN Admit Mode      = 0
 +        VLAN TVM              = 0
 +~ # switch_utility VLAN_PortCfgGet 2
 +        VLAN PortId          = 2
 +        VLAN PortVId          = 0
 +        VLAN Unknown Drop    = 0
 +        VLAN ReAssign        = 0
 +        VLAN Violation Member = 0
 +        VLAN Admit Mode      = 0
 +        VLAN TVM              = 0
 +~ # switch_utility VLAN_PortCfgGet 3
 +        VLAN PortId          = 3
 +        VLAN PortVId          = 0
 +        VLAN Unknown Drop    = 0
 +        VLAN ReAssign        = 0
 +        VLAN Violation Member = 0
 +        VLAN Admit Mode      = 0
 +        VLAN TVM              = 0
 +~ # switch_utility VLAN_PortCfgGet 4
 +        VLAN PortId          = 4
 +        VLAN PortVId          = 0
 +        VLAN Unknown Drop    = 0
 +        VLAN ReAssign        = 0
 +        VLAN Violation Member = 0
 +        VLAN Admit Mode      = 0
 +        VLAN TVM              = 0
 +~ # switch_utility VLAN_PortCfgGet 5
 +        VLAN PortId          = 5
 +        VLAN PortVId          = 0
 +        VLAN Unknown Drop    = 0
 +        VLAN ReAssign        = 0
 +        VLAN Violation Member = 0
 +        VLAN Admit Mode      = 0
 +        VLAN TVM              = 0
 +~ # switch_utility VLAN_PortCfgGet 6
 +        VLAN PortId          = 6
 +        VLAN PortVId          = 0
 +        VLAN Unknown Drop    = 0
 +        VLAN ReAssign        = 0
 +        VLAN Violation Member = 0
 +        VLAN Admit Mode      = 0
 +        VLAN TVM              = 0
 +~ # switch_utility MulticastSnoopCfgGet
 +        MULTICAST SNOOP IGMP_Mode          = 0
 +        MULTICAST SNOOP IGMPv3 support      = 0
 +        MULTICAST SNOOP CrossVLAN          = 0
 +        MULTICAST SNOOP ForwardPort        = 0
 +        MULTICAST SNOOP ForwardPortId      = 0
 +        MULTICAST SNOOP ClassOfService      = 0
 +        MULTICAST SNOOP Robust              = 3
 +        MULTICAST SNOOP QueryInterval (HEX) = 0x64
 +        MULTICAST Suppression | Aggregation = 2
 +        MULTICAST SNOOP FastLeave          = 0
 +        MULTICAST SNOOP LearningRouter      = 0
 +~ # switch_utility RMON_Get 4
 +        Port Id                                      = 4
 +        Receive Packet Count                          = 0
 +        Receive Unicast Packet Count                  = 0
 +        Receive Broadcast Packet Count                = 0
 +        Receive Multicast Packet Count                = 0
 +        Receive FCS Error Packet Count                = 0
 +        Receive Undersize Good Packet Count          = 0
 +        Receive Oversize Good Packet Count            = 0
 +        Receive Undersize Error Packet Count          = 0
 +        Receive Good Pause Packet Count              = 0
 +        Receive Oversize Error Packet Count          = 0
 +        Receive Align Error Packet Count              = 0
 +        Filtered Packet Count                        = 0
 +        Receive Size 64 Packet Count                  = 0
 +        Receive Size 65-127 Packet Countt            = 0
 +        Receive Size 128-255 Packet Count            = 0
 +        Receive Size 256-511 Packet Count            = 0
 +        Receive Size 512-1023 Packet Count            = 0
 +        Receive Size 1024-1522(or more)Packet Count  = 0
 +        Receive Dropped Packet Count                  = 0
 +        Transmit Packet Count                        = 0
 +        Transmit Unicast Packet Count                = 0
 +        Transmit Broadcast Packet Count              = 0
 +        Transmit Multicast Packet Count              = 0
 +        Transmit Single Collision Count              = 0
 +        Transmit Multiple Collision Count            = 0
 +        Transmit Late Collision Count                = 0
 +        Transmit Excessive Collision Count            = 0
 +        Transmit Collision Count                      = 0
 +        Transmit Pause Packet Count                  = 0
 +        Transmit Size 64 Packet Count                = 0
 +        Transmit Size 65-127 Packet Count            = 0
 +        Transmit Size 128-255 Packet Count            = 0
 +        Transmit Size 256-511 Packet Count            = 0
 +        Transmit Size 512-1023 Packet Count          = 0
 +        Transmit Size 1024-1522(or more)Packet Count  = 0
 +        Transmit Drop Packet Count                    = 0
 +        Egress Queue Discard (ACM) Frame Count        = 0
 +        Receive Good Bytes Count                      = 00000000
 +        Receive Bad Byte Count                        = 00000000
 +        Transmit Good Byte Count                      = 00000000
 +~ # switch_utility MDIO_CfgGet
 +        MDIO Access Enable = 1
 +        Clock Speed= 9
 +~ # switch_utility MDIO_DataRead 0
 +Invalid number of parameters: is 1, should be 2
 +Usage:  switch_utility MDIO_DataRead <PHY addr> <Register inside PHY>
 +
 +        phy addr:          0..14
 +        register:          0..24
 +
 +~ # switch_utility PortRGMII_ClkCfgGet 4
 +nDelayRx = 0
 +nDelayTx = 0
 +        Port Id        = 4
 +        Delay RX        = 0
 +        Delay TX        = 0
 +~ # switch_utility RegisterGet
 +Invalid number of parameters: is 0, should be 1
 +Usage:  switch_utility RegisterGet <nRegAddr>
 +
 +        nRegAddr:
 +
 +~ # switch_utility CPU_PortExtendCfgGet
 +        Add Ethernet layer-2 header = 0
 +        Remove Ethernet layer-2 header = 0
 +        Header data
 +          Source MAC    : 00:00:00:00:00:00
 +          Destination MAC: 00:00:00:00:00:00
 +          Packet EtherType Field = 0
 +          VLAN Tag Priority Field = 0
 +          VLAN Tag CFI = 0
 +          VLAN Tag VLAN ID = 0
 +        PAUSE frames coming = 1
 +        Remove the CRC = 0
 +        Port map of WAN Ethernet switch ports = 0
 +~ # switch_utility CPU_PortCfgGet 4
 +        Port Id                                = 4
 +        Enable FCS check                        = 0
 +        Enable FCS Enable FCS generation        = 1
 +        Special tag enable in egress direction  = 0
 +        Special tag enable in ingress direction = 0
 +        CPU port validity                      = 0
 +~ # switch_utility MonitorPortGet 4
 +        Port Id                                = 4
 +        This port is used as monitor port.      = 0
 +~ # switch_utility PHY_AddrGet 0
 +        Device address on the MDIO interface = 0
 +~ # switch_utility PHY_AddrGet 1
 +        Device address on the MDIO interface = 1
 +~ # switch_utility PHY_AddrGet 2
 +        Device address on the MDIO interface = 17
 +~ # switch_utility PHY_AddrGet 3
 +        Device address on the MDIO interface = 18
 +~ # switch_utility PHY_AddrGet 4
 +        Device address on the MDIO interface = 19
 +~ # switch_utility PHY_AddrGet 5
 +        Device address on the MDIO interface = 5
 +~ # switch_utility PHY_AddrGet 6
 +        Device address on the MDIO interface = 0
 +~ # switch_utility QOS_PortCfgGet 4
 +        Port Id                  = 4
 +        Traffic Class assignment = 0
 +        Traffic Class            = 0
 +~ # switch_utility QOS_DscpClassGet
 +        nTrafficClass[0] = 0
 +        nTrafficClass[1] = 0
 +        nTrafficClass[2] = 0
 +        nTrafficClass[3] = 0
 +        nTrafficClass[4] = 0
 +        nTrafficClass[5] = 0
 +        nTrafficClass[6] = 0
 +        nTrafficClass[7] = 0
 +        nTrafficClass[8] = 0
 +        nTrafficClass[9] = 0
 +        nTrafficClass[10] = 0
 +        nTrafficClass[11] = 0
 +        nTrafficClass[12] = 0
 +        nTrafficClass[13] = 0
 +        nTrafficClass[14] = 0
 +        nTrafficClass[15] = 0
 +        nTrafficClass[16] = 0
 +        nTrafficClass[17] = 0
 +        nTrafficClass[18] = 0
 +        nTrafficClass[19] = 0
 +        nTrafficClass[20] = 0
 +        nTrafficClass[21] = 0
 +        nTrafficClass[22] = 0
 +        nTrafficClass[23] = 0
 +        nTrafficClass[24] = 0
 +        nTrafficClass[25] = 0
 +        nTrafficClass[26] = 0
 +        nTrafficClass[27] = 0
 +        nTrafficClass[28] = 0
 +        nTrafficClass[29] = 0
 +        nTrafficClass[30] = 0
 +        nTrafficClass[31] = 0
 +        nTrafficClass[32] = 0
 +        nTrafficClass[33] = 0
 +        nTrafficClass[34] = 0
 +        nTrafficClass[35] = 0
 +        nTrafficClass[36] = 0
 +        nTrafficClass[37] = 0
 +        nTrafficClass[38] = 0
 +        nTrafficClass[39] = 0
 +        nTrafficClass[40] = 0
 +        nTrafficClass[41] = 0
 +        nTrafficClass[42] = 0
 +        nTrafficClass[43] = 0
 +        nTrafficClass[44] = 0
 +        nTrafficClass[45] = 0
 +        nTrafficClass[46] = 0
 +        nTrafficClass[47] = 0
 +        nTrafficClass[48] = 0
 +        nTrafficClass[49] = 0
 +        nTrafficClass[50] = 0
 +        nTrafficClass[51] = 0
 +        nTrafficClass[52] = 0
 +        nTrafficClass[53] = 0
 +        nTrafficClass[54] = 0
 +        nTrafficClass[55] = 0
 +        nTrafficClass[56] = 0
 +        nTrafficClass[57] = 0
 +        nTrafficClass[58] = 0
 +        nTrafficClass[59] = 0
 +        nTrafficClass[60] = 0
 +        nTrafficClass[61] = 0
 +        nTrafficClass[62] = 0
 +        nTrafficClass[63] = 0
 +~ # switch_utility QOS_PcpClassGet
 +        nTrafficClass[0] = 0
 +        nTrafficClass[1] = 0
 +        nTrafficClass[2] = 0
 +        nTrafficClass[3] = 0
 +        nTrafficClass[4] = 0
 +        nTrafficClass[5] = 0
 +        nTrafficClass[6] = 0
 +        nTrafficClass[7] = 0
 +~ # switch_utility PCE_RuleRead 4
 +        == Pattern Table:
 +        nIndex                              = 4
 +        Index is used(Enabled)/ (Disabled)  = 0
 +        Port ID used                        = 0
 +        Port ID                              = 0
 +        DSCP value used                      = 0
 +        DSCP value                          = 0
 +        PCP value used                      = 0
 +        PCP value                            = 0
 +        Packet length used                  = 0
 +        Packet length                        = 0
 +        Packet length Range                  = 0
 +        Destination MAC address used        = 0
 +        Destination MAC address              = 00:00:00:00:00:00
 +        Destination MAC address mask        = 0x0
 +        Source MAC address used              = 0
 +        Source MAC address                  = 00:00:00:00:00:00
 +        Source MAC address mask              = 0x0
 +        MSB Application field used          = 0
 +        MSB Application field                = 0
 +        MSB Application mask/range selection = 0
 +        MSB Application mask/range          = 0
 +        LSB Application used                = 0
 +        LSB Application field                = 0
 +        LSB Application mask/range selection = 0
 +        LSB Application mask/range          = 0
 +        DIP Selection.                      = 0
 +        DIP                                  = 000.000.000.000
 +        DIP Nibble Mask                      = 0x0
 +        SIP Selection.                      = 0
 +        SIP                                  = 000.000.000.000
 +        SIP Nibble Mask                      = 0x0
 +        Ethertype used                      = 0
 +        Ethertype                            = 0
 +        Ethertype Mask                      = 0x0
 +        IP protocol used                    = 0
 +        IP protocol                          = 0
 +        IP protocol Mask                    = 0x0
 +        PPPoE used                          = 0
 +        PPPoE                                = 0
 +        VLAN used                            = 0
 +        VLAN                                = 0
 +        == Action Table:
 +        Action Traffic class Group.          = 0
 +        Alternative Traffic class            = 0
 +        Action IGMP Snooping Group.          = 0
 +        Action Learning Group.              = 0
 +        Action Interrupt Group.              = 0
 +        Action Cross State Group.            = 0
 +        Action Critical Frames Group.        = 0
 +        Action Timestamp Group.              = 0
 +        Action Forwarding Group.            = 0
 +        Target portmap for forwarded packets = 0
 +        Action Remarking Group.              = 0
 +        PCP remarking enable                = 0
 +        DSCP remarking enable                = 0
 +        Class remarking enable              = 0
 +        Action Meter Group.                  = 0
 +        Meter ID                            = 0
 +        Action RMON Group.                  = 0
 +        Counter ID                          = 0
 +        Action VLAN Group.                  = 0
 +        Alternative VLAN Id.                = 0
 +        Action Cross VLAN Group.            = 0
 +~ # switch_utility QOS_QueuePortGet
 +Invalid number of parameters: is 0, should be 2
 +Usage:  switch_utility QOS_QueuePortGet <nPortId> <nTrafficClassId>
 +
 +        nPortId:            Port ID
 +        nTrafficClassId:    Traffic Class index
 +
 +~ # switch_utility QOS_MeterCfgGet 0
 +        The meter shaper Enable or Disable = 0
 +        Meter index = 0
 +        Committed Burst Size = 0
 +        Excess Burst Size = 0
 +        Rate[kbit/s] = 0
 +~ # switch_utility QOS_MeterPortGet
 + | Meter Index =  0 | Direction =  0 | Ingress PortID =  0 | Egress PortID =  0
 + | Meter Index =  0 | Direction =  0 | Ingress PortID =  0 | Egress PortID =  0
 + | Meter Index =  0 | Direction =  0 | Ingress PortID =  0 | Egress PortID =  0
 + | Meter Index =  0 | Direction =  0 | Ingress PortID =  0 | Egress PortID =  0
 + | Meter Index =  0 | Direction =  0 | Ingress PortID =  0 | Egress PortID =  0
 + | Meter Index =  0 | Direction =  0 | Ingress PortID =  0 | Egress PortID =  0
 + | Meter Index =  0 | Direction =  0 | Ingress PortID =  0 | Egress PortID =  0
 + | Meter Index =  0 | Direction =  0 | Ingress PortID =  0 | Egress PortID =  0
 + | Meter Index =  0 | Direction =  0 | Ingress PortID =  0 | Egress PortID =  0
 + | Meter Index =  0 | Direction =  0 | Ingress PortID =  0 | Egress PortID =  0
 + | Meter Index =  0 | Direction =  0 | Ingress PortID =  0 | Egress PortID =  0
 + | Meter Index =  0 | Direction =  0 | Ingress PortID =  0 | Egress PortID =  0
 + | Meter Index =  0 | Direction =  0 | Ingress PortID =  0 | Egress PortID =  0
 + | Meter Index =  0 | Direction =  0 | Ingress PortID =  0 | Egress PortID =  0
 + | Meter Index =  0 | Direction =  0 | Ingress PortID =  0 | Egress PortID =  0
 + | Meter Index =  0 | Direction =  0 | Ingress PortID =  0 | Egress PortID =  0
 +~ # switch_utility QOS_WredCfgGet
 +        Drop Probability Profile  = 0
 +        WRED Red Threshold Min    = 0x3ff
 +        WRED Red Threshold Max    = 0x3ff
 +        WRED Yellow Threshold Min  = 0x3ff
 +        WRED Yellow Threshold Max  = 0x3ff
 +        WRED Green Threshold Min  = 0x3ff
 +        WRED Green Threshold Max  = 0x3ff
 +~ # switch_utility QOS_WredQueueCfgGet 0
 +        QoS queue index = 0x0
 +        WRED Red Threshold Min = 0x50
 +        WRED Red Threshold Max = 0x50
 +        WRED Yellow Threshold Min = 0x50
 +        WRED Yellow Threshold Max = 0x50
 +        WRED Green Threshold Min = 0x50
 +        WRED Green Threshold Max = 0x50
 +~ # switch_utility QOS_SchedulerCfgGet 0
 +        QoS queue index = 0
 +        Scheduler Type  = 0x0
 +        Ratio = 0x1800
 +~ # switch_utility QOS_StormGet
 +        Meter index = 0x0
 +        broadcast traffic= 0x0
 +        multicast traffic = 0x0
 +        unknown unicast traffic= 0x0
 +~ # switch_utility QOS_ShaperCfgGet 0
 +        Rate shaper index = 0x0
 +        Enable or Disable the rate shaperx = 0x0
 +        Committed Burst Size = 0
 +        Rate [kbit/s]= 0
 +~ # switch_utility QOS_ClassPCPGet
 +        nPCP[0] = 0
 +        nPCP[1] = 0
 +        nPCP[2] = 0
 +        nPCP[3] = 0
 +        nPCP[4] = 0
 +        nPCP[5] = 0
 +        nPCP[6] = 0
 +        nPCP[7] = 0
 +        nPCP[8] = 0
 +        nPCP[9] = 0
 +        nPCP[10] = 0
 +        nPCP[11] = 0
 +        nPCP[12] = 0
 +        nPCP[13] = 0
 +        nPCP[14] = 0
 +        nPCP[15] = 0
 +~ # switch_utility QOS_ClassDSCPGet
 +        nDSCP[0] = 0
 +        nDSCP[1] = 0
 +        nDSCP[2] = 0
 +        nDSCP[3] = 0
 +        nDSCP[4] = 0
 +        nDSCP[5] = 0
 +        nDSCP[6] = 0
 +        nDSCP[7] = 0
 +        nDSCP[8] = 0
 +        nDSCP[9] = 0
 +        nDSCP[10] = 0
 +        nDSCP[11] = 0
 +        nDSCP[12] = 0
 +        nDSCP[13] = 0
 +        nDSCP[14] = 0
 +        nDSCP[15] = 0
 +~ # switch_utility QOS_PortRemarkingCfgGet 4
 +        nPortId = 0x4
 +        eDSCP_IngressRemarkingEnable = 0x0
 +        bDSCP_EgressRemarkingEnable  = 0x0
 +        bPCP_IngressRemarkingEnable  = 0x0
 +        bPCP_EgressRemarkingEnable  = 0x1
 +~ # switch_utility STP_PortCfgGet 4
 +        Port Id                      = 4
 +        Spanning Tree Protocol state = 0
 +~ # switch_utility STP_BPDU_RULE_Get
 +        Filter spanning tree packets      = 0
 +        Target port for forwarded packets = 0
 +~ # switch_utility 8021X_PortCfgGet 4
 +        Port number                  = 4
 +        802.1x state of the port    = 0
 +~ # switch_utility PHY_Query 0
 +        A connected PHY on this port = YES
 +~ # switch_utility PHY_Query 1
 +        A connected PHY on this port = No
 +~ # switch_utility PHY_Query 2
 +        A connected PHY on this port = YES
 +~ # switch_utility PHY_Query 3
 +        A connected PHY on this port = No
 +~ # switch_utility PHY_Query 4
 +        A connected PHY on this port = YES
 +~ # switch_utility PHY_Query 5
 +        A connected PHY on this port = YES
 +~ # switch_utility PHY_Query 6
 +        A connected PHY on this port = YES
 +~ # switch_utility VersionGet 0
 +        IFX ETHSW SWITCH API for GSWITCH Platform = 1.1.7.2
 +~ # switch_utility RMON_ExtendGet 0
 +        RMON Counter [0] = 0
 +        RMON Counter [1] = 0
 +        RMON Counter [2] = 0
 +        RMON Counter [3] = 0
 +        RMON Counter [4] = 0
 +        RMON Counter [5] = 0
 +        RMON Counter [6] = 0
 +        RMON Counter [7] = 0
 +        RMON Counter [8] = 0
 +        RMON Counter [9] = 0
 +        RMON Counter [10] = 0
 +        RMON Counter [11] = 0
 +        RMON Counter [12] = 0
 +        RMON Counter [13] = 0
 +        RMON Counter [14] = 0
 +        RMON Counter [15] = 0
 +        RMON Counter [16] = 0
 +        RMON Counter [17] = 0
 +        RMON Counter [18] = 0
 +        RMON Counter [19] = 0
 +        RMON Counter [20] = 0
 +        RMON Counter [21] = 0
 +        RMON Counter [22] = 0
 +        RMON Counter [23] = 0
 +~ # switch_utility 8021X_EAPOL_RuleGet
 +        8021.x forwarding port rule      = 0
 +        Target port for forwarded packets = 6
 +~ # switch_utility CapGet
 +        Capability: Number of physical Ethernet ports = 7
 +        Capability: Number of virtual Ethernet ports = 6
 +        Capability: Size of internal packet memory [in Bytes] = 65536
 +        Capability: Number of Segment size per device = 256
 +        Capability: Number of priority queues per device = 32
 +        Capability: Number of meter instances = 8
 +        Capability: Number of rate shaper instances = 16
 +        Capability: Number of VLAN groups that can be configured on the switch hardware = 64
 +        Capability: Number of Forwarding database IDs [FIDs] = 64
 +        Capability: Number of MAC table entries = 2048
 +        Capability: Number of multicast level 3 hardware table entries = 64
 +        Capability: Number of supported PPPoE sessions = 16</code>
 +</p>
 +</HTML>
 +
 +==== OEM Switch scripts ====
 +=== dsl_wan_setting.sh ===
 +<HTML>
 +<p style="padding: 10px;border:1px solid grey;height:300px;font:10px/14px Georgia, Garamond, Serif;overflow:Auto;background-color:#FFFFFF">
 +<code>#!/bin/sh
 +switch_utility CfgSet 3 1 1536 0 00:00:00:00:00:00
 +
 +#==============================================MAC SPOOFING
 +
 +#======================================================
 +CPU_PORT="6"
 +DSL_VPORT="11"
 +DSL_XOAVPORT="10"
 +
 +COMMON_VID="50"
 +WAN_VID="40"
 +LAN_VID="30"
 +
 +LAN_PORT_VID1="0x5"
 +LAN_PORT_VID2="0x4"
 +LAN_PORT_VID3="0x3"
 +LAN_PORT_VID4="0x2"
 +
 +LAN_PORT_PVID1="0x805"
 +LAN_PORT_PVID2="0x804"
 +LAN_PORT_PVID3="0x803"
 +LAN_PORT_PVID4="0x802"
 +
 +LAN_PORT1="5"
 +LAN_PORT2="0"
 +LAN_PORT3="2"
 +LAN_PORT4="4"
 +LAN_PORT7="7"
 +LAN_PORT8="8"
 +LAN_PORT9="9"
 +
 +ETH_LAN_FID="2"
 +
 +#========= Default MAC port lock is Disable on all port========
 +
 +#================Create Vlan ID for Common, WAN, LAN group================================
 +switch_utility VLAN_IdCreate $COMMON_VID 0
 +switch_utility VLAN_IdCreate $WAN_VID 1
 +switch_utility VLAN_IdCreate $LAN_VID 0
 +
 +for port_vid in $LAN_PORT_VID1 $LAN_PORT_VID2 $LAN_PORT_VID3 $LAN_PORT_VID4;do
 + switch_utility VLAN_IdCreate $port_vid $ETH_LAN_FID
 + switch_utility VLAN_PortMemberAdd $port_vid $CPU_PORT 0
 +done
 +
 +switch_utility VLAN_PortMemberAdd $LAN_PORT_VID1 $LAN_PORT1 0
 +switch_utility VLAN_PortMemberAdd $LAN_PORT_VID2 $LAN_PORT2 0
 +switch_utility VLAN_PortMemberAdd $LAN_PORT_VID3 $LAN_PORT3 0
 +switch_utility VLAN_PortMemberAdd $LAN_PORT_VID4 $LAN_PORT4 0
 +
 +for port_vid in $LAN_PORT_PVID1 $LAN_PORT_PVID2 $LAN_PORT_PVID3 $LAN_PORT_PVID4;do
 + switch_utility VLAN_IdCreate $port_vid $ETH_LAN_FID
 + switch_utility VLAN_PortMemberAdd $port_vid $LAN_PORT1 0
 + switch_utility VLAN_PortMemberAdd $port_vid $LAN_PORT2 0
 + switch_utility VLAN_PortMemberAdd $port_vid $LAN_PORT3 0
 + switch_utility VLAN_PortMemberAdd $port_vid $LAN_PORT4 0
 + switch_utility VLAN_PortMemberAdd $port_vid $CPU_PORT 1
 +done
 +     
 +#===============Turn on TVM on ALL VPORT===================================
 +for argument in $LAN_PORT1 $LAN_PORT2 $LAN_PORT3 $LAN_PORT4 $LAN_PORT7 $LAN_PORT8 $LAN_PORT9 ;do
 + switch_utility VLAN_PortCfgSet $argument $LAN_VID 0 0 3 0 1
 +done
 +
 +switch_utility VLAN_PortCfgSet $DSL_VPORT $WAN_VID 0 0 3 0 1
 +switch_utility VLAN_PortCfgSet $DSL_XOAVPORT $WAN_VID 0 0 3 0 1
 +switch_utility VLAN_PortCfgSet $CPU_PORT $COMMON_VID 0 0 3 0 1
 +           
 +##===============All Ports need add to VlanID 50 group ==============================
 +for argument in $LAN_PORT1 $LAN_PORT2 $LAN_PORT3 $LAN_PORT4 $LAN_PORT7 $LAN_PORT8 $LAN_PORT9 $CPU_PORT $DSL_VPORT $DSL_XOAVPORT;do
 + switch_utility VLAN_PortMemberAdd $COMMON_VID $argument 0
 +done
 +                   
 +for argument in $CPU_PORT $DSL_VPORT $DSL_XOAVPORT;do
 + switch_utility VLAN_PortMemberAdd $WAN_VID $argument 0
 +done
 +
 +for argument in $CPU_PORT $LAN_PORT1 $LAN_PORT2 $LAN_PORT3 $LAN_PORT4 $LAN_PORT7 $LAN_PORT8 $LAN_PORT9;do
 + switch_utility VLAN_PortMemberAdd $LAN_VID $argument 0
 +done
 +
 +#======================Add mac for pppoa===============================
 +switch_utility MAC_TableEntryAdd 1 $CPU_PORT 0 1 00:00:00:00:00:00
 +
 +#======================Add mac for ipoa================================
 +switch_utility MAC_TableEntryAdd 1 $CPU_PORT 0 1 00:00:00:00:00:20
 +
 +#======================enable flow control=============================
 +switch_utility MDIO_DataWrite 0x0 0x4 0x5e1
 +switch_utility MDIO_DataWrite 0x5 0x4 0x5e1
 +switch_utility MDIO_DataWrite 0x11 0x4 0x5e1
 +switch_utility MDIO_DataWrite 0x13 0x4 0x5e1
 +
 +switch_utility QOS_WredQueueCfgSet 0 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff
 +switch_utility QOS_WredQueueCfgSet 1 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff
 +switch_utility QOS_WredQueueCfgSet 2 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff
 +switch_utility QOS_WredQueueCfgSet 3 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff
 +switch_utility QOS_WredQueueCfgSet 4 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff
 +switch_utility QOS_WredQueueCfgSet 5 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff
 +switch_utility QOS_WredQueueCfgSet 6 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff
 +switch_utility QOS_WredQueueCfgSet 7 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff
 +switch_utility QOS_WredQueueCfgSet 8 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff
 +switch_utility QOS_WredQueueCfgSet 9 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff
 +switch_utility QOS_WredQueueCfgSet 10 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff
 +switch_utility QOS_WredQueueCfgSet 11 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff
 +switch_utility QOS_WredQueueCfgSet 12 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff
 +switch_utility QOS_WredQueueCfgSet 13 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff
 +switch_utility QOS_WredQueueCfgSet 14 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff
 +switch_utility QOS_WredQueueCfgSet 15 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff
 +switch_utility QOS_WredQueueCfgSet 16 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff
 +switch_utility QOS_WredQueueCfgSet 17 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff
 +switch_utility QOS_WredQueueCfgSet 18 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff
 +switch_utility QOS_WredQueueCfgSet 19 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff
 +switch_utility QOS_WredQueueCfgSet 20 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff
 +switch_utility QOS_WredQueueCfgSet 21 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff
 +switch_utility QOS_WredQueueCfgSet 22 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff
 +switch_utility QOS_WredQueueCfgSet 23 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff
 +switch_utility QOS_WredQueueCfgSet 24 0x50 0x50 0x50 0x50 0x50 0x50
 +switch_utility QOS_WredQueueCfgSet 25 0x50 0x50 0x50 0x50 0x50 0x50
 +switch_utility QOS_WredQueueCfgSet 26 0x50 0x50 0x50 0x50 0x50 0x50
 +switch_utility QOS_WredQueueCfgSet 27 0x50 0x50 0x50 0x50 0x50 0x50
 +switch_utility QOS_WredQueueCfgSet 28 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff
 +switch_utility QOS_WredQueueCfgSet 29 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff
 +switch_utility QOS_WredQueueCfgSet 30 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff
 +switch_utility QOS_WredQueueCfgSet 31 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff
 +
 +switch_utility RegisterSet 0x4a 0x118
 +
 +#==============================for traffic=============================
 +switch_utility RegisterSet 0x904 0x0B
 +switch_utility RegisterSet 0x910 0x0B
 +switch_utility RegisterSet 0x91c 0x0B
 +switch_utility RegisterSet 0x928 0x0B
 +switch_utility RegisterSet 0x934 0x0B
 +switch_utility RegisterSet 0x940 0x0B</code>
 +</p>
 +</HTML>
 +=== eth_wan_setting.sh ===
 +<HTML>
 +<p style="padding: 10px;border:1px solid grey;height:300px;font:10px/14px Georgia, Garamond, Serif;overflow:Auto;background-color:#FFFFFF">
 +<code>#!/bin/sh
 +
 +switch_utility RegisterSet 0xCCD 0x10
 +
 +switch_utility CfgSet 3 1 1536 0 00:00:00:00:00:00
 +
 +CPU_PORT="6"
 +WAN_PORT="4"
 +
 +COMMON_VID="50"
 +WAN_VID="40"
 +LAN_VID="30"
 +
 +LAN_PORT_VID1="0x5"
 +LAN_PORT_VID2="0x4"
 +LAN_PORT_VID3="0x3"
 +
 +LAN_PORT_PVID1="0x805"
 +LAN_PORT_PVID2="0x804"
 +LAN_PORT_PVID3="0x803"
 +
 +LAN_PORT1="5"
 +LAN_PORT2="0"
 +LAN_PORT3="2"
 +LAN_PORT7="7"
 +LAN_PORT8="8"
 +LAN_PORT9="9"
 +
 +ETH_LAN_FID="2"
 +
 +#================Create Vlan ID for Common, WAN, LAN group================================
 +switch_utility VLAN_IdCreate $COMMON_VID 0
 +switch_utility VLAN_IdCreate $WAN_VID 1
 +switch_utility VLAN_IdCreate $LAN_VID 0
 +
 +for port_vid in $LAN_PORT_VID1 $LAN_PORT_VID2 $LAN_PORT_VID3;do
 + switch_utility VLAN_IdCreate $port_vid $ETH_LAN_FID
 + switch_utility VLAN_PortMemberAdd $port_vid $CPU_PORT 0
 +done
 +
 +switch_utility VLAN_PortMemberAdd $LAN_PORT_VID1 $LAN_PORT1 0
 +switch_utility VLAN_PortMemberAdd $LAN_PORT_VID2 $LAN_PORT2 0
 +switch_utility VLAN_PortMemberAdd $LAN_PORT_VID3 $LAN_PORT3 0
 +
 +for port_vid in $LAN_PORT_PVID1 $LAN_PORT_PVID2 $LAN_PORT_PVID3;do
 + switch_utility VLAN_IdCreate $port_vid $ETH_LAN_FID
 + switch_utility VLAN_PortMemberAdd $port_vid $LAN_PORT1 0
 + switch_utility VLAN_PortMemberAdd $port_vid $LAN_PORT2 0
 + switch_utility VLAN_PortMemberAdd $port_vid $LAN_PORT3 0
 + switch_utility VLAN_PortMemberAdd $port_vid $CPU_PORT 1
 +done
 +
 +#===============Turn on TVM on ALL VPORT===================================
 +for argument in $LAN_PORT1 $LAN_PORT2 $LAN_PORT3 $LAN_PORT7 $LAN_PORT8 $LAN_PORT9;do
 + switch_utility VLAN_PortCfgSet $argument $LAN_VID 0 0 3 0 1
 +done
 +
 +switch_utility VLAN_PortCfgSet $WAN_PORT $WAN_VID 0 0 3 0 1
 +switch_utility VLAN_PortCfgSet $CPU_PORT $COMMON_VID 0 0 3 0 1
 +
 +##===============All Ports need add to VlanID 50 group ==============================
 +for argument in $LAN_PORT1 $LAN_PORT2 $LAN_PORT3 $LAN_PORT7 $LAN_PORT8 $LAN_PORT9 $CPU_PORT $WAN_PORT;do
 + switch_utility VLAN_PortMemberAdd $COMMON_VID $argument 0
 +done
 +
 +for argument in $CPU_PORT $WAN_PORT;do
 + switch_utility VLAN_PortMemberAdd $WAN_VID $argument 0
 +done
 +
 +for argument in $CPU_PORT $LAN_PORT1 $LAN_PORT2 $LAN_PORT3 $LAN_PORT7 $LAN_PORT8 $LAN_PORT9;do
 + switch_utility VLAN_PortMemberAdd $LAN_VID $argument 0
 +done
 +
 +#======================enable flow control=============================
 +switch_utility MDIO_DataWrite 0x0 0x4 0x5e1
 +switch_utility MDIO_DataWrite 0x5 0x4 0x5e1
 +switch_utility MDIO_DataWrite 0x11 0x4 0x5e1
 +switch_utility MDIO_DataWrite 0x13 0x4 0x5e1
 +
 +switch_utility QOS_WredQueueCfgSet 0 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff
 +switch_utility QOS_WredQueueCfgSet 1 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff
 +switch_utility QOS_WredQueueCfgSet 2 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff
 +switch_utility QOS_WredQueueCfgSet 3 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff
 +switch_utility QOS_WredQueueCfgSet 4 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff
 +switch_utility QOS_WredQueueCfgSet 5 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff
 +switch_utility QOS_WredQueueCfgSet 6 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff
 +switch_utility QOS_WredQueueCfgSet 7 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff
 +switch_utility QOS_WredQueueCfgSet 8 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff
 +switch_utility QOS_WredQueueCfgSet 9 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff
 +switch_utility QOS_WredQueueCfgSet 10 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff
 +switch_utility QOS_WredQueueCfgSet 11 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff
 +switch_utility QOS_WredQueueCfgSet 12 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff
 +switch_utility QOS_WredQueueCfgSet 13 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff
 +switch_utility QOS_WredQueueCfgSet 14 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff
 +switch_utility QOS_WredQueueCfgSet 15 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff
 +switch_utility QOS_WredQueueCfgSet 16 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff
 +switch_utility QOS_WredQueueCfgSet 17 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff
 +switch_utility QOS_WredQueueCfgSet 18 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff
 +switch_utility QOS_WredQueueCfgSet 19 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff
 +switch_utility QOS_WredQueueCfgSet 20 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff
 +switch_utility QOS_WredQueueCfgSet 21 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff
 +switch_utility QOS_WredQueueCfgSet 22 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff
 +switch_utility QOS_WredQueueCfgSet 23 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff
 +switch_utility QOS_WredQueueCfgSet 24 0x50 0x50 0x50 0x50 0x50 0x50
 +switch_utility QOS_WredQueueCfgSet 25 0x50 0x50 0x50 0x50 0x50 0x50
 +switch_utility QOS_WredQueueCfgSet 26 0x50 0x50 0x50 0x50 0x50 0x50
 +switch_utility QOS_WredQueueCfgSet 27 0x50 0x50 0x50 0x50 0x50 0x50
 +switch_utility QOS_WredQueueCfgSet 28 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff
 +switch_utility QOS_WredQueueCfgSet 29 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff
 +switch_utility QOS_WredQueueCfgSet 30 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff
 +switch_utility QOS_WredQueueCfgSet 31 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff 0x3ff
 +
 +switch_utility RegisterSet 0x4a 0x118
 +
 +#==============================for traffic=============================
 +switch_utility RegisterSet 0x904 0x0B
 +switch_utility RegisterSet 0x910 0x0B
 +switch_utility RegisterSet 0x91c 0x0B
 +switch_utility RegisterSet 0x928 0x0B
 +switch_utility RegisterSet 0x934 0x0B
 +switch_utility RegisterSet 0x940 0x0B</code>
 +</p>
 +</HTML>
===== Debug Logs ===== ===== Debug Logs =====
Line 1357: Line 2874:
</p> </p>
</HTML> </HTML>
 +
 +===== Discussion =====
 +  * [[https://forum.openwrt.org/viewtopic.php?id=42380|forum.openwrt.org - Tp-Link td-w8970]]
 +  * [[https://forum.openwrt.org/viewtopic.php?id=32204&p=2|forum.openwrt.org - Vdsl2]]
 +  * [[http://translate.google.com/translate?hl=en&ie=UTF8&prev=_t&sl=pl&tl=en&u=http://openrouter.info/forum/viewtopic.php%3Ff%3D18%26t%3D2727|openrouter.info - TP-LINK TD-W8970]] (//translated//)
 +
 +===== Bugs =====
 +  * [[https://dev.openwrt.org/ticket/14413|ticket #14413 ltq-vdsl-app does not get included for xrx200 targets]] - //**fixed** by blogic//
 +  * [[https://dev.openwrt.org/ticket/14414|ticket #14414 w921v_fw_cutter Illegal instruction]] - //**fixed** by blogic//
 +  * [[https://dev.openwrt.org/ticket/14417|ticket #14417 TD-W8970 ramdisk does not boot]] - //**fixed** by blogic//
 +  * [[https://dev.openwrt.org/ticket/14433|ticket #14433 Bug mac address TD-8970v1]] - //**fixed** by blogic//
 +  * [[https://dev.openwrt.org/ticket/14436|ticket #14436 Double the router TD8970]] - //**fixed** by jow//
 +  * [[https://dev.openwrt.org/ticket/14439|ticket #14439 TD-W8970 full support]]
 +  * [[https://dev.openwrt.org/ticket/14451|ticket #14451 error in the script dsl_notify in the trunk modem TD-8970]]  //**fixed** by rpc//
 +  * [[https://dev.openwrt.org/ticket/14453|ticket #14453 lantiq ar9/vr9 insmod memory leak]]
 +  * [[https://dev.openwrt.org/ticket/14454|ticket #14454 TD-W8970 WiFi toggle button not working with hotplug.d]] - //**fixed** by blogic//
 +  * [[https://dev.openwrt.org/ticket/14455|ticket #14455 TD-W8970 ath9k WiFi LED not working]]
===== Tags ===== ===== Tags =====
{{tag>Lantiq VR9 MIPS MIPS32 34Kc GigabitEthernet 1NIC 1WNIC 4Port ADSL2+ VDSL2 USB 2USB JTAG Serial 802.11bgn ath9k 3Ant DetachableAntenna 64RAM 8Flash}} {{tag>Lantiq VR9 MIPS MIPS32 34Kc GigabitEthernet 1NIC 1WNIC 4Port ADSL2+ VDSL2 USB 2USB JTAG Serial 802.11bgn ath9k 3Ant DetachableAntenna 64RAM 8Flash}}

Back to top

toh/tp-link/td-w8970.1383680601.txt.bz2 · Last modified: 2013/11/05 20:43 by fld