blob: 32884f3bdf7984041a9ba596e7732cff4247262d [file] [log] [blame]
/******************************************************************************
*
* Name: ip175d.h
*
* Description: SIOC data structure + switch Header
*
* Copyright: (c) 2005-2050 IC Plus Corp.
* All rights reserved.
*
*******************************************************************************/
#ifndef _IP175D_H_
#define _IP175D_H_
#ifndef SIOCDEVPRIV
#define SIOCDEVPRIV 0x89f0
#define SIOCVLAN SIOCDEVPRIV+0x0
#define SIOCQOS SIOCDEVPRIV+0x1
#define SIOCMIRROR SIOCDEVPRIV+0x2
#define SIOCDATARATE SIOCDEVPRIV+0x3
#define SIOCLUT SIOCDEVPRIV+0x4
#define SIOCACL SIOCDEVPRIV+0x5
#define SIOCIGMPENT SIOCDEVPRIV+0xe
#define SIOCHWIGMP SIOCDEVPRIV+0xf
#endif
/*
#ifndef u32
typedef unsigned long u32;
#endif
#ifndef u16
typedef unsigned short u16;
#endif
#ifndef u8
typedef unsigned char u8;
#endif
*/
#define CMD_WRITE 0x10
#define CMD_READ 0x00
#define MAX_PORT_NUM 6
#define MAX_VLAN_NUM 16
#define TBASE_VLAN_NUM MAX_VLAN_NUM
#define PBASE_VLAN_NUM 6
struct _VLAN_entry
{
unsigned char valid; //0->disable !0->Enable
unsigned int VID; //1~4093
unsigned char FID; //0~15
unsigned char member; // bit[5:0] -> P5~P0
unsigned char AddTag; // bit[5:0] -> P5~P0
unsigned char RmvTag; // bit[5:0] -> P5~P0
unsigned char qos_enable;
unsigned char queue;
// unsigned int PVID; //1~4093
};
#define VLAN_CMD_TBASE 0x01
#define VLAN_CMD_PBASE 0x00
#define VLAN_CMD_MIX 0x02
#define VLAN_MODE_ALL_TBASE 0x3f
#define VLAN_MODE_ALL_PBASE 0x00
#define VLAN_CMD_OKMASK 0x3f
#define VLAN_CMD_OK 0x80
struct _VLAN_setting
{
unsigned char cmd; //bit4->1:write 0:read , bit0->1:TagVLAN 0:PortBaseVLAN
unsigned char vmode; //bit[5:0] in write mode:0->PortBaseVLAN !0->TagBase VLAN
unsigned char cmode; //bit[5:0] in vlan mode: 0 - VID classification 1 - PVID classification
unsigned int PVID[MAX_PORT_NUM];
struct _VLAN_entry VLAN_entry[MAX_VLAN_NUM];
};
#define QoS_QUEUE_0 0x00
#define QoS_QUEUE_1 0x01
#define QoS_QUEUE_2 0x02
#define QoS_QUEUE_3 0x03
#define QoS_MAX_QUEUE 4
struct _protocol_entry
{
unsigned char enable; // 0: disable !0: enable
unsigned short port; // TCP/UDP port number
unsigned char queue; // queue0~3
};
struct _range_entry
{
unsigned char enable; // 0: disable !0: enable
unsigned short s_port; // TCP/UDP port range start number
unsigned short e_port; // TCP/UDP port range end number
unsigned char queue; // queue0~3
};
#define QoS_CLASS_PORT0_ENABLE 0x1
#define QoS_CLASS_PORT1_ENABLE 0x2
#define QoS_CLASS_PORT2_ENABLE 0x4
#define QoS_CLASS_PORT3_ENABLE 0x8
#define QoS_CLASS_PORT4_ENABLE 0x10
#define QoS_CLASS_PORT5_ENABLE 0x20
#define QoS_CLASS_PORT_ALL_ENABLE 0x3f
#define QoS_CLASS_COS0_ENABLE 0x1
#define QoS_CLASS_COS1_ENABLE 0x2
#define QoS_CLASS_COS2_ENABLE 0x4
#define QoS_CLASS_COS3_ENABLE 0x8
#define QoS_CLASS_COS4_ENABLE 0x10
#define QoS_CLASS_COS5_ENABLE 0x20
#define QoS_CLASS_COS_ALL_ENABLE 0x3f
#define QoS_CLASS_ACL_ENABLE 0x1
#define QoS_CLASS_VLAN_ENABLE 0x2
#define QoS_CLASS_LP_ENABLE 0x4
//#define QoS_CLASS_PORT_ALL_ENABLE 0x8
//#define QoS_CLASS_COS_ALL_ENABLE 0x10
#define QoS_TYPE_DISABLE 0x00
#define QoS_TYPE_SOURCE 0x01
#define QoS_TYPE_DESTINATION 0x02
#define QoS_TYPE_SOURCEnDEST 0x03
#define QoS_MODE_WRR 0x00
#define QoS_MODE_WFQ 0x01
#define QoS_MODE_SPM 0x02
#define QoS_MODE_SP 0x03
#define QoS_MODE_HIGH_PASS QoS_MODE_SP
#define MAX_PROTOCOL_NUM 4
#define MAX_RANGE_NUM 2
#define MAX_VLAN_PRI_NUM 8
#define MAX_COS_PRI_NUM 64
struct _QoS_setting
{
unsigned char cmd; //bit4->1:write 0:read
unsigned char enable; // 0:disable !0:enable
unsigned char pri_port_enable;//bit0~5 => for port0~5 1:enable 0:disable port-based priority
unsigned char pri_cos_enable;//bit0~5 => for port0~5 1:enable 0:disable CoS priority
/* priority_class:priority classification.for each bit 1:enable 0:disable
* bit0:user-defined(ACL) priority/VLAN table priority
* bit1:VLAN priority
* bit2:Logical-port priority
* bit3:port-based priority all port on/off
* bit4:COS-based priority all port on/off
*/
unsigned char priority_class;
unsigned char port_based_queue[MAX_PORT_NUM];
unsigned char vlan_queue[MAX_VLAN_PRI_NUM];
unsigned char cos_queue[MAX_COS_PRI_NUM];
unsigned char type; // 0:disable 1:SA 2:DA 3:DA+SA
unsigned char mode; // 0:WRR 3:High Priority first
unsigned int queue_weight[QoS_MAX_QUEUE];//weight for q0(low)~q3(high) (unit:packet)
unsigned int queue_rate[QoS_MAX_QUEUE];//WFQ:rate for q0(low)~q3(high) (unit:32 Kbps)
struct _protocol_entry protocol[MAX_PROTOCOL_NUM];
struct _range_entry range[MAX_RANGE_NUM];
};
#define MAC_LUT_ENABLE 0x1
#define MAC_LUT_DISABLE 0x0
#define LUT_MAC_UNICAST 0x0
#define LUT_MAC_MULTICAST 0x1
#define LUT_IGMP_MULTICAST 0x2
#define LUT_STATIC_ENTRY 0x2
#define MAC_LUT_PRI_DMAC 0x1
#define MAC_LUT_PRI_SMAC 0x2
#define MAC_LUT_PRI_BOTH 0x3
#define MAC_LUT_FILTER_SMAC 0x1
#define MAC_LUT_FILTER_IGNORE_VLAN 0x2
#define MAC_LUT_FILTER_MIRROR 0x3
struct _MAC_LUT_entry
{
unsigned char valid;// in unicast: set 1 for static entry, in mcast& igmp: set 1 for valid.
unsigned char type;// 0:unicast 1:multicast 2:IGMP
unsigned char entry;//bit 0~1: entry num(0~3)
unsigned char fid;//0~15
unsigned char MAC[6];
unsigned char age;
unsigned char pri_function;//1:match DMAC 2:match SMAC 3:match either DMAC or SMAC
//filter_function - 1:drop if SA match 2:ignore VLAN member 3:copy to mirror port if DA match
unsigned char filter_function;
unsigned char queue;//0~3
unsigned char phy_port;//unicast- 0:drop 1~6: forward to port0~5
//multicast- bit0~5: forward to port0~5 enable/disable
//IGMP - bit0~5: forward to port0~5 enable/disable
unsigned char timeout[MAX_PORT_NUM];
};
#define LUT_2K 0x0
#define LUT_1K_1K 0x1
struct _LUT_setting
{
unsigned char lut_mode;
unsigned char cmd;
struct _MAC_LUT_entry lut_entry;
};
/*
func:
bit 0 - HW IGMP snooping 1:en 0:dis
bit 1 - learn router port automatically 1:en 0:dis
bit 2 - learn router port even if sip=0.0.0.0 1:en 0:dis
bit 3 - broadcast "report pkt" to all ports 1:en 0:dis
bit 4 - discard "leave pkt" 1:en 0:dis
bit 5~6 - filter mode for unknown IP multicast data 0:discard 1:to CPU 2:flood pkt 3:to router port
bit 7 - broadcast IP multicast control pkt 1:en 0:dis
bit 8 - broadcast unknown IGMP pkt 1:en 0:dis
bit 9 - IP multicast data pkt forward to group member 1:en 0:dis
ports & router ports
bit10 - Fast leave 1:en 0:dis
*/
void igmp_set_func(u16 func);
u16 igmp_get_func(void);
/*
ports:
bit 0~5 - Default router ports,each bit refers to each port.
*/
void igmp_set_router_port(u8 ports);
u8 igmp_get_router_port(void);
/*
Set timeout for router ports
timeout = timeout unit * timeout scale(unit:s)
bit 0~5 - Set to 0.
bit 6~7 - timeout unit 0:1s 1:2s 2:4s 3:8s
bit 8~15- timeout scale
*/
void igmp_set_router_timeout(u16 timeout);
u16 igmp_get_router_timeout(void);
/*
Set timeout for group ports
timeout = timeout unit * timeout scale(unit:s)
bit 0~1 - timeout unit 0:1s 1:2s 2:4s 3:8s
bit 8~15- timeout scale
*/
void igmp_set_group_timeout(u16 timeout);
u16 igmp_get_group_timeout(void);
struct _IGMP_setting
{
u8 cmd;
u16 func;
u8 router_port;
u16 rp_timeout;
u16 group_timeout;
};
#define IGMP_DEL_ENTRY 0
#define IGMP_ADD_ENTRY 1
struct _IGMP_entry
{
u8 cmd;
u8 type;
u8 mac[6];
u8 port;
};
#define ACL_MAX_MULTI_ENTRY_NUM 8
#define ACL_MAX_MACF_NUM 2048
#define ACL_FILTER_PHYPORT_ENABLE 0x1
#define ACL_FILTER_MAC_ENABLE 0x2
#define ACL_FILTER_ETHTYPE_ENABLE 0x4
#define ACL_FILTER_IP_PROTOCOL_ENABLE 0x8
#define ACL_FILTER_VLAN_ENABLE 0x10
#define ACL_FILTER_COS_ENABLE 0x20
#define ACL_FILTER_IP_ADDRESS_ENABLE 0x40
#define ACL_FILTER_LOGICAL_PORT_ENABLE 0x80
#define ACL_ACTION_RATE_CONTROL 0x1
#define ACL_ACTION_MONITOR_RATE 0x2
#define ACL_ACTION_QUEUE_SET 0x3
#define ACL_ACTION_MIRROR_PORT 0x4
#define ACL_ACTION_FORWARD_CPU 0x5
#define ACL_ACTION_DROP 0x6
#define ACL_ACTION_FORWARD 0x7
#define ACL_QOS_QUEUE_DIABLE 0x0
#define ACL_QOS_QUEUE0 0x4
#define ACL_QOS_QUEUE1 0x5
#define ACL_QOS_QUEUE2 0x6
#define ACL_QOS_QUEUE3 0x7
#define ACL_FILTER_IP_MAC_DISABLE 0x0
#define ACL_FILTER_IP_SINGAL_SOURCE 0x1
#define ACL_FILTER_IP_SINGAL_DESTINATION 0x2
#define ACL_FILTER_IP_SINGAL_BOTH 0x3
#define ACL_FILTER_IP_RANGE_SOURCE 0x4
#define ACL_FILTER_IP_RANGE_DESTINATION 0x5
#define ACL_FILTER_IP_RANGE_BOTH 0x6
#define ACL_FILTER_MAC_SMAC_ENABLE 0x7
#define ACL_FILTER_MAC_DMAC_ENABLE 0x8
#define ACL_FILTER_MAC_BOTH_ENABLE 0x9
#define ACL_PHY_PORT0_ENABLE 0x1
#define ACL_PHY_PORT1_ENABLE 0x2
#define ACL_PHY_PORT2_ENABLE 0x4
#define ACL_PHY_PORT3_ENABLE 0x8
#define ACL_PHY_PORT4_ENABLE 0x10
#define ACL_PHY_PORT_ALL_ENABLE 0x1f
/* for logical port protocol */
#define ACL_FILTER_LP_STCP 0x1
#define ACL_FILTER_LP_SUDP 0x2
#define ACL_FILTER_LP_DTCP 0x3
#define ACL_FILTER_LP_DUDP 0x4
#define ACL_FILTER_LP_STCP_DTCP 0x5
#define ACL_FILTER_LP_STCP_DUDP 0x6
#define ACL_FILTER_LP_SUDP_DTCP 0x7
#define ACL_FILTER_LP_SUDP_DUDP 0x8
#define ACL_FILTER_LP_RANGE_STCP 0x9
#define ACL_FILTER_LP_RANGE_SUDP 0xa
#define ACL_FILTER_LP_RANGE_SBOTH 0xb
#define ACL_FILTER_LP_RANGE_DTCP 0xc
#define ACL_FILTER_LP_RANGE_DUDP 0xd
#define ACL_FILTER_LP_RANGE_DBOTH 0xe
#define ACL_FILTER_LP_RANGE_BOTH_TCP 0xf
#define ACL_FILTER_LP_RANGE_BOTH_UDP 0x10
#define ACL_FILTER_LP_RANGE_BOTH_BOTH 0x11
struct _ACL_MF_entry
{
unsigned char index;
unsigned char valid;
/* function:This is for enable/disable each field 1:enable 0:disable
* bit0:physical port bit1:MAC
* bit2:ethernet type bit3:IP protocol
* bit4:VLAN bit5:DSCP/TOS
* bit6:IP Address bit7:Logical port
*/
unsigned char function;
unsigned char port_num;
unsigned short ether_type;
unsigned char ip_protocol;
unsigned char action;
unsigned char queue;
unsigned short rate;// unit:8Kbps
unsigned int traffic_count;// unit:Bytes
unsigned char cos_type;//Class of Service Number:VLAN/DSCP/TOS
unsigned short ip_mac_type;//0:disable 1:source 2:desination 3:both - singal IP mode
//4:source 5:destination 6:both - ranged IP mode
//7:source 8:destination 9:both - MAC mode
unsigned char logical_port_protocol;
unsigned char sMAC[6];
unsigned char dMAC[6];
unsigned char sip[4];
unsigned char eip[4];
unsigned short s_port;
unsigned short e_port;
};
#define ACL_FUNC_PHYPORT 0x1
#define ACL_FUNC_LOGICPORT 0x2
#define ACL_FUNC_MULTIFIELD 0x3
#define ACL_LP_USER0_DROP 0x1
#define ACL_LP_USER1_DROP 0x2
#define ACL_LP_PREDEF0_DROP 0x4
#define ACL_LP_PREDEF1_DROP 0x8
#define ACL_LP_PREDEF2_DROP 0x10
#define ACL_LP_PREDEF3_DROP 0x20
#define ACL_LP_ALL_DROP 0x3f
#define ACL_TYPE_DISABLE 0x00
#define ACL_TYPE_SOURCE 0x01
#define ACL_TYPE_DESTINATION 0x02
#define ACL_TYPE_SOURCEnDEST 0x03
struct _ACL_setting
{
unsigned char cmd;
unsigned char function;
unsigned char port_state[MAX_PORT_NUM];//bit0:Forwarding bit1:Learning 1:enable 0:disable
unsigned char type;
unsigned char lp_drop;
struct _protocol_entry protocol[MAX_PROTOCOL_NUM];
struct _range_entry range[MAX_RANGE_NUM];
struct _ACL_MF_entry acl_mf_entry[ACL_MAX_MULTI_ENTRY_NUM];
};
#define MAX_MIRROR_PORT MAX_PORT_NUM
#define MIRROR_MODE_RX 0x0
#define MIRROR_MODE_TX 0x1
#define MIRROR_MODE_TX2RX 0x2
#define MIRROR_MODE_TXnRX 0x3
struct _Mirror_setting
{
unsigned char cmd; // bit4->1:write 0:read
unsigned char enable; // 0:disable !0:enable
unsigned char mode; // 0:rx 1:tx 2:tx_to_rx 3:tx nad rx
unsigned char tx_from;// mirror from which port's Tx (p0~p5)
unsigned char rx_from;// mirror from which port's Rx (p0~p5)
unsigned char to; // mirror to which port p0~p5
};
#define DATARATE_MAX_RATE 3124
struct _Datarate_setting
{
unsigned char cmd; // bit4->1:write 0:read
unsigned short tx_rate[MAX_PORT_NUM];// per unit is 32Kbps (0~3124 0:full speed)
unsigned short rx_rate[MAX_PORT_NUM];// per unit is 32Kbps (0~3124 0:full speed)
};
//------------------------------------------------------------------------------
struct ip175d_priv {
void (*VLAN_Set)(struct _VLAN_setting *VLAN_setting);
void (*VLAN_Query)(struct _VLAN_setting *VLAN_setting);
void (*QoS_Set)(struct _QoS_setting *QoS_setting);
void (*QoS_Query)(struct _QoS_setting *QoS_setting);
void (*Mirror_Set)(struct _Mirror_setting *Mirror_setting);
void (*Mirror_Query)(struct _Mirror_setting *Mirror_setting);
void (*Datarate_Set)(struct _Datarate_setting *Datarate_setting);
void (*Datarate_Query)(struct _Datarate_setting *Datarate_setting);
void (*LUT_Set)(struct _LUT_setting *lut);
void (*ACL_Set)(struct _ACL_setting *ACL_setting);
void (*IGMP_Set)(struct _IGMP_setting *igmp);
void (*IGMP_Query)(struct _IGMP_setting *igmp);
void (*IGMP_Set_Entry)(struct _IGMP_entry *igmp);
unsigned char (*IGMP_Query_Entry)(struct _IGMP_entry *igmp);
};
void VLAN_Set(struct _VLAN_setting *VLAN_setting);
void VLAN_Query(struct _VLAN_setting *VLAN_setting);
void QoS_Set(struct _QoS_setting *QoS_setting);
void QoS_Query(struct _QoS_setting *QoS_setting);
void Mirror_Set(struct _Mirror_setting *Mirror_setting);
void Mirror_Query(struct _Mirror_setting *Mirror_setting);
void Datarate_Set(struct _Datarate_setting *Datarate_setting);
void Datarate_Query(struct _Datarate_setting *Datarate_setting);
void LUT_Set(struct _LUT_setting *lut);
void ACL_Set(struct _ACL_setting *ACL_setting);
void IGMP_Set(struct _IGMP_setting *igmp);
void IGMP_Query(struct _IGMP_setting *igmp);
void IGMP_Set_Entry(struct _IGMP_entry *igmp);
unsigned char IGMP_Query_Entry(struct _IGMP_entry *igmp);
//////////////////////////under is switch ip175d register map/////////////
//PHY Control
#define PHY0 0
#define PHY_CTRL 0
#define PHY_STATUS 1
#define PHY_AN_ADV 4
#define PHY_AN_LPA 5
//HU Table
#define PHY20 20
#define CONG_CTRL 5
#define PORT_STATE 6
#define LEARNING_CTRL_REG 13
#define BF_STM_CTRL 16
#define BF_STM_THR_0 17
#define PORT_MIRROR_0 20
#define PORT_MIRROR_1 21
//Rate Control
#define PHY21 21//0x0B//21 original 0x11 for FPGA
#define IGMP_CTRL 5
#define IGMP_RP_TIME 6
#define IGMP_GROUP_TIME 7
#define BW_TI 8
#define BW_MBS 9
#define BW_CREDIT_SIZE 10
#define BW_TIME 11
#define BW_SETTING 12
#define LEARN_CONSTRAIN 13
#define MAC_COMMAND 14
#define MAC_ADDR0 15
#define MAC_ADDR1 16
#define MAC_ADDR2 17
#define MAC_CONTROL 18
#define MAC_STATIC 19
#define CRC_COUNTER 25
//VLAN Control
#define PHY22 22
#define VLAN_CLASS 0
#define VLAN_INGRESS 1
#define VLAN_EGRESS 2
#define VLAN_INFO_0 4
#define VLAN_INFO_1 VLAN_INFO_0+1
#define VLAN_INFO_2 VLAN_INFO_0+2
#define VLAN_INFO_3 VLAN_INFO_0+3
#define VLAN_INFO_4 VLAN_INFO_0+4
#define VLAN_INFO_5 VLAN_INFO_0+5
#define VLAN_VALID 10
#define VLAN_QU_NUM_EN 11
#define VLAN_STP_IDX_EN 12
#define VLAN_REW_VALN_PRI_EN 13
#define VLAN_FID_VID0 14
#define VLAN_FID_VID1 VLAN_FID_VID0+1
#define VLAN_FID_VID2 VLAN_FID_VID0+2
#define VLAN_FID_VID3 VLAN_FID_VID0+3
#define VLAN_FID_VID4 VLAN_FID_VID0+4
#define VLAN_FID_VID5 VLAN_FID_VID0+5
#define VLAN_FID_VID6 VLAN_FID_VID0+6
#define VLAN_FID_VID7 VLAN_FID_VID0+7
#define VLAN_FID_VID8 VLAN_FID_VID0+8
#define VLAN_FID_VID9 VLAN_FID_VID0+9
#define VLAN_FID_VID10 VLAN_FID_VID0+10
#define VLAN_FID_VID11 VLAN_FID_VID0+11
#define VLAN_FID_VID12 VLAN_FID_VID0+12
#define VLAN_FID_VID13 VLAN_FID_VID0+13
#define VLAN_FID_VID14 VLAN_FID_VID0+14
#define VLAN_FID_VID15 VLAN_FID_VID0+15
#define PHY23 23
#define VLAN_MEMBER_00 00
#define VLAN_MEMBER_02 VLAN_MEMBER_00+1
#define VLAN_MEMBER_04 VLAN_MEMBER_00+2
#define VLAN_MEMBER_06 VLAN_MEMBER_00+3
#define VLAN_MEMBER_08 VLAN_MEMBER_00+4
#define VLAN_MEMBER_10 VLAN_MEMBER_00+5
#define VLAN_MEMBER_12 VLAN_MEMBER_00+6
#define VLAN_MEMBER_14 VLAN_MEMBER_00+7
#define VLAN_ADDTAG_00 8
#define VLAN_ADDTAG_02 VLAN_ADDTAG_00+1
#define VLAN_ADDTAG_04 VLAN_ADDTAG_00+2
#define VLAN_ADDTAG_06 VLAN_ADDTAG_00+3
#define VLAN_ADDTAG_08 VLAN_ADDTAG_00+4
#define VLAN_ADDTAG_10 VLAN_ADDTAG_00+5
#define VLAN_ADDTAG_12 VLAN_ADDTAG_00+6
#define VLAN_ADDTAG_14 VLAN_ADDTAG_00+7
#define VLAN_REMOVETAG_00 16
#define VLAN_REMOVETAG_02 VLAN_REMOVETAG_00+1
#define VLAN_REMOVETAG_04 VLAN_REMOVETAG_00+2
#define VLAN_REMOVETAG_06 VLAN_REMOVETAG_00+3
#define VLAN_REMOVETAG_08 VLAN_REMOVETAG_00+4
#define VLAN_REMOVETAG_10 VLAN_REMOVETAG_00+5
#define VLAN_REMOVETAG_12 VLAN_REMOVETAG_00+6
#define VLAN_REMOVETAG_14 VLAN_REMOVETAG_00+7
#define VLAN_MISC_00 24
#define VLAN_MISC_02 VLAN_MISC_00+1
#define VLAN_MISC_04 VLAN_MISC_00+2
#define VLAN_MISC_06 VLAN_MISC_00+3
#define VLAN_MISC_08 VLAN_MISC_00+4
#define VLAN_MISC_10 VLAN_MISC_00+5
#define VLAN_MISC_12 VLAN_MISC_00+6
#define VLAN_MISC_14 VLAN_MISC_00+7
#define PHY25 25
#define QOS_CTRL 0
#define QOS_PORT_PRI 1
#define QOS_TAG_PRI 2
#define QOS_TOS_PRI_0 3
#define QOS_TOS_PRI_1 QOS_TOS_PRI_0+1
#define QOS_TOS_PRI_2 QOS_TOS_PRI_0+2
#define QOS_TOS_PRI_3 QOS_TOS_PRI_0+3
#define QOS_TOS_PRI_4 QOS_TOS_PRI_0+4
#define QOS_TOS_PRI_5 QOS_TOS_PRI_0+5
#define QOS_TOS_PRI_6 QOS_TOS_PRI_0+6
#define QOS_TOS_PRI_7 QOS_TOS_PRI_0+7
#define QOS_TCP_CTRL 11
#define QOS_PRE_LOGI_0 12
#define QOS_PRE_LOGI_1 QOS_PRE_LOGI_0+1
#define QOS_PRE_LOGI_2 QOS_PRE_LOGI_0+2
#define QOS_PRE_LOGI_3 QOS_PRE_LOGI_0+3
#define QOS_USER_RG_LOW_0 16
#define QOS_USER_RG_HI_0 17
#define QOS_USER_RG_LOW_1 QOS_USER_RG_LOW_0+2
#define QOS_USER_RG_HI_1 QOS_USER_RG_HI_0+2
#define QOS_TCP_QU_MAP 20
#define QOS_LP_DROP 21
#define QOS_SCH_CONFIG 22
#define QOS_SCH_WEIGHT 23
#define PHY26 26
#define MF_CTRL 0
#define MF_CLASS 1
#define MF_IM_SA0 2
#define MF_IM_SA1 MF_IM_SA0+1
#define MF_IM_SA2 MF_IM_SA0+2
#define MF_IM_DA0 5
#define MF_IM_DA1 MF_IM_DA0+1
#define MF_IM_DA2 MF_IM_DA0+2
#define MF_ET_VALUE 8
#define MF_REG9 9
#define MF_TCP_UDP 10
#define MF_LG_SP_NUM 11
#define MF_LG_DP_NUM 12
#define MF_SP_PORTNUM 13
#define MF_BEHAVIOR 14
#define MF_TI 15
#define MF_MBS 16
#define MF_CREDIT_SIZE 17
#define MF_TSEL 18
#define MF_VALID 19
#define MF_ACCESS_CTRL 20
#define MF_CNT_LSB 21
#define MF_CNT_MSB 22
#define MF_OVERFLOW 23
#define PHY27 27//0x23
#define QUEUE_MONITOR 9
#endif