Merge "sysctl: promote secondary ip addrs"
diff --git a/configs/gflt400_defconfig b/configs/gflt400_defconfig
index 855ad18..4c05307 100644
--- a/configs/gflt400_defconfig
+++ b/configs/gflt400_defconfig
@@ -77,6 +77,7 @@
BR2_PACKAGE_CATAWAMPUS=y
BR2_PACKAGE_MV_APP_PON_TYPE="GPON"
BR2_PACKAGE_MV_APP=y
+BR2_PACKAGE_DEK_TOOLS=y
BR2_TARGET_ROOTFS_INITRAMFS=y
BR2_TARGET_ROOTFS_GINSTALL=y
BR2_TARGET_ROOTFS_GINSTALL_LOADER_DIR="../loader-bin/marvell"
diff --git a/fs/skeleton/etc/init.d/network b/fs/skeleton/etc/init.d/network
index 3899412..b36a2da 100755
--- a/fs/skeleton/etc/init.d/network
+++ b/fs/skeleton/etc/init.d/network
@@ -229,6 +229,14 @@
for x in "$@"; do
[ -e "$x" ] || continue
+ # Wait for MAC address.
+ for i in $(seq 1 12); do
+ if [ "$(get_mac_address_for_interface "$x")" != 00:00:00:00:00:00 ]; then
+ break
+ fi
+ sleep 0.25
+ done
+
local x="${x#/sys/class/net/}"
echo "Adding interface $x..."
@@ -420,7 +428,7 @@
i=0
while true; do
if ! interface_exists wlan"$i"; then
- add_quantenna_interface "wlan$i" 3
+ echo "add wlan$i 3" >/sys/class/net/quantenna/vlan
break
fi
i=$((i+1))
diff --git a/fs/skeleton/etc/utils.sh b/fs/skeleton/etc/utils.sh
index 17470b1..e4f4b9c 100644
--- a/fs/skeleton/etc/utils.sh
+++ b/fs/skeleton/etc/utils.sh
@@ -265,18 +265,6 @@
[ -e "/sys/class/net/$1" ]
}
-add_quantenna_interface() {
- local interface=$1
- local vlan=$2
- echo "add $interface $vlan" >/sys/class/net/quantenna/vlan
- for i in `seq 12`; do
- if interface_exists "$interface"; then
- break
- fi
- sleep 0.25
- done
-}
-
is_quantenna_interface() {
# Check for "$1 " to prevent "wlanX" from matching "wlanX_portal".
filecontains "$1 " /sys/class/net/quantenna/vlan >/dev/null 2>&1
diff --git a/fs/skeleton/sbin/hotplug b/fs/skeleton/sbin/hotplug
index 7cec68c..dbb0da8 100755
--- a/fs/skeleton/sbin/hotplug
+++ b/fs/skeleton/sbin/hotplug
@@ -18,7 +18,7 @@
local client_interface=$(echo "$interface" | sed s/^wlan/wcli/)
if ! interface_exists "$client_interface"; then
if is_quantenna_interface "$interface"; then
- add_quantenna_interface "$client_interface" 2
+ echo "add $client_interface 2" >/sys/class/net/quantenna/vlan
mac=$(get_locally_administered_mac_addr "$mac")
else
local phy=$(find_phy_for_interface "$interface")
@@ -76,7 +76,7 @@
if ! interface_exists "$secondary_interface"; then
if is_quantenna_interface "$interface"; then
- add_quantenna_interface "$secondary_interface" 4
+ echo "add $secondary_interface 4" >/sys/class/net/quantenna/vlan
mac=$(get_locally_administered_mac_addr "$mac")
else
local phy=$(find_phy_for_interface "$interface")
diff --git a/package/Config.in b/package/Config.in
index 1cbc98b..95885db 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -704,6 +704,7 @@
source "package/mv_physdk/Config.in"
source "package/mv_app/Config.in"
source "package/mv_cpss/Config.in"
+source "package/dek_tools/Config.in"
endmenu
menu "Quantenna custom build"
diff --git a/package/dek_tools/Config.in b/package/dek_tools/Config.in
new file mode 100644
index 0000000..cddc54a
--- /dev/null
+++ b/package/dek_tools/Config.in
@@ -0,0 +1,4 @@
+config BR2_PACKAGE_DEK_TOOLS
+ bool "dek_tools"
+ help
+ Adds Marvell's Device Embedding Kit applications
diff --git a/package/dek_tools/dek_tools.mk b/package/dek_tools/dek_tools.mk
new file mode 100644
index 0000000..0b7674b
--- /dev/null
+++ b/package/dek_tools/dek_tools.mk
@@ -0,0 +1,17 @@
+DEK_TOOLS_SITE=repo://vendor/marvell/dek-tools
+
+define DEK_TOOLS_CLEAN_CMDS
+ $(TARGET_MAKE_ENV) $(MAKE) TARGET=buildroot CC=$(TARGET_CROSS)gcc \
+ AR=$(TARGET_CROSS)ar -C $(@D) clean
+endef
+
+define DEK_TOOLS_BUILD_CMDS
+ $(TARGET_MAKE_ENV) $(MAKE1) TARGET=buildroot CC=$(TARGET_CROSS)gcc \
+ AR=$(TARGET_CROSS)ar -C $(@D)
+endef
+
+define DEK_TOOLS_INSTALL_TARGET_CMDS
+ $(INSTALL) -m 0755 -D $(@D)/apps/* $(TARGET_DIR)/usr/bin/
+endef
+
+$(eval $(call GENTARGETS))
diff --git a/package/mv_app/mv_app.mk b/package/mv_app/mv_app.mk
index 1dca45f..551188a 100644
--- a/package/mv_app/mv_app.mk
+++ b/package/mv_app/mv_app.mk
@@ -20,7 +20,15 @@
cp -f $(@D)/tools/omci_tool $(TARGET_DIR)/usr/bin/; \
fi
mkdir -p $(TARGET_DIR)/etc/xml_params
- cp -fpP package/mv_app/xml_params/* $(TARGET_DIR)/etc/xml_params/
+
+ # Copy over shared XML files
+ cp -fpP package/mv_app/xml_params/*.xml $(TARGET_DIR)/etc/xml_params/
+
+ # Copy over platform specific XML files
+ cp -fpP package/mv_app/xml_params/onu_profile_xml_cfg_file.xml.$(BR2_TARGET_GENERIC_PLATFORM_NAME) $(TARGET_DIR)/etc/xml_params/onu_profile_xml_cfg_file.xml
+ cp -fpP package/mv_app/xml_params/tpm_xml_cfg_file_epon.xml.$(BR2_TARGET_GENERIC_PLATFORM_NAME) $(TARGET_DIR)/etc/xml_params/tpm_xml_cfg_file_epon.xml
+ cp -fpP package/mv_app/xml_params/tpm_xml_cfg_file_gpon.xml.$(BR2_TARGET_GENERIC_PLATFORM_NAME) $(TARGET_DIR)/etc/xml_params/tpm_xml_cfg_file_gpon.xml
+
endef
$(eval $(call GENTARGETS))
diff --git a/package/mv_app/xml_params/onu_profile_xml_cfg_file.xml b/package/mv_app/xml_params/onu_profile_xml_cfg_file.xml.gflt110
similarity index 100%
rename from package/mv_app/xml_params/onu_profile_xml_cfg_file.xml
rename to package/mv_app/xml_params/onu_profile_xml_cfg_file.xml.gflt110
diff --git a/package/mv_app/xml_params/onu_profile_xml_cfg_file.xml.gflt400 b/package/mv_app/xml_params/onu_profile_xml_cfg_file.xml.gflt400
new file mode 100644
index 0000000..b33d7ee
--- /dev/null
+++ b/package/mv_app/xml_params/onu_profile_xml_cfg_file.xml.gflt400
@@ -0,0 +1,214 @@
+<?xml version="1.0"?>
+<cnfg>
+ <Vendor>
+ <!--ONU vendor ID: STRING(4). -->
+ <attrib name="ONU vendor ID" value="MRVL" />
+
+ <!--ONU vendor OUI: ARRAY(3). -->
+ <attrib name="ONU vendor OUI" value="0x005043" />
+
+ <!--ONU vendor name: STRING(64). -->
+ <attrib name="ONU vendor name" value="Marvell" />
+
+ <!--Model for eOAM: STRING(4). -->
+ <attrib name="Model for eOAM" value="6601" />
+
+ <!--Model for OMCI: STRING(20). -->
+ <attrib name="Model for OMCI" value="MRVL" />
+
+ <!--Model for TR-069: STRING(64). -->
+ <attrib name="Model for TR-069" value="MRVL" />
+
+ <!--ONU product code: ARRAY(2). -->
+ <attrib name="ONU product code" value="0x0201" />
+
+ <!--ONU product class: STRING(64). -->
+ <attrib name="ONU product class" value="Marvell AVANTA 88F6500" />
+
+ <!--HW version: STRING(64). -->
+ <attrib name="HW version" value="AVANTA A0" />
+
+ <!--SW version: STRING(64). -->
+ <attrib name="SW version" value="2.7.25" />
+
+ <!--Addtional HW version: STRING(64). -->
+ <attrib name="Addtional HW version" value="0" />
+
+ <!--Addtional SW version: STRING(64). -->
+ <attrib name="Addtional SW version" value="16" />
+
+ <!--Device description: STRING(256). -->
+ <attrib name="Device description" value="MARVELL AVANTA UPON device" />
+
+ <!--Firmware version: ARRAY(16). -->
+ <attrib name="Firmware version" value="0x00000001" />
+
+ <!--Chip vendor ID: ARRAY(2). -->
+ <attrib name="Chip vendor ID" value="0x03e9" />
+
+ <!--Chip model: ARRAY(2). -->
+ <attrib name="Chip model" value="0x6601" />
+
+ <!--Chip revision: BYTE(1). -->
+ <attrib name="Chip revision" value="0x02" />
+
+ <!--Chip version: ARRAY(3). -->
+ <attrib name="Chip version" value="0x000001" />
+
+ <!--Operator ID: STRING(4). -->
+ <attrib name="Operator ID" value="CTC" />
+ </Vendor>
+
+ <Capability>
+ <!--ONU type: UINT32. -->
+ <!--0:SFU, 1:HGU, 2:SBU, 3:CBU, 4:MDU, 5:MTU, 6:1FE+1POTS SFU, 7:Mixed HGU -->
+ <attrib name="ONU type" value="0" />
+
+ <!-- 1=MV_PON_WAN_DUAL_MAC_INT_SWITCH 2=MV_PON_WAN_G0_INT_SWITCH 3=MV_PON_WAN_G1_LAN_G0_INT_SWITCH 4=MV_G0_WAN_G1_INT_SWITCH
+ 5=MV_G1_WAN_G0_INT_SWITCH 6=MV_PON_G1_WAN_G0_INT_SWITCH 7=MV_PON_G0_WAN_G1_INT_SWITCH 8=MV_PON_WAN_DUAL_MAC_EXT_SWITCH
+ 9=MV_PON_WAN_G1_MNG_EXT_SWITCH 10=MV_PON_WAN_G0_SINGLE_PORT 11=MV_PON_WAN_G1_SINGLE_PORT 12=MV_PON_G1_WAN_G0_SINGLE_PORT
+ 13=MV_PON_G0_WAN_G1_SINGLE_PORT 14=MV_PON_WAN_G0_G1_LPBK 15=MV_PON_WAN_G0_G1_DUAL_LAN 16=MV_PON_WAN_G0_SINGLE_PORT_SGMII
+ 17=MV_PON_G1_SGMII_WAN_G0_SINGLE_PORT -->
+ <attrib name="Complex profile" value="17" />
+
+ <!-- active_wan 0=GMAC0 1=GMAC1 2=PMAC -->
+ <attrib name="Active wan" value="1" />
+
+ <!-- switch port to appliacation port(start from 1) mapping -->
+ <attrib name="Switch port 0" value="1" />
+ <attrib name="Switch port 1" value="2" />
+ <attrib name="Switch port 2" value="3" />
+ <attrib name="Switch port 3" value="4" />
+
+ <!--Voice management method: BYTE. -->
+ <!--0:TR-069, 1:eOAM/OMCI, 2:Proprietary. -->
+ <attrib name="Voice management method" value="1" />
+
+ <!--PON port number: BYTE. -->
+ <attrib name="PON port number" value="1" />
+
+ <!--GE Ethernet port number: BYTE. -->
+ <attrib name="GE Ethernet port number" value="1" />
+
+ <!--FE Ethernet port number: BYTE. -->
+ <attrib name="FE Ethernet port number" value="0" />
+
+ <!--POTS port number: BYTE. -->
+ <attrib name="POTS port number" value="2" />
+
+ <!--WIFI port number: BYTE. -->
+ <attrib name="WIFI port number" value="0" />
+
+ <!--USB port number: BYTE. -->
+ <attrib name="USB port number" value="0" />
+
+ <!--E1 port number: BYTE. -->
+ <attrib name="E1 port number" value="0" />
+
+ <!--ADSL port number: BYTE. -->
+ <attrib name="ADSL port number" value="0" />
+
+ <!--VDSL port number: BYTE. -->
+ <attrib name="VDSL port number" value="0" />
+
+ <!--CATV port number: BYTE. -->
+ <attrib name="CATV port number" value="0" />
+
+ <!--GE Ethernet port bitmap: UINT32. -->
+ <attrib name="GE Ethernet port bitmap" value="0x01" />
+
+ <!--FE Ethernet port bitmap: UINT32. -->
+ <attrib name="FE Ethernet port bitmap" value="0x00" />
+
+ <!--Maximum upstream queue per port: UINT32. -->
+ <attrib name="Maximum upstream queue per port" value="4" />
+
+ <!--Maximum downstream queue per port: UINT32. -->
+ <attrib name="Maximum downstream queue per port" value="4" />
+
+ <!--Maximum queue per T-CONT: UINT32. -->
+ <attrib name="Maximum queue per T-CONT" value="4" />
+
+ <!--Maximum queue per GEM MAC port: UINT32. -->
+ <attrib name="Maximum queue per GEM MAC port" value="4" />
+
+ <!--ONU pluggable capability: BYTE. -->
+ <!--0: unpluggable, 1: pluggable -->
+ <attrib name="ONU pluggable capability" value="0" />
+
+ <!--Total slot number: BYTE. -->
+ <attrib name="Total slot number" value="1" />
+
+ <!--Total T-CONT number: BYTE. -->
+ <attrib name="Total T-CONT number" value="8" />
+
+ <!--Total LLID number: BYTE. -->
+ <attrib name="Total LLID number" value="1" />
+
+ <!--Total GEM port number: UINT32. -->
+ <attrib name="Total GEM port number" value="256" />
+
+ <!--ONU protect type: BYTE. -->
+ <!--0: no protection support, 1: support type C link protection, 2: support type D link protection -->
+ <attrib name="ONU protect type" value="1" />
+
+ <!--IPv6 support capability: BYTE. -->
+ <!--0: do not support IPv6, 1: support IPv6 -->
+ <attrib name="IPv6 support capability" value="0" />
+
+ <!--Power control support capability: BYTE. -->
+ <!--0��don't support ONU power supply control
+ 1��Support ONU Tx power supply control only.
+ 2��Support both Tx and Rx power supply control.-->
+ <attrib name="Power control support capability" value="2" />
+
+ <!--SLA support capability: BYTE. -->
+ <!--1��don't support Service SLA��
+ 2-8��Support Service SLA function��
+ The value indicates the number of services the ONU supported. -->
+ <attrib name="SLA support capability" value="4" />
+
+ <!--Sleep mode support capability: BYTE. -->
+ <!--0:neither Tx nor Rx supported, 1:only Tx supported
+ 2:only Rx supported, 3:both Tx and Rx supported -->
+ <attrib name="Sleep mode support capability" value="3" />
+
+ <!--Wakeup support capability: BYTE. -->
+ <!--0: early wake-up is supported, 1: early wake-up is not supported-->
+ <attrib name="Wakeup support capability" value="1" />
+
+ <!--Traffic management option: BYTE. -->
+ <!--0:Priority controlled and flexibly scheduled upstream traffic.
+ 1:Rate controlled upstream traffic.
+ 2:Priority and rate controlled -->
+ <attrib name="Traffic management option" value="2" />
+
+ <!--Battery backup support capability: BYTE. -->
+ <!--0: do not support battery backup, 1: support battery backup -->
+ <attrib name="Battery backup support capability" value="0" />
+
+ <!--Downstream multicast channel: UINT32. -->
+ <!--0: from multicast mac address channel, 1: from multicast gemport channel-->
+ <attrib name="Downstream multicast channel" value="1" />
+
+ <!--IGMPV1 messages discard: UINT32. -->
+ <!--0: forward igmpv1 messages, 1: discard igmpv1 messages-->
+ <attrib name="IGMPV1 messages discard" value="1" />
+ </Capability>
+
+ <Queue>
+ <!-- id : GMAC number, 0:GMAC0, 2:T-CONT0, 3:T-CONT1, ...9:T-CONT7, currently does not support GMAC1 -->
+ <!-- v_q_num : Total virtual queue number in each T-CONT -->
+ <!-- hwf_q_map : Virtual queue to real HWF queue mapping list, Example:0=7 means virtual 0 map to HWF queue 7,should be accordant with TPM XML -->
+ <!-- swf_q_map : Virtual queue to real SWF queue mapping list, Example:0=7 means virtual 0 map to SWF queue 6,should be accordant with TPM XML -->
+ <gmac id="0" v_q_num="4" hwf_q_map="0=1,1=3,2=5,3=7", swf_q_map="0=0,1=2,2=4,3=6" />
+ <gmac id="2" v_q_num="4" hwf_q_map="0=1,1=3,2=5,3=7", swf_q_map="0=0,1=2,2=4,3=6" />
+ <gmac id="3" v_q_num="4" hwf_q_map="0=1,1=3,2=5,3=7", swf_q_map="0=0,1=2,2=4,3=6" />
+ <gmac id="4" v_q_num="4" hwf_q_map="0=1,1=3,2=5,3=7", swf_q_map="0=0,1=2,2=4,3=6" />
+ <gmac id="5" v_q_num="4" hwf_q_map="0=1,1=3,2=5,3=7", swf_q_map="0=0,1=2,2=4,3=6" />
+ <gmac id="6" v_q_num="4" hwf_q_map="0=1,1=3,2=5,3=7", swf_q_map="0=0,1=2,2=4,3=6" />
+ <gmac id="7" v_q_num="4" hwf_q_map="0=1,1=3,2=5,3=7", swf_q_map="0=0,1=2,2=4,3=6" />
+ <gmac id="8" v_q_num="4" hwf_q_map="0=1,1=3,2=5,3=7", swf_q_map="0=0,1=2,2=4,3=6" />
+ <gmac id="9" v_q_num="4" hwf_q_map="0=1,1=3,2=5,3=7", swf_q_map="0=0,1=2,2=4,3=6" />
+ </Queue Mapping>
+</cnfg>
diff --git a/package/mv_app/xml_params/tpm_xml_cfg_file_epon.xml b/package/mv_app/xml_params/tpm_xml_cfg_file_epon.xml.gflt110
similarity index 100%
rename from package/mv_app/xml_params/tpm_xml_cfg_file_epon.xml
rename to package/mv_app/xml_params/tpm_xml_cfg_file_epon.xml.gflt110
diff --git a/package/mv_app/xml_params/tpm_xml_cfg_file_epon.xml.gflt400 b/package/mv_app/xml_params/tpm_xml_cfg_file_epon.xml.gflt400
new file mode 100644
index 0000000..a5133b4
--- /dev/null
+++ b/package/mv_app/xml_params/tpm_xml_cfg_file_epon.xml.gflt400
@@ -0,0 +1,460 @@
+<?xml version="1.0"?>
+<cnfg>
+ <eth_complex_config>
+ <!-- 1=TPM_PON_WAN_DUAL_MAC_INT_SWITCH 2=TPM_PON_WAN_G0_INT_SWITCH 3=TPM_PON_WAN_G1_LAN_G0_INT_SWITCH 4=TPM_G0_WAN_G1_INT_SWITCH
+ 5=TPM_G1_WAN_G0_INT_SWITCH 6=TPM_PON_G1_WAN_G0_INT_SWITCH 7=TPM_PON_G0_WAN_G1_INT_SWITCH 8=TPM_PON_WAN_DUAL_MAC_EXT_SWITCH
+ 9=TPM_PON_WAN_G1_MNG_EXT_SWITCH 10=TPM_PON_WAN_G0_SINGLE_PORT 11=TPM_PON_WAN_G1_SINGLE_PORT 12=TPM_PON_G1_WAN_G0_SINGLE_PORT
+ 13=TPM_PON_G0_WAN_G1_SINGLE_PORT 14=TPM_PON_WAN_G0_G1_LPBK 15=TPM_PON_WAN_G0_G1_DUAL_LAN 16=TPM_PON_WAN_G0_SINGLE_PORT_SGMII
+ 17=TPM_PON_G1_SGMII_WAN_G0_SINGLE_PORT
+ -->
+ <profile>17</profile>
+ <!-- src 0) TPM_SRC_PORT_UNI_0
+ 1) TPM_SRC_PORT_UNI_1
+ ...
+ 7) TPM_SRC_PORT_UNI7 -->
+ <switch_ports>
+ <port id="0" src_port="0"/>
+ <port id="1" src_port="1"/>
+ <port id="2" src_port="2"/>
+ <port id="3" src_port="3"/>
+ </switch_ports>
+ <gmac_ports>
+ <port id="0" src_port="0"/>
+ </gmac_ports>
+ <!-- active_wan 0=TPM_ENUM_GMAC_0 1=TPM_ENUM_GMAC_1 2=TPM_ENUM_PMAC -->
+ <active_wan>1</active_wan>
+ </eth_complex_config>
+
+ <traffic_setting>
+ <!-- pppoe_add_enable: 0 = disable, 1 = enable
+ Indicates system can be required to insert pppoe_header in upstream for routed/napt traffic.-->
+ <pppoe_add_enable>1</pppoe_add_enable>
+
+ <!-- Maximum required number of Vlan Tags.
+ Influences the modification chain_size and the max. mru -->
+ <num_vlan_tags>2</num_vlan_tags>
+ <!-- Action for packets with illegal TTL -->
+ <!-- 0 = no action, 1 = drop, 2 = trap to CPU -->
+ <ttl_illegal_action>2</ttl_illegal_action>
+ <!-- Check TCP FIN & RES flags, to trap 5-tuples w/ these flags raised to CPU -->
+ <!-- 0 = do not check, 1 = check -->
+ <tcp_flag_check>1</tcp_flag_check>
+ <!-- CPU Rx Queue for all trapped packets (trapped due to packet TTL , TCP flags, ) -->
+ <cpu_trap_rx_queue>0</cpu_trap_rx_queue>
+ <!-- Put Switch Port connected to packet Processor in EtherType_DSA_Tag mode -->
+ <ety_dsa_enable>0</ety_dsa_enable>
+ </traffic_setting>
+
+ <mtu_setting>
+ <!-- mtu_setting_enabled: 0 = disable, 1 = enable
+ Indicates if Layer3 Hardware_forward packets that are (> MTU) must be trapped to CPU -->
+ <mtu_setting_enabled>0</mtu_setting_enabled>
+ <!-- In EPON US, the max packet size PON MAC can handle is 1593 -->
+ <!-- IPv4oE downstream mtu -->
+ <ipv4_mtu_ds>1570</ipv4_mtu_ds>
+ <!-- IPv4oE upstream mtu
+ MTU=1593-DA(6)-SA(6)-2*VLAN(4)-ETY(2) -->
+ <ipv4_mtu_us>1570</ipv4_mtu_us>
+ <!-- IPv4oPPPoE upstream mtu (for routed/napt traffic w/ pppoe_hdr insertion), also dependent on <pppoe_add_enable> -->
+ <!-- MTU=1593-DA(6)-SA(6)-2*VLAN(4)-ETY(2)-PPPoE HEADER(8) -->
+ <ipv4_pppoe_mtu_us>1562</ipv4_pppoe_mtu_us>
+ </mtu_setting>
+
+
+ <igmp_snoop>
+ <!-- Snooping enabled: 0 = FALSE, 1 = TRUE
+ When set to TRUE, the igmp_range must be created, and the following params determine igmp behavior -->
+ <enabled>1</enabled>
+ <!-- CPU rx queue for trapped IGMP packets: 0 -7 -->
+ <igmp_cpu_rx_queue>7</igmp_cpu_rx_queue>
+ <!-- Per UNI IGMP packet forwarding mode :
+ 0 = drop, 1 = forward, 2= snoop -->
+ <igmp_frwrd_mode_wan>2</igmp_frwrd_mode_wan>
+ <igmp_frwrd_mode_uni0>2</igmp_frwrd_mode_uni0>
+ <igmp_frwrd_mode_uni1>2</igmp_frwrd_mode_uni1>
+ <igmp_frwrd_mode_uni2>2</igmp_frwrd_mode_uni2>
+ <igmp_frwrd_mode_uni3>2</igmp_frwrd_mode_uni3>
+ <igmp_frwrd_mode_uni4>2</igmp_frwrd_mode_uni4>
+ </igmp_snoop>
+
+ <multicast>
+ <!-- Multicast over PPPoE allowed: (0 = FALSE, 1 = TRUE) -->
+ <mc_pppoe_enable>1</mc_pppoe_enable>
+ <!-- Per UNI Vlan translation: 0 = no_per_uni_translation, 1 = per_uni_translation
+ when this feature is enabled, range size of TPM_PNC_VIRT_UNI must be increased by 4 -->
+ <mc_per_uni_vlan_xlat>0</mc_per_uni_vlan_xlat>
+ <!-- Multicast per uni vlan xlat support for IPv4/6: 0 = no support, 1 = support -->
+ <ipv4_mc_support>1</ipv4_mc_support>
+ <ipv6_mc_support>1</ipv6_mc_support>
+ <!-- Multicast filtering mode -->
+ <!-- 0 = Forward all Multicast traffic to CPU
+ 1 = Multicast traffic is forwarded to the Internal Switch, where it is filtered based on MAC_DA.
+ 2 = Multicast traffic is filtered in packet processor according to (vid, dip, sip).
+ The stream specific target uni_port(s) are determined in Internal Switch based on MAC_DA
+ 3 = Multicast traffic is forwarded exclusively by (vid, dip, sip) including setting the target uni_ports -->
+ <mc_filter_mode>3</mc_filter_mode>
+ <!-- Multicast hwf queue: Set to highest txq of GMAC0, whose owner is PMAC. -->
+ <mc_hwf_queue>7</mc_hwf_queue>
+ <!-- Multicast cpu queue: Set to highest PMAC rx queue -->
+ <mc_cpu_queue>7</mc_cpu_queue>
+ </multicast>
+
+ <port_init>
+ <gmac_config>
+ <pon_config>
+ <!-- Max. number of configured TCONTs(GPON), LLIDs(EPON) -->
+ <num_tcont_llid>1</num_tcont_llid>
+ </pon_config>
+
+ <gmac_mh_en>
+ <!-- GMAC Marvell_Header configuration - GMAC adds 2B Marvell header at beginning of packet
+ mh_enabled 0 = FALSE, 1 = TRUE, 2 = AUTO (enabled if connected to Switch) -->
+ <gmac0_mh_en>0</gmac0_mh_en>
+ <gmac1_mh_en>0</gmac1_mh_en>
+ </gmac_mh_en>
+
+ <gmac_bm_buffers>
+ <!-- BM pool buffers per MAC -->
+ <!-- id=0 (GMAC0), id=1(GMAC1), id=2(PON_MAC) -->
+ <!-- Number of buffers for large packets must be ( >= 128) -->
+ <!-- Number of buffers for small packets must each be ( >= 128) -->
+
+ <!-- Undefined BM Pools will receive kernel default values -->
+ <!-- If interfaces are raised before TPM is initialized, the <gmac_bm_buffers> definitions will have no effect,
+ kernel default values are used instead. -->
+ <gmac id="0" large_pkt_pool_bufs="1024" small_pkt_pool_bufs="3072" />
+ <gmac id="1" large_pkt_pool_bufs="512" small_pkt_pool_bufs="2048" />
+ <gmac id="2" large_pkt_pool_bufs="512" small_pkt_pool_bufs="2048" />
+ </gmac_bm_buffers>
+
+ <gmac_rx_queues>
+ <!-- Rx queue sizes per MAC -->
+ <!-- id=0 (GMAC0), id=1(GMAC1), id=2(PON_MAC) -->
+ <!-- size must be >0 -->
+ <!-- Undefined queues will be set to size=0 in hardware -->
+
+ <!-- If interfaces are raised before TPM is initialized, the <gmac_rx_queues> definitions will have no effect,
+ kernel default values are used instead. -->
+
+ <gmac id="0">
+ <queue id="0" size="128"/>
+ <queue id="1" size="128"/>
+ <queue id="2" size="128"/>
+ <queue id="3" size="128"/>
+ <queue id="4" size="128"/>
+ <queue id="5" size="128"/>
+ <queue id="6" size="128"/>
+ <queue id="7" size="128"/>
+ </gmac>
+ <gmac id="1">
+ <queue id="0" size="128"/>
+ <queue id="1" size="128"/>
+ <queue id="2" size="128"/>
+ <queue id="3" size="128"/>
+ <queue id="4" size="128"/>
+ <queue id="5" size="128"/>
+ <queue id="6" size="128"/>
+ <queue id="7" size="128"/>
+ </gmac>
+ <gmac id="2">
+ <queue id="0" size="128"/>
+ <queue id="1" size="128"/>
+ <queue id="2" size="128"/>
+ <queue id="3" size="128"/>
+ <queue id="4" size="128"/>
+ <queue id="5" size="128"/>
+ <queue id="6" size="128"/>
+ <queue id="7" size="128"/>
+ </gmac>
+ </gmac_rx_queues>
+
+ </gmac_config>
+
+ <tx_module_parameters>
+ <!-- id : 0 = GMAC0, 1 = GMAC1, 2 = PMAC_0, 3 = PMAC_1, 4 = PMAC_2, 5 = PMAC_3, -->
+ <!-- : 6 = PMAC_4, 7 = PMAC_5, 8 = PMAC_6, 9 = PMAC_7 -->
+ <tx_mod id="0">
+ <!-- id : queue number -->
+ <!-- sched_method: 0 = STRICT, 1 = WRR -->
+ <!-- owner : 0 = CPU, 1 = GMAC0, 2 = GMAC1, 3 = PMAC -->
+ <!-- owner_q_num : owner queue number -->
+ <!-- size : queue size must be >0 -->
+ <!-- Undefined queues will not be created in hardware -->
+ <queue_map>
+ <queue id="0" sched_method="0" owner="0" owner_q_num="0" size="0256" weight="0" />
+ <queue id="1" sched_method="0" owner="3" owner_q_num="0" size="0256" weight="0" />
+ <queue id="2" sched_method="0" owner="0" owner_q_num="1" size="0256" weight="0" />
+ <queue id="3" sched_method="0" owner="3" owner_q_num="1" size="0256" weight="0" />
+ <queue id="4" sched_method="0" owner="0" owner_q_num="2" size="0256" weight="0" />
+ <queue id="5" sched_method="0" owner="3" owner_q_num="2" size="0256" weight="0" />
+ <queue id="6" sched_method="0" owner="0" owner_q_num="3" size="0256" weight="0" />
+ <queue id="7" sched_method="0" owner="3" owner_q_num="3" size="0256" weight="0" />
+ </queue_map>
+ </tx_mod>
+ <!-- id : 0 = GMAC0, 1 = GMAC1, 2 = PMAC_0, 3 = PMAC_1, 4 = PMAC_2, 5 = PMAC_3, -->
+ <!-- : 6 = PMAC_4, 7 = PMAC_5, 8 = PMAC_6, 9 = PMAC_7 -->
+ <tx_mod id="1">
+ <!-- id : queue number -->
+ <!-- sched_method: 0 = STRICT, 1 = WRR -->
+ <!-- owner : 0 = CPU, 1 = GMAC0, 2 = GMAC1, 3 = PMAC -->
+ <!-- owner_q_num : owner queue number -->
+ <!-- size : queue size must be >0 -->
+ <!-- Undefined queues will not be created in hardware -->
+ <queue_map>
+ <queue id="0" sched_method="0" owner="0" owner_q_num="0" size="0064" weight="0" />
+ <queue id="1" sched_method="0" owner="1" owner_q_num="0" size="0256" weight="0" />
+ </queue_map>
+ </tx_mod>
+ <!-- id : 0 = GMAC0, 1 = GMAC1, 2 = PMAC_0, 3 = PMAC_1, 4 = PMAC_2, 5 = PMAC_3, -->
+ <!-- : 6 = PMAC_4, 7 = PMAC_5, 8 = PMAC_6, 9 = PMAC_7 -->
+ <tx_mod id="2">
+ <!-- id : queue number -->
+ <!-- sched_method: 0 = STRICT, 1 = WRR -->
+ <!-- owner : 0 = CPU, 1 = GMAC0, 2 = GMAC1, 3 = PMAC -->
+ <!-- owner_q_num : owner queue number -->
+ <!-- size : queue size must be >0 -->
+ <!-- Undefined queues will not be created in hardware -->
+ <queue_map>
+ <queue id="0" sched_method="0" owner="0" owner_q_num="0" size="3072" weight="0" />
+ <queue id="1" sched_method="0" owner="1" owner_q_num="0" size="3072" weight="0" />
+ <queue id="2" sched_method="0" owner="0" owner_q_num="1" size="3072" weight="0" />
+ <queue id="3" sched_method="0" owner="1" owner_q_num="1" size="3072" weight="0" />
+ <queue id="4" sched_method="0" owner="0" owner_q_num="2" size="3072" weight="0" />
+ <queue id="5" sched_method="0" owner="1" owner_q_num="2" size="3072" weight="0" />
+ <queue id="6" sched_method="0" owner="0" owner_q_num="3" size="3072" weight="0" />
+ <queue id="7" sched_method="0" owner="1" owner_q_num="3" size="3072" weight="0" />
+ </queue_map>
+ </tx_mod>
+ </tx_module_parameters>
+
+ </port_init>
+
+ <flow_control>
+ <enabled>0</enabled>
+ <queue_sample_freq>1000</queue_sample_freq>
+ <thresh_high>560</thresh_high>
+ <thresh_low>300</thresh_low>
+ <port>1</port>
+ <tgt_port>0</tgt_port>
+ <tx_port>0</tx_port>
+ <tx_queue>1</tx_queue>
+ </flow_control>
+
+ <TPM>
+ <!-- Get TPM configuration mode: 0 = Application, 1 = Kernel -->
+ <GET_config_mode>1</GET_config_mode>
+ <!-- VALIDATION type: 0 = DISABLED, 1 = ENABLED -->
+ <validation_enable>1</validation_enable>
+
+ <!-- Support 2G DS with GMAC0/1: 0 = disable, 1 = enable -->
+ <ds_mac_based_trunking>0</ds_mac_based_trunking>
+
+ <!-- Init switch or not: 0 = do not Init, 1 = do Init -->
+ <switch_init>0</switch_init>
+
+ <!-- PNC_config:
+ 0 = PNC is configured by the MV neta driver,
+ 1 = PNC is configured by the TPM SW
+ -->
+ <pnc_config>1</pnc_config>
+
+ <ds_mh_set>0</ds_mh_set>
+
+ <!-- cpu_wan_egr_loopback:
+ 0 = CPU WAN Egress Loopback - disabled
+ 1 = CPU WAN Egress Loopback - enabled
+ -->
+ <cpu_wan_egr_loopback>0</cpu_wan_egr_loopback>
+
+ <!-- IPV6 5-tuple status :
+ 0 = IPV6 is configured by normal API,
+ 1 = ipv6 is configured by 5-tuple API
+ -->
+ <ipv6_5t_enable>1</ipv6_5t_enable>
+
+ <!-- GMAC1 acts as virtual UNI :
+ 0 = virtual UNI via GMAC1 - disabled,
+ 1 = virtual UNI via GMAC1 - enabled
+ -->
+ <gmac1_virt_uni>0</gmac1_virt_uni>
+
+ <vlan_filter_tpid>
+ <!-- id : option id -->
+ <!-- comb : tpid combination
+ format - 0xAABB[,0xCCDD] -->
+ <filter_tpid id="0" type="0x8100,0x8100" />
+ <filter_tpid id="1" type="0x9100,0x8100" />
+ <filter_tpid id="2" type="0x88A8,0x8100" />
+ <filter_tpid id="3" type="0x88A8,0x88A8" />
+ <filter_tpid id="4" type="0x8100,0x88A8" />
+ <filter_tpid id="5" type="0x8100" />
+ <filter_tpid id="6" type="0x88A8" />
+ <filter_tpid id="7" type="0x9100" />
+ </vlan_filter_tpid>
+
+ <!-- trace_debug_info:
+ 0xAAAABBBB = AAAA = trace levels
+ BBBB = debug printouts
+ 0x00000000 = trace & debug printouts are disabled,
+ 0x80000000 = FATAL_TRACE_LEVEL 0x00000001 = TPM_DB_MOD
+ 0xC0000000 = ERROR_TRACE_LEVEL 0x00000002 = TPM_PNCL_MOD
+ 0xE0000000 = WARN_TRACE_LEVEL 0x00000004 = TPM_INIT_MOD
+ 0xF0000000 = INFO_TRACE_LEVEL 0x00000008 = TPM_HWM_MOD
+ 0xF8000000 = DEBUG_TRACE_LEVEL 0x00000010 = TPM_MODL_MOD
+ 0x00000020 = TPM_TPM_LOG_MOD
+ 0xFFFF0000 = ALL_TRACE_LEVEL 0x00000040 = TPM_CLI_MOD
+ 0x00000080 = TPM_PNC_HM_MOD
+ 0x00000100 = TPM_MODZ1_HM_MOD
+ 0x00000200 = TPM_MODZ2_HM_MOD
+
+ 0x0000FFFF = TPM_ALL_MODULES
+ 0xFFFFFFFF = trace & debug printouts are ALL ENABLED
+ 0xE000FFFF = default value = (WARN + ERRORS ) for trace level
+ ALL for debug printouts
+ -->
+ <trace_debug_info>0xE000FFFF</trace_debug_info>
+
+ <!-- Values for VLAN ETY registers -->
+ <vlan_mod_tpid>
+ <!-- id : type number -->
+ <!-- type : VLAN type (0xFFFF - NULL value) -->
+ <mod_tpid id="0" type="0x8100" />
+ <mod_tpid id="1" type="0x88A8" />
+ <mod_tpid id="2" type="0x9100" />
+ <mod_tpid id="3" type="0xAABB" />
+ </vlan_mod_tpid>
+
+ <modification>
+ <!-- configuration of modification chains: -->
+ <!-- id : chain id -->
+ <!-- type : chain type
+ 1 - MH_MOD_SUBR_CHAIN
+ 2 - MAC_MOD_SUBR_CHAIN
+ 3 - VLAN_MOD_SUBR_CHAIN
+ 4 - PPPOE_MOD_SUBR_CHAIN
+ 5 - IPV6_PPPOE_MOD_SUBR_CHAIN
+ 6 - L2_MAIN_CHAIN
+ 7 - IPV4_NAPT_MAIN_CHAIN
+ 8 - IPV4_MULTICAST_MAIN_CHAIN
+ 9 - IPV6_ROUTING_MAIN_CHAIN
+ 10 - IPV6_MULTICAST_MAIN_CHAIN -->
+ <!-- num : number of modification chain entries
+ 4096 - "all remaining", fills up remaining part of the modification tables with this chain_type.
+ Only "L2_MAIN_CHAIN" OR "IPV4_NAPT_MAIN_CHAIN" can be assigned "all remaining" -->
+ <chain_parameters>
+ <chain id="0" type="1" num="32" />
+ <chain id="1" type="2" num="64" />
+ <chain id="2" type="3" num="300" />
+ <chain id="3" type="4" num="8" />
+ <chain id="4" type="5" num="6" />
+ <chain id="5" type="6" num="170" />
+ <chain id="6" type="7" num="4096" />
+ <chain id="7" type="8" num="16" />
+ <chain id="8" type="9" num="64" />
+ <chain id="9" type="10" num="16" />
+ </chain_parameters>
+ <udp_checksum_use_init>0</udp_checksum_use_init>
+ <udp_checksum_calc>0</udp_checksum_calc>
+ <split_mod>
+ <!-- enable/disable split pbit and vid modification, 1: enable, 0: disable -->
+ <enable>1</enable>
+ <!--p_bit that supported -->
+ <p_bits>0, 1, 2, 3, 4, 5, 6, 7</p_bits >
+ <!--vlan number that needs split pbit and vid modification, 0~16 -->
+ <vlan_num>16</vlan_num>
+ </split_mod>
+ </modification>
+ <!-- CTC CnM status :
+ 0 = CTC CnM - disabled,
+ 1 = CTC CnM - enabled
+ -->
+ <ctc_cnm_enable>1</ctc_cnm_enable>
+ <!-- PNC MAC learning status :
+ 0 = PNC MAC learn - disabled,
+ 1 = PNC MAC learn - enabled
+ -->
+ <split_mod_mode>0</split_mod_mode>
+ <!-- split modification work mode :
+ 0 = CTC mode,
+ 1 = TR156 mode
+ -->
+ <pnc_mac_learn_enable>0</pnc_mac_learn_enable>
+
+ <!-- CTC IPv6 CNM parsing window: 0 = first 24 bytes of IPv6 header, 1 = second 24 bytes -->
+ <ctc_cnm_ipv6_parsing_window>0</ctc_cnm_ipv6_parsing_window>
+
+ <PnC>
+ <!-- num : -->
+ <!-- type : 0 = ACL, 1 = TABLE -->
+ <!-- cntr_grp : 0 = GROUP_0(Default), 1-3 = GROUP_1/GROUP_2/GROUP_3/ -->
+ <!-- lu_mask_all : 0 = DONT_MASK, 1 = MASK -->
+ <!-- min_reset_level: 0 = level_0(Default), 1 = level_1(hard_reset), 2 = Never -->
+ <range_parameters>
+ <!-- TPM_PNC_MNGMT_DS -->
+ <range num="00" type="0" size="01" cntr_grp="0" lu_mask="1" min_reset_level = "1" />
+ <!-- TPM_PNC_MAC_LEARN -->
+ <range num="01" type="0" size="00" cntr_grp="3" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_CPU_WAN_LPBK_US -->
+ <range num="02" type="0" size="00" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_NUM_VLAN_TAGS -->
+ <range num="03" type="0" size="09" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_DS_LOAD_BALANCE -->
+ <range num="04" type="0" size="00" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_MULTI_LPBK -->
+ <range num="05" type="0" size="20" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_VIRT_UNI -->
+ <range num="06" type="0" size="13" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_LOOP_DET_US -->
+ <range num="07" type="0" size="03" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_DROP_PRECEDENCE -->
+ <range num="08" type="0" size="04" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_L2_MAIN -->
+ <range num="09" type="0" size="64" cntr_grp="1" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_ETH_TYPE -->
+ <range num="10" type="0" size="16" cntr_grp="2" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_IGMP -->
+ <range num="11" type="0" size="06" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_IPV4_MC_DS -->
+ <range num="12" type="1" size="16" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_IPV4_MAIN -->
+ <range num="13" type="1" size="64" cntr_grp="3" lu_mask="0" min_reset_level = "0" />
+ <!-- TPM_PNC_IPV4_TCP_FLAG -->
+ <range num="14" type="0" size="12" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_TTL -->
+ <range num="15" type="0" size="04" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_IPV4_PROTO -->
+ <range num="16" type="0" size="03" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_IPV4_FRAG -->
+ <range num="17" type="0" size="04" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_IPV4_LEN -->
+ <range num="18" type="0" size="03" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_IPV6_NH -->
+ <range num="19" type="1" size="16" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_IPV6_L4_MC_DS -->
+ <range num="20" type="1" size="16" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_IPV6_TCP_FLAG -->
+ <range num="21" type="1" size="02" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_IPV6_L4 -->
+ <range num="22" type="1" size="17" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_IPV6_HOPL -->
+ <range num="23" type="1" size="03" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_IPV6_MC_SIP -->
+ <range num="24" type="1" size="08" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_IPV6_GEN -->
+ <range num="25" type="1" size="32" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_IPV6_MC_DS -->
+ <range num="26" type="1" size="32" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_IPV6_DIP -->
+ <range num="27" type="1" size="32" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_CNM_IPV4_PRE -->
+ <range num="28" type="1" size="36" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_CNM_MAIN -->
+ <range num="29" type="0" size="43" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_CATCH_ALL -->
+ <range num="30" type="0" size="01" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ </range_parameters>
+ <!-- 0 = drop, 1 = trap to CPU -->
+ <catch_all_pkt_action>1</catch_all_pkt_action>
+ </PnC>
+ </TPM>
+</cnfg>
diff --git a/package/mv_app/xml_params/tpm_xml_cfg_file_gpon.xml b/package/mv_app/xml_params/tpm_xml_cfg_file_gpon.xml.gflt110
similarity index 100%
rename from package/mv_app/xml_params/tpm_xml_cfg_file_gpon.xml
rename to package/mv_app/xml_params/tpm_xml_cfg_file_gpon.xml.gflt110
diff --git a/package/mv_app/xml_params/tpm_xml_cfg_file_gpon.xml.gflt400 b/package/mv_app/xml_params/tpm_xml_cfg_file_gpon.xml.gflt400
new file mode 100644
index 0000000..620f8bc
--- /dev/null
+++ b/package/mv_app/xml_params/tpm_xml_cfg_file_gpon.xml.gflt400
@@ -0,0 +1,599 @@
+<?xml version="1.0"?>
+<cnfg>
+ <eth_complex_config>
+ <!-- 1=TPM_PON_WAN_DUAL_MAC_INT_SWITCH 2=TPM_PON_WAN_G0_INT_SWITCH 3=TPM_PON_WAN_G1_LAN_G0_INT_SWITCH 4=TPM_G0_WAN_G1_INT_SWITCH
+ 5=TPM_G1_WAN_G0_INT_SWITCH 6=TPM_PON_G1_WAN_G0_INT_SWITCH 7=TPM_PON_G0_WAN_G1_INT_SWITCH 8=TPM_PON_WAN_DUAL_MAC_EXT_SWITCH
+ 9=TPM_PON_WAN_G1_MNG_EXT_SWITCH 10=TPM_PON_WAN_G0_SINGLE_PORT 11=TPM_PON_WAN_G1_SINGLE_PORT 12=TPM_PON_G1_WAN_G0_SINGLE_PORT
+ 13=TPM_PON_G0_WAN_G1_SINGLE_PORT 14=TPM_PON_WAN_G0_G1_LPBK 15=TPM_PON_WAN_G0_G1_DUAL_LAN 16=TPM_PON_WAN_G0_SINGLE_PORT_SGMII
+ 17=TPM_PON_G1_SGMII_WAN_G0_SINGLE_PORT
+ -->
+ <profile>17</profile>
+ <!-- src 0) TPM_SRC_PORT_UNI_0
+ 1) TPM_SRC_PORT_UNI_1
+ ...
+ 7) TPM_SRC_PORT_UNI7 -->
+ <switch_ports>
+ <port id="0" src_port="0"/>
+ <port id="1" src_port="1"/>
+ <port id="2" src_port="2"/>
+ <port id="3" src_port="3"/>
+ </switch_ports>
+ <gmac_ports>
+ <port id="0" src_port="0"/>
+ </gmac_ports>
+ <!-- active_wan 0=TPM_ENUM_GMAC_0 1=TPM_ENUM_GMAC_1 2=TPM_ENUM_PMAC -->
+ <active_wan>1</active_wan>
+ </eth_complex_config>
+
+ <traffic_setting>
+ <!-- pppoe_add_enable: 0 = disable, 1 = enable
+ Indicates system can be required to insert pppoe_header in upstream for routed/napt traffic.-->
+ <pppoe_add_enable>1</pppoe_add_enable>
+
+ <!-- Maximum required number of Vlan Tags.
+ Influences the modification chain_size and the max. mru -->
+ <num_vlan_tags>2</num_vlan_tags>
+ <!-- Action for packets with illegal TTL -->
+ <!-- 0 = no action, 1 = drop, 2 = trap to CPU -->
+ <ttl_illegal_action>2</ttl_illegal_action>
+ <!-- Check TCP FIN & RES flags, to trap 5-tuples w/ these flags raised to CPU -->
+ <!-- 0 = do not check, 1 = check -->
+ <tcp_flag_check>1</tcp_flag_check>
+ <!-- CPU Rx Queue for all trapped packets (trapped due to packet TTL , TCP flags, ) -->
+ <cpu_trap_rx_queue>0</cpu_trap_rx_queue>
+ <!-- Put Switch Port connected to packet Processor in EtherType_DSA_Tag mode -->
+ <ety_dsa_enable>0</ety_dsa_enable>
+ </traffic_setting>
+
+ <mtu_setting>
+ <!-- mtu_setting_enabled: 0 = disable, 1 = enable
+ Indicates if Layer3 Hardware_forward packets that are (> MTU) must be trapped to CPU -->
+ <mtu_setting_enabled>0</mtu_setting_enabled>
+ <!-- In GPON US, the max packet size PON MAC can handle is 2000 -->
+ <!-- IPv4oE downstream mtu -->
+ <ipv4_mtu_ds>1978 </ipv4_mtu_ds>
+ <!-- IPv4oE upstream mtu
+ MTU=2000-DA(6)-SA(6)-2*VLAN(4)-ETY(2) -->
+ <ipv4_mtu_us>1978</ipv4_mtu_us>
+ <!-- IPv4oPPPoE upstream mtu (for routed/napt traffic w/ pppoe_hdr insertion), also dependent on <pppoe_add_enable> -->
+ <!-- MTU=2000-DA(6)-SA(6)-2*VLAN(4)-ETY(2)-PPPoE HEADER(8) -->
+ <ipv4_pppoe_mtu_us>1970</ipv4_pppoe_mtu_us>
+ </mtu_setting>
+
+ <igmp_snoop>
+ <!-- Snooping enabled: 0 = FALSE, 1 = TRUE
+ When set to TRUE, the igmp_range must be created, and the following params determine igmp behavior -->
+ <enabled>1</enabled>
+ <!-- CPU rx queue for trapped IGMP packets: 0 -7 -->
+ <igmp_cpu_rx_queue>7</igmp_cpu_rx_queue>
+ <!-- Per UNI IGMP packet forwarding mode :
+ 0 = drop, 1 = forward, 2= snoop -->
+ <igmp_frwrd_mode_wan>2</igmp_frwrd_mode_wan>
+ <igmp_frwrd_mode_uni0>2</igmp_frwrd_mode_uni0>
+ <igmp_frwrd_mode_uni1>2</igmp_frwrd_mode_uni1>
+ <igmp_frwrd_mode_uni2>2</igmp_frwrd_mode_uni2>
+ <igmp_frwrd_mode_uni3>2</igmp_frwrd_mode_uni3>
+ <igmp_frwrd_mode_uni4>2</igmp_frwrd_mode_uni4>
+ </igmp_snoop>
+
+ <multicast>
+ <!-- Multicast over PPPoE allowed: (0 = FALSE, 1 = TRUE) -->
+ <mc_pppoe_enable>1</mc_pppoe_enable>
+ <!-- Per UNI Vlan translation: 0 = no_per_uni_translation, 1 = per_uni_translation
+ when this feature is enabled, range size of TPM_PNC_VIRT_UNI must be increased by 4 -->
+ <mc_per_uni_vlan_xlat>0</mc_per_uni_vlan_xlat>
+ <!-- Multicast per uni vlan xlat support for IPv4/6: 0 = no support, 1 = support -->
+ <ipv4_mc_support>1</ipv4_mc_support>
+ <ipv6_mc_support>1</ipv6_mc_support>
+ <!-- Multicast filtering mode -->
+ <!-- 0 = Forward all Multicast traffic to CPU
+ 1 = Multicast traffic is forwarded to the Internal Switch, where it is filtered based on MAC_DA.
+ 2 = Multicast traffic is filtered in packet processor according to (vid, dip, sip).
+ The stream specific target uni_port(s) are determined in Internal Switch based on MAC_DA
+ 3 = Multicast traffic is forwarded exclusively by (vid, dip, sip) including setting the target uni_ports -->
+ <mc_filter_mode>3</mc_filter_mode>
+ <!-- Multicast hwf queue: Set to highest txq of GMAC0, whose owner is PMAC. -->
+ <mc_hwf_queue>7</mc_hwf_queue>
+ <!-- Multicast cpu queue: Set to highest PMAC rx queue -->
+ <mc_cpu_queue>0</mc_cpu_queue>
+ </multicast>
+
+ <port_init>
+ <gmac_config>
+ <pon_config>
+ <!-- Max. number of configured TCONTs(GPON), LLIDs(EPON) -->
+ <num_tcont_llid>8</num_tcont_llid>
+ </pon_config>
+
+ <gmac_mh_en>
+ <!-- GMAC Marvell_Header configuration - GMAC adds 2B Marvell header at beginning of packet
+ mh_enabled 0 = FALSE, 1 = TRUE, 2 = AUTO (enabled if connected to Switch) -->
+ <gmac0_mh_en>0</gmac0_mh_en>
+ <gmac1_mh_en>0</gmac1_mh_en>
+ </gmac_mh_en>
+
+ <gmac_bm_buffers>
+ <!-- BM pool buffers per MAC -->
+ <!-- id=0 (GMAC0), id=1(GMAC1), id=2(PON_MAC) -->
+ <!-- Number of buffers for large packets must be ( >= 128) -->
+ <!-- Number of buffers for small packets must each be ( >= 128) -->
+
+ <!-- Undefined BM Pools will receive kernel default values -->
+ <!-- If interfaces are raised before TPM is initialized, the <gmac_bm_buffers> definitions will have no effect,
+ kernel default values are used instead. -->
+ <gmac id="0" large_pkt_pool_bufs="2048" small_pkt_pool_bufs="4096" />
+ <gmac id="1" large_pkt_pool_bufs="2048" small_pkt_pool_bufs="4096" />
+ <gmac id="2" large_pkt_pool_bufs="128" small_pkt_pool_bufs="512" />
+ </gmac_bm_buffers>
+
+ <gmac_rx_queues>
+ <!-- Rx queue sizes per MAC -->
+ <!-- id=0 (GMAC0), id=1(GMAC1), id=2(PON_MAC) -->
+ <!-- size must be >0 -->
+ <!-- Undefined queues will be set to size=0 in hardware -->
+
+ <!-- If interfaces are raised before TPM is initialized, the <gmac_rx_queues> definitions will have no effect,
+ kernel default values are used instead. -->
+
+ <gmac id="0">
+ <queue id="0" size="128"/>
+ <queue id="1" size="128"/>
+ <queue id="2" size="128"/>
+ <queue id="3" size="128"/>
+ <queue id="4" size="128"/>
+ <queue id="5" size="128"/>
+ <queue id="6" size="128"/>
+ <queue id="7" size="128"/>
+ </gmac>
+ <gmac id="1">
+ <queue id="0" size="128"/>
+ <queue id="1" size="128"/>
+ <queue id="2" size="128"/>
+ <queue id="3" size="128"/>
+ <queue id="4" size="128"/>
+ <queue id="5" size="128"/>
+ <queue id="6" size="128"/>
+ <queue id="7" size="128"/>
+ </gmac>
+ <gmac id="2">
+ <queue id="0" size="128"/>
+ <queue id="1" size="128"/>
+ <queue id="2" size="128"/>
+ <queue id="3" size="128"/>
+ <queue id="4" size="128"/>
+ <queue id="5" size="128"/>
+ <queue id="6" size="128"/>
+ <queue id="7" size="128"/>
+ </gmac>
+ </gmac_rx_queues>
+
+ </gmac_config>
+
+ <tx_module_parameters>
+ <!-- id : 0 = GMAC0, 1 = GMAC1, 2 = PMAC_0, 3 = PMAC_1, 4 = PMAC_2, 5 = PMAC_3, -->
+ <!-- : 6 = PMAC_4, 7 = PMAC_5, 8 = PMAC_6, 9 = PMAC_7 -->
+ <tx_mod id="0">
+ <!-- id : queue number -->
+ <!-- sched_method: 0 = STRICT, 1 = WRR -->
+ <!-- owner : 0 = CPU, 1 = GMAC0, 2 = GMAC1, 3 = PMAC -->
+ <!-- owner_q_num : owner queue number -->
+ <!-- size : queue size must be >0 -->
+ <!-- Undefined queues will not be created in hardware -->
+ <queue_map>
+ <queue id="0" sched_method="0" owner="0" owner_q_num="0" size="0256" weight="0" />
+ <queue id="1" sched_method="0" owner="3" owner_q_num="0" size="0256" weight="0" />
+ <queue id="2" sched_method="0" owner="0" owner_q_num="1" size="0256" weight="0" />
+ <queue id="3" sched_method="0" owner="3" owner_q_num="1" size="0256" weight="0" />
+ <queue id="4" sched_method="0" owner="0" owner_q_num="2" size="0256" weight="0" />
+ <queue id="5" sched_method="0" owner="3" owner_q_num="2" size="0256" weight="0" />
+ <queue id="6" sched_method="0" owner="0" owner_q_num="3" size="0256" weight="0" />
+ <queue id="7" sched_method="0" owner="3" owner_q_num="3" size="0256" weight="0" />
+ </queue_map>
+ </tx_mod>
+ <!-- id : 0 = GMAC0, 1 = GMAC1, 2 = PMAC_0, 3 = PMAC_1, 4 = PMAC_2, 5 = PMAC_3, -->
+ <!-- : 6 = PMAC_4, 7 = PMAC_5, 8 = PMAC_6, 9 = PMAC_7 -->
+ <tx_mod id="1">
+ <!-- id : queue number -->
+ <!-- sched_method: 0 = STRICT, 1 = WRR -->
+ <!-- owner : 0 = CPU, 1 = GMAC0, 2 = GMAC1, 3 = PMAC -->
+ <!-- owner_q_num : owner queue number -->
+ <!-- size : queue size must be >0 -->
+ <!-- Undefined queues will not be created in hardware -->
+ <queue_map>
+ <queue id="0" sched_method="0" owner="0" owner_q_num="0" size="1024" weight="0" />
+ <queue id="1" sched_method="0" owner="1" owner_q_num="0" size="1024" weight="0" />
+ </queue_map>
+ </tx_mod>
+ <!-- id : 0 = GMAC0, 1 = GMAC1, 2 = PMAC_0, 3 = PMAC_1, 4 = PMAC_2, 5 = PMAC_3, -->
+ <!-- : 6 = PMAC_4, 7 = PMAC_5, 8 = PMAC_6, 9 = PMAC_7 -->
+ <tx_mod id="2">
+ <!-- id : queue number -->
+ <!-- sched_method: 0 = STRICT, 1 = WRR -->
+ <!-- owner : 0 = CPU, 1 = GMAC0, 2 = GMAC1, 3 = PMAC -->
+ <!-- owner_q_num : owner queue number -->
+ <!-- size : queue size must be >0 -->
+ <!-- Undefined queues will not be created in hardware -->
+ <queue_map>
+ <queue id="0" sched_method="0" owner="0" owner_q_num="0" size="1024" weight="0" />
+ <queue id="1" sched_method="0" owner="1" owner_q_num="0" size="1024" weight="0" />
+ <queue id="2" sched_method="0" owner="0" owner_q_num="1" size="1024" weight="0" />
+ <queue id="3" sched_method="0" owner="1" owner_q_num="1" size="1024" weight="0" />
+ <queue id="4" sched_method="0" owner="0" owner_q_num="2" size="1024" weight="0" />
+ <queue id="5" sched_method="0" owner="1" owner_q_num="2" size="1024" weight="0" />
+ <queue id="6" sched_method="0" owner="0" owner_q_num="3" size="1024" weight="0" />
+ <queue id="7" sched_method="0" owner="1" owner_q_num="3" size="1024" weight="0" />
+ </queue_map>
+ </tx_mod>
+ <!-- id : 0 = GMAC0, 1 = GMAC1, 2 = PMAC_0, 3 = PMAC_1, 4 = PMAC_2, 5 = PMAC_3, -->
+ <!-- : 6 = PMAC_4, 7 = PMAC_5, 8 = PMAC_6, 9 = PMAC_7 -->
+ <tx_mod id="3">
+ <!-- id : queue number -->
+ <!-- sched_method: 0 = STRICT, 1 = WRR -->
+ <!-- owner : 0 = CPU, 1 = GMAC0, 2 = GMAC1, 3 = PMAC -->
+ <!-- owner_q_num : owner queue number -->
+ <!-- size : queue size must be >0 -->
+ <!-- Undefined queues will not be created in hardware -->
+ <queue_map>
+ <queue id="0" sched_method="0" owner="0" owner_q_num="0" size="1024" weight="0" />
+ <queue id="1" sched_method="0" owner="1" owner_q_num="0" size="1024" weight="0" />
+ <queue id="2" sched_method="0" owner="0" owner_q_num="1" size="1024" weight="0" />
+ <queue id="3" sched_method="0" owner="1" owner_q_num="1" size="1024" weight="0" />
+ <queue id="4" sched_method="0" owner="0" owner_q_num="2" size="1024" weight="0" />
+ <queue id="5" sched_method="0" owner="1" owner_q_num="2" size="1024" weight="0" />
+ <queue id="6" sched_method="0" owner="0" owner_q_num="3" size="1024" weight="0" />
+ <queue id="7" sched_method="0" owner="1" owner_q_num="3" size="1024" weight="0" />
+ </queue_map>
+ </tx_mod>
+ <!-- id : 0 = GMAC0, 1 = GMAC1, 2 = PMAC_0, 3 = PMAC_1, 4 = PMAC_2, 5 = PMAC_3, -->
+ <!-- : 6 = PMAC_4, 7 = PMAC_5, 8 = PMAC_6, 9 = PMAC_7 -->
+ <tx_mod id="4">
+ <!-- id : queue number -->
+ <!-- sched_method: 0 = STRICT, 1 = WRR -->
+ <!-- owner : 0 = CPU, 1 = GMAC0, 2 = GMAC1, 3 = PMAC -->
+ <!-- owner_q_num : owner queue number -->
+ <!-- size : queue size must be >0 -->
+ <!-- Undefined queues will not be created in hardware -->
+ <queue_map>
+ <queue id="0" sched_method="0" owner="0" owner_q_num="0" size="1024" weight="0" />
+ <queue id="1" sched_method="0" owner="1" owner_q_num="0" size="1024" weight="0" />
+ <queue id="2" sched_method="0" owner="0" owner_q_num="1" size="1024" weight="0" />
+ <queue id="3" sched_method="0" owner="1" owner_q_num="1" size="1024" weight="0" />
+ <queue id="4" sched_method="0" owner="0" owner_q_num="2" size="1024" weight="0" />
+ <queue id="5" sched_method="0" owner="1" owner_q_num="2" size="1024" weight="0" />
+ <queue id="6" sched_method="0" owner="0" owner_q_num="3" size="1024" weight="0" />
+ <queue id="7" sched_method="0" owner="1" owner_q_num="3" size="1024" weight="0" />
+ </queue_map>
+ </tx_mod>
+ <!-- id : 0 = GMAC0, 1 = GMAC1, 2 = PMAC_0, 3 = PMAC_1, 4 = PMAC_2, 5 = PMAC_3, -->
+ <!-- : 6 = PMAC_4, 7 = PMAC_5, 8 = PMAC_6, 9 = PMAC_7 -->
+ <tx_mod id="5">
+ <!-- id : queue number -->
+ <!-- sched_method: 0 = STRICT, 1 = WRR -->
+ <!-- owner : 0 = CPU, 1 = GMAC0, 2 = GMAC1, 3 = PMAC -->
+ <!-- owner_q_num : owner queue number -->
+ <!-- size : queue size must be >0 -->
+ <!-- Undefined queues will not be created in hardware -->
+ <queue_map>
+ <queue id="0" sched_method="0" owner="0" owner_q_num="0" size="1024" weight="0" />
+ <queue id="1" sched_method="0" owner="1" owner_q_num="0" size="1024" weight="0" />
+ <queue id="2" sched_method="0" owner="0" owner_q_num="1" size="1024" weight="0" />
+ <queue id="3" sched_method="0" owner="1" owner_q_num="1" size="1024" weight="0" />
+ <queue id="4" sched_method="0" owner="0" owner_q_num="2" size="1024" weight="0" />
+ <queue id="5" sched_method="0" owner="1" owner_q_num="2" size="1024" weight="0" />
+ <queue id="6" sched_method="0" owner="0" owner_q_num="3" size="1024" weight="0" />
+ <queue id="7" sched_method="0" owner="1" owner_q_num="3" size="1024" weight="0" />
+ </queue_map>
+ </tx_mod>
+ <!-- id : 0 = GMAC0, 1 = GMAC1, 2 = PMAC_0, 3 = PMAC_1, 4 = PMAC_2, 5 = PMAC_3, -->
+ <!-- : 6 = PMAC_4, 7 = PMAC_5, 8 = PMAC_6, 9 = PMAC_7 -->
+ <tx_mod id="6">
+ <!-- id : queue number -->
+ <!-- sched_method: 0 = STRICT, 1 = WRR -->
+ <!-- owner : 0 = CPU, 1 = GMAC0, 2 = GMAC1, 3 = PMAC -->
+ <!-- owner_q_num : owner queue number -->
+ <!-- size : queue size must be >0 -->
+ <!-- Undefined queues will not be created in hardware -->
+ <queue_map>
+ <queue id="0" sched_method="0" owner="0" owner_q_num="0" size="1024" weight="0" />
+ <queue id="1" sched_method="0" owner="1" owner_q_num="0" size="1024" weight="0" />
+ <queue id="2" sched_method="0" owner="0" owner_q_num="1" size="1024" weight="0" />
+ <queue id="3" sched_method="0" owner="1" owner_q_num="1" size="1024" weight="0" />
+ <queue id="4" sched_method="0" owner="0" owner_q_num="2" size="1024" weight="0" />
+ <queue id="5" sched_method="0" owner="1" owner_q_num="2" size="1024" weight="0" />
+ <queue id="6" sched_method="0" owner="0" owner_q_num="3" size="1024" weight="0" />
+ <queue id="7" sched_method="0" owner="1" owner_q_num="3" size="1024" weight="0" />
+ </queue_map>
+ </tx_mod>
+ <!-- id : 0 = GMAC0, 1 = GMAC1, 2 = PMAC_0, 3 = PMAC_1, 4 = PMAC_2, 5 = PMAC_3, -->
+ <!-- : 6 = PMAC_4, 7 = PMAC_5, 8 = PMAC_6, 9 = PMAC_7 -->
+ <tx_mod id="7">
+ <!-- id : queue number -->
+ <!-- sched_method: 0 = STRICT, 1 = WRR -->
+ <!-- owner : 0 = CPU, 1 = GMAC0, 2 = GMAC1, 3 = PMAC -->
+ <!-- owner_q_num : owner queue number -->
+ <!-- size : queue size must be >0 -->
+ <!-- Undefined queues will not be created in hardware -->
+ <queue_map>
+ <queue id="0" sched_method="0" owner="0" owner_q_num="0" size="1024" weight="0" />
+ <queue id="1" sched_method="0" owner="1" owner_q_num="0" size="1024" weight="0" />
+ <queue id="2" sched_method="0" owner="0" owner_q_num="1" size="1024" weight="0" />
+ <queue id="3" sched_method="0" owner="1" owner_q_num="1" size="1024" weight="0" />
+ <queue id="4" sched_method="0" owner="0" owner_q_num="2" size="1024" weight="0" />
+ <queue id="5" sched_method="0" owner="1" owner_q_num="2" size="1024" weight="0" />
+ <queue id="6" sched_method="0" owner="0" owner_q_num="3" size="1024" weight="0" />
+ <queue id="7" sched_method="0" owner="1" owner_q_num="3" size="1024" weight="0" />
+ </queue_map>
+ </tx_mod>
+ <!-- id : 0 = GMAC0, 1 = GMAC1, 2 = PMAC_0, 3 = PMAC_1, 4 = PMAC_2, 5 = PMAC_3, -->
+ <!-- : 6 = PMAC_4, 7 = PMAC_5, 8 = PMAC_6, 9 = PMAC_7 -->
+ <tx_mod id="8">
+ <!-- id : queue number -->
+ <!-- sched_method: 0 = STRICT, 1 = WRR -->
+ <!-- owner : 0 = CPU, 1 = GMAC0, 2 = GMAC1, 3 = PMAC -->
+ <!-- owner_q_num : owner queue number -->
+ <!-- size : queue size must be >0 -->
+ <!-- Undefined queues will not be created in hardware -->
+ <queue_map>
+ <queue id="0" sched_method="0" owner="0" owner_q_num="0" size="1024" weight="0" />
+ <queue id="1" sched_method="0" owner="1" owner_q_num="0" size="1024" weight="0" />
+ <queue id="2" sched_method="0" owner="0" owner_q_num="1" size="1024" weight="0" />
+ <queue id="3" sched_method="0" owner="1" owner_q_num="1" size="1024" weight="0" />
+ <queue id="4" sched_method="0" owner="0" owner_q_num="2" size="1024" weight="0" />
+ <queue id="5" sched_method="0" owner="1" owner_q_num="2" size="1024" weight="0" />
+ <queue id="6" sched_method="0" owner="0" owner_q_num="3" size="1024" weight="0" />
+ <queue id="7" sched_method="0" owner="1" owner_q_num="3" size="1024" weight="0" />
+ </queue_map>
+ </tx_mod>
+ <!-- id : 0 = GMAC0, 1 = GMAC1, 2 = PMAC_0, 3 = PMAC_1, 4 = PMAC_2, 5 = PMAC_3, -->
+ <!-- : 6 = PMAC_4, 7 = PMAC_5, 8 = PMAC_6, 9 = PMAC_7 -->
+ <tx_mod id="9">
+ <!-- id : queue number -->
+ <!-- sched_method: 0 = STRICT, 1 = WRR -->
+ <!-- owner : 0 = CPU, 1 = GMAC0, 2 = GMAC1, 3 = PMAC -->
+ <!-- owner_q_num : owner queue number -->
+ <!-- size : queue size must be >0 -->
+ <!-- Undefined queues will not be created in hardware -->
+ <queue_map>
+ <queue id="0" sched_method="0" owner="0" owner_q_num="0" size="1024" weight="0" />
+ <queue id="1" sched_method="0" owner="1" owner_q_num="0" size="1024" weight="0" />
+ <queue id="2" sched_method="0" owner="0" owner_q_num="1" size="1024" weight="0" />
+ <queue id="3" sched_method="0" owner="1" owner_q_num="1" size="1024" weight="0" />
+ <queue id="4" sched_method="0" owner="0" owner_q_num="2" size="1024" weight="0" />
+ <queue id="5" sched_method="0" owner="1" owner_q_num="2" size="1024" weight="0" />
+ <queue id="6" sched_method="0" owner="0" owner_q_num="3" size="1024" weight="0" />
+ <queue id="7" sched_method="0" owner="1" owner_q_num="3" size="1024" weight="0" />
+ </queue_map>
+ </tx_mod>
+ </tx_module_parameters>
+
+ </port_init>
+
+ <flow_control>
+ <enabled>0</enabled>
+ <queue_sample_freq>1000</queue_sample_freq>
+ <thresh_high>560</thresh_high>
+ <thresh_low>300</thresh_low>
+ <port>1</port>
+ <tgt_port>0</tgt_port>
+ <tx_port>0</tx_port>
+ <tx_queue>1</tx_queue>
+ </flow_control>
+
+ <TPM>
+ <!-- Get TPM configuration mode: 0 = Application, 1 = Kernel -->
+ <GET_config_mode>1</GET_config_mode>
+ <!-- VALIDATION type: 0 = DISABLED, 1 = ENABLED -->
+ <validation_enable>1</validation_enable>
+
+ <!-- Support 2G DS with GMAC0/1: 0 = disable, 1 = enable -->
+ <ds_mac_based_trunking>0</ds_mac_based_trunking>
+
+ <!-- Init switch or not: 0 = do not Init, 1 = do Init -->
+ <switch_init>0</switch_init>
+
+ <!-- PNC_config:
+ 0 = PNC is configured by the MV neta driver,
+ 1 = PNC is configured by the TPM SW
+ -->
+ <pnc_config>1</pnc_config>
+
+ <ds_mh_set>0</ds_mh_set>
+
+ <!-- cpu_wan_egr_loopback:
+ 0 = CPU WAN Egress Loopback - disabled
+ 1 = CPU WAN Egress Loopback - enabled
+ -->
+ <cpu_wan_egr_loopback>0</cpu_wan_egr_loopback>
+
+ <!-- IPV6 5-tuple status :
+ 0 = IPV6 is configured by normal API,
+ 1 = ipv6 is configured by 5-tuple API
+ -->
+ <ipv6_5t_enable>1</ipv6_5t_enable>
+
+ <!-- GMAC1 acts as virtual UNI :
+ 0 = virtual UNI via GMAC1 - disabled,
+ 1 = virtual UNI via GMAC1 - enabled
+ -->
+ <gmac1_virt_uni>0</gmac1_virt_uni>
+
+ <vlan_filter_tpid>
+ <!-- id : option id -->
+ <!-- comb : tpid combination
+ format - 0xAABB[,0xCCDD] -->
+ <filter_tpid id="0" type="0x8100,0x8100" />
+ <filter_tpid id="1" type="0x9100,0x8100" />
+ <filter_tpid id="2" type="0x88A8,0x8100" />
+ <filter_tpid id="3" type="0x88A8,0x88A8" />
+ <filter_tpid id="4" type="0x8100,0x88A8" />
+ <filter_tpid id="5" type="0x8100" />
+ <filter_tpid id="6" type="0x88A8" />
+ <filter_tpid id="7" type="0x9100" />
+ </vlan_filter_tpid>
+
+ <!-- trace_debug_info:
+ 0xAAAABBBB = AAAA = trace levels
+ BBBB = debug printouts
+ 0x00000000 = trace & debug printouts are disabled,
+ 0x80000000 = FATAL_TRACE_LEVEL 0x00000001 = TPM_DB_MOD
+ 0xC0000000 = ERROR_TRACE_LEVEL 0x00000002 = TPM_PNCL_MOD
+ 0xE0000000 = WARN_TRACE_LEVEL 0x00000004 = TPM_INIT_MOD
+ 0xF0000000 = INFO_TRACE_LEVEL 0x00000008 = TPM_HWM_MOD
+ 0xF8000000 = DEBUG_TRACE_LEVEL 0x00000010 = TPM_MODL_MOD
+ 0x00000020 = TPM_TPM_LOG_MOD
+ 0xFFFF0000 = ALL_TRACE_LEVEL 0x00000040 = TPM_CLI_MOD
+ 0x00000080 = TPM_PNC_HM_MOD
+ 0x00000100 = TPM_MODZ1_HM_MOD
+ 0x00000200 = TPM_MODZ2_HM_MOD
+
+ 0x0000FFFF = TPM_ALL_MODULES
+ 0xFFFFFFFF = trace & debug printouts are ALL ENABLED
+ 0xE000FFFF = default value = (WARN + ERRORS ) for trace level
+ ALL for debug printouts
+ -->
+ <trace_debug_info>0xE000FFFF</trace_debug_info>
+
+ <!-- Values for VLAN ETY registers -->
+ <vlan_mod_tpid>
+ <!-- id : type number -->
+ <!-- type : VLAN type (0xFFFF - NULL value) -->
+ <mod_tpid id="0" type="0x8100" />
+ <mod_tpid id="1" type="0x88A8" />
+ <mod_tpid id="2" type="0x9100" />
+ <mod_tpid id="3" type="0xAABB" />
+ </vlan_mod_tpid>
+
+ <modification>
+ <!-- configuration of modification chains: -->
+ <!-- id : chain id -->
+ <!-- type : chain type
+ 1 - MH_MOD_SUBR_CHAIN
+ 2 - MAC_MOD_SUBR_CHAIN
+ 3 - VLAN_MOD_SUBR_CHAIN
+ 4 - PPPOE_MOD_SUBR_CHAIN
+ 5 - IPV6_PPPOE_MOD_SUBR_CHAIN
+ 6 - L2_MAIN_CHAIN
+ 7 - IPV4_NAPT_MAIN_CHAIN
+ 8 - IPV4_MULTICAST_MAIN_CHAIN
+ 9 - IPV6_ROUTING_MAIN_CHAIN
+ 10 - IPV6_MULTICAST_MAIN_CHAIN -->
+ <!-- num : number of modification chain entries
+ 4096 - "all remaining", fills up remaining part of the modification tables with this chain_type.
+ Only "L2_MAIN_CHAIN" OR "IPV4_NAPT_MAIN_CHAIN" can be assigned "all remaining" -->
+ <chain_parameters>
+ <chain id="0" type="1" num="32" />
+ <chain id="1" type="2" num="64" />
+ <chain id="2" type="3" num="300" />
+ <chain id="3" type="4" num="8" />
+ <chain id="4" type="5" num="6" />
+ <chain id="5" type="6" num="170" />
+ <chain id="6" type="7" num="4096" />
+ <chain id="7" type="8" num="24" />
+ <chain id="8" type="9" num="64" />
+ <chain id="9" type="10" num="24" />
+ </chain_parameters>
+ <udp_checksum_use_init>0</udp_checksum_use_init>
+ <udp_checksum_calc>0</udp_checksum_calc>
+ <split_mod>
+ <!-- enable/disable split pbit and vid modification, 1: enable, 0: disable -->
+ <enable>1</enable>
+ <!--p_bit that supported -->
+ <p_bits>0, 1, 2, 3, 4, 5, 6, 7</p_bits >
+ <!--vlan number that needs split pbit and vid modification, 0~16 -->
+ <vlan_num>16</vlan_num>
+ </split_mod>
+ </modification>
+ <!-- CTC CnM status :
+ 0 = CTC CnM - disabled,
+ 1 = CTC CnM - enabled
+ -->
+ <ctc_cnm_enable>0</ctc_cnm_enable>
+ <!-- PNC MAC learning status :
+ 0 = PNC MAC learn - disabled,
+ 1 = PNC MAC learn - enabled
+ -->
+ <split_mod_mode>1</split_mod_mode>
+ <!-- split modification work mode :
+ 0 = CTC mode,
+ 1 = TR156 mode
+ -->
+ <pnc_mac_learn_enable>0</pnc_mac_learn_enable>
+
+ <!-- CTC IPv6 CNM parsing window: 0 = first 24 bytes of IPv6 header, 1 = second 24 bytes -->
+ <ctc_cnm_ipv6_parsing_window>0</ctc_cnm_ipv6_parsing_window>
+
+ <PnC>
+ <!-- num : -->
+ <!-- type : 0 = ACL, 1 = TABLE -->
+ <!-- cntr_grp : 0 = GROUP_0(Default), 1-3 = GROUP_1/GROUP_2/GROUP_3/ -->
+ <!-- lu_mask_all : 0 = DONT_MASK, 1 = MASK -->
+ <!-- min_reset_level: 0 = level_0(Default), 1 = level_1(hard_reset), 2 = Never -->
+ <range_parameters>
+ <!-- TPM_PNC_MNGMT_DS -->
+ <range num="00" type="0" size="01" cntr_grp="0" lu_mask="1" min_reset_level = "1" />
+ <!-- TPM_PNC_MAC_LEARN -->
+ <range num="01" type="0" size="0" cntr_grp="3" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_CPU_WAN_LPBK_US -->
+ <range num="02" type="0" size="08" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_NUM_VLAN_TAGS -->
+ <range num="03" type="0" size="09" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_DS_LOAD_BALANCE -->
+ <range num="04" type="0" size="00" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_MULTI_LPBK -->
+ <range num="05" type="0" size="10" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_VIRT_UNI -->
+ <range num="06" type="0" size="03" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_LOOP_DET_US -->
+ <range num="07" type="0" size="03" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_DROP_PRECEDENCE -->
+ <range num="08" type="0" size="04" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_L2_MAIN -->
+ <range num="09" type="0" size="196" cntr_grp="1" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_ETH_TYPE -->
+ <range num="10" type="0" size="16" cntr_grp="2" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_IGMP -->
+ <range num="11" type="0" size="06" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_IPV4_MC_DS -->
+ <range num="12" type="1" size="16" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_IPV4_MAIN -->
+ <range num="13" type="1" size="64" cntr_grp="3" lu_mask="0" min_reset_level = "0" />
+ <!-- TPM_PNC_IPV4_TCP_FLAG -->
+ <range num="14" type="0" size="12" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_TTL -->
+ <range num="15" type="0" size="04" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_IPV4_PROTO -->
+ <range num="16" type="0" size="03" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_IPV4_FRAG -->
+ <range num="17" type="0" size="04" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_IPV4_LEN -->
+ <range num="18" type="0" size="03" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_IPV6_NH -->
+ <range num="19" type="1" size="16" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_IPV6_L4_MC_DS -->
+ <range num="20" type="1" size="16" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_IPV6_TCP_FLAG -->
+ <range num="21" type="1" size="02" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_IPV6_L4 -->
+ <range num="22" type="1" size="17" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_IPV6_HOPL -->
+ <range num="23" type="1" size="03" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_IPV6_MC_SIP -->
+ <range num="24" type="1" size="08" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_IPV6_GEN -->
+ <range num="25" type="1" size="22" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_IPV6_MC_DS -->
+ <range num="26" type="1" size="32" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_IPV6_DIP -->
+ <range num="27" type="1" size="22" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_CNM_IPV4_PRE -->
+ <range num="28" type="1" size="0" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_CNM_MAIN -->
+ <range num="29" type="0" size="0" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ <!-- TPM_PNC_CATCH_ALL -->
+ <range num="30" type="0" size="01" cntr_grp="0" lu_mask="1" min_reset_level = "0" />
+ </range_parameters>
+ <!-- 0 = drop, 1 = trap to CPU -->
+ <catch_all_pkt_action>1</catch_all_pkt_action>
+ </PnC>
+ </TPM>
+</cnfg>