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/08/24 13:06] (current)
jininrage
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 [[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 43: Line 53:
| **[[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 69:
==== 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 84:
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 2861:
</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