⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sf_regstruct.h

📁 华为 HI3510 BOOTLOADER HIBOOT 源码包
💻 H
📖 第 1 页 / 共 4 页
字号:
typedef union   {	struct	{                UINT32 Fcnt_2P		:10;	/*端口发往邻端口mem使用深度 缺省10'h0       */		UINT32 Fcnt_2CB		:11;	/*端口发往CPU的和广播帧mem使用深度 缺省11'h0*/                UINT32 reserved		:11;	/*	*/	}bits ;	UINT32 w32 ;}MemDepth_2_U;/*Memory存储的帧个数寄存器*/typedef union   {	struct	{                UINT32 fmcnt_u2d		:6;	/*上行口发往下行口MEM存储帧个数 缺省6'h0*/                UINT32 fmcnt_u2c		:7;	/*上行口发往CPU的MEM存储帧个数 缺省7'h0 */                UINT32 fmcnt_d2u		:7;	/*下行口发往上行口MEM存储帧个数 缺省7'h0*/		UINT32 fmcnt_d2c		:6;	/*下口发往CPU的MEM存储帧个数 缺省6'h0   */                UINT32 reserved		:6;	/*	*/	}bits ;	UINT32 w32 ;}Mem_StoFraCnt_U;/*上下端口发送的帧描述子的深度寄存器*/typedef union   {	struct	{                UINT32 Cnt_u2c		:5;	/*上行口发往CPU的单播帧描述子队列使用深度 缺省5'h0   */                UINT32 cnt_u2bc		:4;	/*上行口发往CPU的广播帧描述子队列使用深度 缺省4'h0   */                UINT32 Cnt_u2bd		:4;	/*上行口发往下行口的广播帧描述子队列使用深度 缺省4'h0*/                UINT32 Cnt_d2c		:5;	/*下行口发往CPU的单播帧描述子队列使用深度 缺省5'h0   */                UINT32 Cnt_d2bc		:4;	/*下行口发往CPU的广播帧描述子队列使用深度 缺省4'h0   */		UINT32 Cnt_d2bu		:4;	/*下行口发往下行口的广播帧描述子队列使用深度 缺省4'h0*/                UINT32 reserved		:6;	/*	*/	}bits ;	UINT32 w32 ;}FraDes_Port2Depth_U;/*CPU发送的帧描述子的深度寄存器*/typedef union   {	struct	{                UINT32 Cnt_c2u		:4;		/*CPU发给上行口单播帧描述子队列使用深度 缺省4'h0  */                UINT32 cnt_c2bu		:4;		/*CPU发给上行口的广播帧描述子队列使用深度 缺省4'h0*/                UINT32 Cnt_c2d		:4;		/*CPU发给下行口单播帧描述子队列使用深度 缺省4'h0  */		UINT32 cnt_c2bd		:4;		/*CPU发给下行口的广播帧描述子队列使用深度 缺省4'h0*/                UINT32 reserved		:16;	/*	*/	}bits ;	UINT32 w32 ;}FraDes_CPU2Depth_U;/*SF写到片外数据大小端转换使能寄存器*/typedef union   {	struct	{		UINT32 swap_en		:1;		/*SF写到片外数据大小端转换使能,缺省为0(big edian)*/		UINT32 reserved		:31;		/*	*/	}bits ;	UINT32 w32 ;}SF2ExtRam_Endian_U;/*ANYPORT帧配置表结构*/typedef union   {	struct	{                UINT32 port			:16;		/*CPU配置待识别协议端口号*/                UINT32 protocol		:8;		/*CPU配置待识别协议类型  */                UINT32 ctrl0			:2;		/*端口0ANYPORT帧转发控制 */                UINT32 port_en0		:1;		/*端口0协议端口识别使能  */                UINT32 protocol_en0	:1;		/*端口0协议识别使能      */                UINT32 ctrl1			:2;		/*端口1ANYPORT帧转发控制 */                UINT32 port_en1		:1;		/*端口1协议端口识别使能  */		UINT32 protocol_en1	:1;		/*端口1协议识别使能      */	}bits ;	UINT32 w32 ;}ANYPORT_Form_U;/*ANYTYPE帧配置表结构*/typedef	union	{		struct		{			UINT32 aim_mac_addr0	:32;	/*CPU配置待识别目的MAC(低32位)*/		}bits0;		UINT32 w32_0;	}ANYTYPE_FormCon0;	typedef	union	{		struct		{			UINT32 aim_mac_addr1	:16;	/*CPU配置待识别目的MAC(高16位)*/			UINT32 reserved		:16;		}bits1;		UINT32 w32_1;	}ANYTYPE_FormCon1;	typedef	union	{		struct		{                        UINT32 ether_type		:16;	/*CPU配置待识别以太网类型*/                        UINT32 vlan_id		:12;	/*CPU配置待识别VLAN ID   */			UINT32 reserved		:4;	/*                       */		}bits2;		UINT32 w32_2;	}ANYTYPE_FormCon2;typedef	union	{		struct		{                        UINT32 ctrl0		:2;		/*端口1ANYTYPE帧转发控制   */                        UINT32 type_en0 	:1;		/*端口1帧Ether type识别使能*/                        UINT32 vid_en0	:1;		/*端口1帧VLAN ID识别使能   */                        UINT32 da_en0 	:1;		/*端口1目的MAC识别使能     */                        UINT32 ctrl1		:2;		/*端口1ANYTYPE帧转发控制   */                        UINT32 type_en1	:1;		/*端口1帧Ether type识别使能*/                        UINT32 vid_en1	:1;		/*端口1帧VLAN ID识别使能   */                        UINT32 da_en1	:1;		/*端口1目的MAC识别使能     */			UINT32 reserved 	:22;		/*                       */		}bits3 ;		UINT32 w32_3 ;	}ANYTYPE_FormCon3;	/*VLAN配置表结构*/typedef union   {	struct	{                UINT32 vtag		:3;		/*VLAN对应表项是否带tag输出,基于端口*/                UINT32 vmem		:3;		/*VLAN对应表项对应的成员,基于端口*/                UINT32 fix_vid		:1;		/*VLAN对应表项是否是 固定的VID,高电平有效*/                UINT32 ipm_vid	:1;		/*VLAN对应表项是否是IP多播报文或特殊帧对应的VID,高电平有效*/                UINT32 vpri		:3;		/*VLAN对应表项的优先级    */                UINT32 reserved	:5;		/*	 */                UINT32 vid		:12;		/*待创建VLAN的VLAN ID */		UINT32 reserved1	:4;		/*	      */	}bits ;	UINT32 w32 ;}VLAN_Form_U;/*SF配置的帧描述子结构*/typedef union   {	struct	{                UINT32 fra_buf_addr		:11;		/*帧保存地址*/                UINT32 fra_type			:2;		/*帧类型*/                UINT32 ipm				:1;		/*ipm特殊帧*/                UINT32 spn          			:5;		/*sc,dd,du,00*/                UINT32 fra_len      			:11;		/*帧长度Byte    */                UINT32 f_vd				:1;		/*frame 有没有效--1*/                UINT32 m_u          			:1;		/*给我的时候表示是不是特殊帧,CPU发出的时候判断是不是多播、单播*/	}bits ;	UINT32 w32 ;}SF_Frame_Describe_U;/*CPU配置的帧描述子结构*/typedef union   {	struct	{                UINT32 fra_buf_addr		:11;		/*帧保存地址*/                UINT32 prior				:1;		/*帧优先级*/                UINT32 tag_in				:1;		/*输入帧是否带tag*/                UINT32 reserved			:1;		/*	*/                UINT32 spn          			:5;		/*sc,dd,du,00*/                UINT32 fra_len      			:11;		/*帧长度Byte    */                UINT32 tag_out			:1;		/*帧输出是否带tag*/                UINT32 special          		:1;		/*给我的时候表示是不是特殊帧,CPU发出的时候判断是不是多播、单播*/	}bits ;	UINT32 w32 ;}CPU_Frame_Describe_U;/*端口统计计数器结构体*/typedef struct   {	UINT32 drop_event;		/*帧接收的过程中,RXFIFO溢出事件的累计次数(0x0000/0x0100)*/	UINT32 crcerr;				/*接收帧的帧长有效,但其CRC或Alignment检查出错的帧的个数(0x0004/0x0104)*/	UINT32 undersizepkts;		/*帧长小于设定的最小有效帧长(缺省为64字节),又没有其它错误的接收帧的个数(0x0008/0x0108)*/	UINT32 oversizepkts;		/*帧长大于设定的最大有效帧长,又没有其它错误的接收帧的个数(0x000c/0x010c)*/	UINT32 fragments;			/*接收帧的帧长小于设定的最小有效值(缺省值为4字节),并且其CRC或Alignment检查出错的帧的个数(0x0010/0x0110)*/	UINT32 jabber;			/*接收帧的帧长大于设定的最大有效值,并且其CRC或Alignment检查出错的帧的个数(0x0014/0x0114)*/	UINT32 broadcastpkts;		/*仅为正确的广播帧的计数(0x0018/0x0118)*/	UINT32 multicastpkts;		/*仅为正确的多播帧的计数(0x001c/0x011c)*/	UINT32 pkts64;			/*接收帧长为64字节的帧的计数,正确帧和错误帧都包括(0x0020/0x0120)*/	UINT32 pkts65_127;		/*接收帧长为从65到127字节的帧的计数,正确帧和错误帧都包括(0x0024/0x0124)*/	UINT32 pkts128_255;		/*接收帧长为从128到255字节的帧的计数,正确帧和错误帧都包括(0x0028/0x0128)*/	UINT32 pkts256_511;		/*接收帧长为从256到511字节的帧的计数,正确帧和错误帧都包括(0x002c/0x012c)*/	UINT32 pkts512_1023;		/*接收帧长为从512到1023字节的帧的计数,正确帧和错误帧都包括(0x0030/0x0130)*/	UINT32 pkts1024_1518;	/*接收帧长为从1024到1518字节的帧的计数,正确帧和错误帧都包括(0x0034/0x0134)*/	UINT32 pkts_1518;			/*接收帧长大于1518字节的帧的计数,正确帧和错误帧都包括(0x0038/0x0138)*/	UINT32 ifinucastpkts;		/*接收的正确的单播帧的计数(0x003c/0x013c)*/	UINT32 ifinnucastpkts;		/*接收的非单播好帧(0x0040/0x0140)*/	UINT32 ifindiscards;			/*接收的错帧数(包括CRC错、超短帧、超长帧、Overflow和传输错)(0x0044/0x0144)*/	UINT32 ifinerrors;			/*接收的错帧数(包括CRC错、超短帧、超长帧和传输错)(0x0048/0x0148)*/	UINT32 ifinmulticast;		/*接收的多播帧数(包括错帧)(0x004c/0x014c)*/	UINT32 ifinbroadcast;		/*接收的广播帧数(包括错帧)(0x0050/0x0150)*/	UINT32 dot3alignmenterr;	/*接收到的奇数个nibble的CRC错帧(0x0054/0x0154)*/	UINT32 dot3fcserr;			/*接收到的偶数个nibble的CRC错帧(0x0058/0x0158)*/	UINT32 dot3internalrecerr;	/*接收的错帧数(不包括CRC和Overflow错)(0x005c/0x015c)*/	UINT32 dot3inpause;		/*接收的已知操作码的流控帧数(0x0060/0x0160)*/	UINT32 dot3unkpause;		/*接收的未知操作码的流控帧数(0x0064/0x0164)*/	UINT32 dot3dribble;		/*接收的奇数个nibble的CRC正确的帧(0x0068/0x0168)*/	UINT32 octets;				/*接收字节计数(含正确帧和错误帧,但Preamble字节以及未检测到有效SFD的帧中的字节不计在内)(0x006c/0x016c)*/	UINT32 pkts;				/*所有帧的计数,正确帧和错误帧都包括(0x0070/0x0170)*/	UINT32 ifinoctets;			/*所有接收字节的计数,包括正确帧、错误帧以及Preamble中的字节(0x0074/0x0174)*/	UINT32 broadcastpkts_tx;	/*发送的正确的广播帧的计数,不含重发的广播帧(0x0080/0x0180)*/	UINT32 multicastpkts_tx;	/*发送的正确的多播帧的计数,不含重发的多播帧(0x0084/0x0184)*/	UINT32 ifoutdiscards;		/*帧发送的过程中,TXFIFO溢出事件的累计次数(0x0088/0x0188)*/	UINT32 ifouterrors;			/*发送过程中,所有错帧的计数,重传的除外(0x008c/0x018c)*/	UINT32 ifoutucastpkts;		/*发送的正确或错误的单播帧的计数,不含重传的单播帧(0x0090/0x0190)*/	UINT32 ifoutnucastpkts;		/*发送的非单播好帧(0x0094/0x0194)*/	UINT32 ifoutmulticast;		/*发送的多播帧(0x0098/0x0198)*/	UINT32 ifoutbroadcast;		/*发送的广播帧(0x009c/0x019c)*/	UINT32 pkts64_tx;			/*发送帧长为64字节的帧的计数,正确帧和错误帧都包括(0x00a0/0x01a0)*/	UINT32 pkts65_127_tx;		/*发送帧长为65到127字节的帧的计数,正确帧和错误帧都包括(0x00a4/0x01a4)*/	UINT32 pkts128_255_tx;	/*发送帧长为128到255字节的帧的计数,正确帧和错误帧都包括(0x00a8/0x01a8)*/	UINT32 pkts256_511_tx;	/*发送帧长为256到511字节的帧的计数,正确帧和错误帧都包括(0x00ac/0x01ac)*/	UINT32 pkts512_1023_tx;	/*发送帧长为512到1023字节的帧的计数,正确帧和错误帧都包括(0x00b0/0x01b0)*/	UINT32 pkts1024_1518_tx;	/*发送帧长为1024到1518字节的帧的计数,正确帧和错误帧都包括(0x00b4/0x01b4)*/	UINT32 pkts_1518_tx;		/*发送帧长大于1518字节的帧的计数,正确帧和错误帧都包括(0x00b8/0x01b8)*/	UINT32 dot3singlecol;		/*发生一次冲突后发送成功的帧数目(0x00bc/0x01bc)*/	UINT32 dot3multiplecol;		/*发生多次冲突后发送成功的帧数目(0x00c0/0x01c0)*/	UINT32 dot3latecol;			/*发生Late collission的帧数目(0x00c4/0x01c4)*/	UINT32 dot3excessivecol;	/*由于重传次数大于15而丢弃的帧数目(0x00c8/0x01c8)*/	UINT32 dot3colcnt;			/*冲突次数等于冲突阈值的帧数(0x00cc/0x01cc)*/	UINT32 dot3defer;			/*由于网络忙而被延迟转发的帧数(0x00d0/0x01d0)*/	UINT32 pkts_tx;			/*全部发帧的计数,含正确帧和错误帧,但不含重发帧(0x00d4/0x01d4)*/	UINT32 octets_tx;			/*发送字节计数(含重发帧以及正确帧和错误帧,但Preamble字节不计在内)(0x00d8/0x01d8)*/	UINT32 collisions;			/*Collision发生的次数,不含SQE(0x00dc/0x01dc)*/	UINT32 ifoutoctets;			/*发送的全部字节,包含所有Preamble的字节以及正确帧、错误帧和重传帧的全部字节数(0x00e0/0x01e0)*/	UINT32 dot3outpause;		/*发送的流控帧数目(0x00e4/0x01e4)*/}Port_Cnt_S;/*帧的MAC头结构体定义*/typedef struct{        UINT32 DMACH32              	:32;	/*目的MAC地址的高32位*/        UINT32 SMACH16           		:16;	/*源MAC地址的高16位*/        UINT32 DMACL16          		:16;	/*目的MAC地址的低16位*/        UINT32 SMACL32          		:32;	/*源MAC地址的低32位*/}FrameMACHead_S;/****5种帧结构的结构体定义****/#if 0/////*以太网帧头格式*///typedef struct//	{//                UINT32 DMACH32              	:32;	/*目的MAC地址的高32位*///                UINT32 SMACH16           	:16;	/*源MAC地址的高16位*///                UINT32 DMACL16          		:16;	/*目的MAC地址的低16位*///                UINT32 SMACL32          		:32;	/*源MAC地址的低32位*///                UINT32 TAGHeader      		:32;	/*TAG Header*///                UINT32 TOS          		:8;	/*	*///                UINT32 VER          		:8;	/*版本号*///                UINT32 TYPE          		:16;	/*帧格式TYPE*///                UINT32 FrameID          		:16;	/*帧标志(计算第几个帧)*///                UINT32 FrameLength          	:16;	/*数据包长度*///                UINT32 Protocol          	:8;	/*协议*///                UINT32 SliceOffset          	:13;	/*片偏移*///                UINT32 SliceFlag          	:3;	/*分片标志*///                UINT32 SIPH16          		:16;	/*源IP地址高16位*///                UINT32 HeadChecksum          	:16;	/*首部校验和*///                UINT32 DIPH16          		:16;	/*目的IP地址低16位*///                UINT32 SIPL16          		:16;	/*源IP地址低16位*///                UINT32 SPortNo          		:16;	/*源端口号*///                UINT32 DIPL16          		:16;	/*目的IP地址低16位*///                UINT32 DataLength          	:16;	/*数据包长度*///                UINT32 DPortNo          		:16;	/*目的端口号*///                UINT32 HAddrType          	:16;	/*硬件地址类型*///                UINT32 Checksum          	:16;	/*校验和*///                UINT32 reserved			:16;	/*	*///                UINT32 HAddrLen          	:16;	/*硬件地址长度*///}EthernetFrame_S;/////*SNAP帧的报文头格式*///typedef struct//	{//                UINT32 DMACH32              	:32;	/*目的MAC地址的高32位*///                UINT32 SMACH16           	:16;	/*源MAC地址的高16位*///                UINT32 DMACL16          		:16;	/*目的MAC地址的低16位*///                UINT32 SMACL32          		:32;	/*源MAC地址的低32位*///                UINT32 TAGHeader      		:32;	/*TAG Header*/////                UINT32 SSAP          		:8;	/*	*///                UINT32 DSAP          		:8;	/*	*///                UINT32 Length          		:16;	/*	*///                UINT32 Reserved0          	:24;	/*	*///                UINT32 Contr          		:8;	/*	*///                //                UINT32 TOS          		:8;	/*	*///                UINT32 VER          		:8;	/*版本号*///                UINT32 TYPE          		:16;	/*帧格式TYPE*///                UINT32 FrameID          		:16;	/*帧标志(计算第几个帧)*///                UINT32 FrameLength          	:16;	/*数据包长度*///                UINT32 Protocol          	:8;	/*协议*///                UINT32 SliceOffset          	:13;	/*片偏移*///                UINT32 SliceFlag          	:3;	/*分片标志*///                UINT32 SIPH16          		:16;	/*源IP地址高16位*///                UINT32 HeadChecksum          	:16;	/*首部校验和*///                UINT32 DIPH16          		:16;	/*目的IP地址低16位*///                UINT32 SIPL16          		:16;	/*源IP地址低16位*///                UINT32 SPortNo          		:16;	/*源端口号*///                UINT32 DIPL16          		:16;	/*目的IP地址低16位*///                UINT32 DataLength          	:16;	/*数据包长度*///                UINT32 DPortNo          		:16;	/*目的端口号*///                UINT32 HAddrType          	:16;	/*硬件地址类型*///                UINT32 Checksum          	:16;	/*校验和*///                UINT32 Reserved1			:16;	/*	*///                UINT32 HAddrLen          	:16;	/*硬件地址长度*///}SNAPFrame_S;/////*802.3 LL2帧头格式*///typedef struct//	{//                UINT32 DMACH32              	:32;	/*目的MAC地址的高32位*///                UINT32 SMACH16           	:16;	/*源MAC地址的高16位*///                UINT32 DMACL16          		:16;	/*目的MAC地址的低16位*///                UINT32 SMACL32          		:32;	/*源MAC地址的低32位*///                UINT32 TAGHeader      		:32;	/*TAG Header*/////                UINT32 SSAP          		:8;	/*	*///                UINT32 DSAP          		:8;	/*	*///                UINT32 Length          		:16;	/*	*///                UINT32 TOS          		:8;	/*	*///                UINT32 VER          		:8;	/*版本号*///                UINT32 Contr          		:8;	/*	*///                //                UINT32 FrameID          		:16;	/*帧标志(计算第几个帧)*///                UINT32 FrameLength          	:16;	/*数据包长度*///                UINT32 Protocol          	:8;	/*协议*///                UINT32 SliceOffset          	:13;	/*片偏移*///                UINT32 SliceFlag          	:3;	/*分片标志*///                UINT32 SIPH16          		:16;	/*源IP地址高16位*///                UINT32 HeadChecksum          	:16;	/*首部校验和*///                UINT32 DIPH16          		:16;	/*目的IP地址低16位*///                UINT32 SIPL16          		:16;	/*源IP地址低16位*///                UINT32 SPortNo          		:16;	/*源端口号*///                UINT32 DIPL16          		:16;	/*目的IP地址低16位*///                UINT32 DataLength          	:16;	/*数据包长度*///                UINT32 DPortNo          		:16;	/*目的端口号*///                UINT32 HAddrType          	:16;	/*硬件地址类型*///                UINT32 Checksum          	:16;	/*校验和*///                UINT32 Reserved			:16;	/*	*///                UINT32 HAddrLen          	:16;	/*硬件地址长度*///}802_3_LL2_S;#endif#endif /* __DRIVERS_NET_HISILICON_SF_REGSTRUCT_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -