User Tools

Site Tools


toh:tp-link:td-w8970

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
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}}
toh/tp-link/td-w8970.1383680601.txt.bz2 · Last modified: 2013/11/05 20:43 by fld