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

📄 feci.h

📁 技术文件名称:MPLSv1.0软件模块测试规程
💻 H
字号:
#ifndef FECI_H
#define FECI_H

 #include "_noalign.h"

typedef	unsigned long 	IPaddr;		/*  internet address		*/
#define RTM_NOT_USE  0
#define RTM_IN_USE   1
#define MPLS_VAL_RowStatus_active		1
#define MPLS_FEC_BUFFER_MAX             20000    /* buffer: 430K */

#define MPLS_FEC_SUCCESS             1
/*    FALSE 0
*/
#define MPLS_FEC_MEM_VALID           2

#define LSP_RTE_TIMER     1

#define LSP_OPER_OAM     1
#define LSP_OPER_ROUTE   2
#define LSP_OPER_SB_OFFLINE   3
#define LSP_OPER_LDP_DELETE   4
#define LSP_OPER_TIMEOVER     5

#define NOT_LSP_VALID_FIRST_HOP   0
#define LSP_VALID_FIRST_HOP       1

typedef struct
{
	unsigned short vpi;
	unsigned short vci;
}MPLS_PACK FwdMpls;

typedef FwdMpls *SearchMplsLab();

typedef struct{ // the current position sequence is for microcode
	#ifdef __INSTALL_GEI
    uchar   OutputFlag;     /*标识本表项是否有效,以及数据包出口	*/
	union {
  		struct {
    		uchar    	phyPort;         /*物理端口号,由a070模块提供*/
    		MACADDR  	dstmac;	
    		MACADDR 	sourcemac;
    		ushort          logicnum; /*逻辑端口号*/
  		}eth;
  		struct {
    		uchar   	phyPort;         /*物理端口号,由a070模块提供*/
    		ushort  	vcc_descriptor;
			uchar  		forwardhead[FORWARD_HEAD_LEN];
			uchar       vccdes_direct;  /*描述业务板到业务板的VCC DESCRIPTOR。
	不是直接到目的单板,由PP转接的,VCC_TO_PP;直接到目的单板的VCC_TO_MOD,上层A070用*/
			uchar  		reserved4[3];
   		}vcc;
  		struct {
    		uchar    	reserved3[15];      /* 为了union对齐*/
  		}resv; //为其他的转发保留
	} phy_channel;
	unsigned char  FromArpFlag;	
	#endif
    unsigned char  NatFlag; /*出端口类型(bit0,1),0:普通端口 1:内部端口 2:外部端口
                              其他BIT位未使用*/
	unsigned char  InterfaceType;	// ATM/ETHERNET/FR… 
    unsigned char  EntryType;//到这里总共20字节
    unsigned char  *MplsBase;//到这里总共24字节
    unsigned  int  AsOutOrVpnLabel;   /*内层标签*/
    ushort 	       vpnid;             /*VPN标识*/
	unsigned char  ModuleNo;      
	unsigned char  useflag;
	unsigned long  DestIpNet;     	
	unsigned short NumInNif;      
	unsigned short Ifindex;        
	unsigned long  DestIpMask;    // host route DestIpMask = 0xFFFFFFFF
	unsigned long  GateWay;       // direct route GateWay = 0xFFFFFFFF
	SearchMplsLab  *MplsEntry;
	unsigned char  ServType;          /*区别PPPOE路由,PPPOE 1,纯路由 0*/
	unsigned char  reserved3[11];      
}MPLS_PACK RoutEntry;

#define CHANGROUTE_MAX          16

#define   RT_ADD                  1
#define   RT_DEL                  2

#define   MYOWN                   1
#define   DYNAMIC                 2
#define   MYADDR                  3
#define   EGRESS_PROXY            4
#if 0
typedef struct{
    unsigned short    		 Type;          /* operation type  1: add,  2: delete */
	unsigned long            Dest;     	    /*目的地址      */
	unsigned long            NetMask; 	    /*目的地址的掩码*/
	unsigned long            NextHop;       /*下一跳的IP地址*/
	short             		 IfIndex;  	    /*端口索引      */
	unsigned short           rt_type;       /* route type: mine, dynamic, proxy */
}MPLS_PACK IPFORWARDINGTAB;
#endif
typedef struct{
    unsigned short           vpnid;
    unsigned short    		 Type;
	unsigned long            Dest;     	    /*目的地址      */
	unsigned long            NetMask; 	    /*目的地址的掩码*/
	unsigned long            NextHop;       /*下一跳的IP地址*/
	short             		 IfIndex;  	    /*端口索引      */
	unsigned char            module;
	unsigned char            ServType;      /*pppoe or ipv4*/
	unsigned short           rt_type;       /*local,dynamic;for mpls 02-9-25 */	
	unsigned char            EntryType;     /*pure route or mpls route*/
	unsigned char            FwdType;       /*wuliming 2004.2.20 added for mib*/
	unsigned char            ProtoType;     /*wuliming 2004.2.20 added for mib */
}MPLS_PACK IPFORWARDINGTAB;

typedef struct{
	unsigned short	  MsgNo;
	unsigned short	  reserved;
	unsigned long	  changenumber;
        IPFORWARDINGTAB   IpForwardingTab[CHANGROUTE_MAX];
}MPLS_PACK ROUTEMESSAGE_UPDATE;

typedef struct{
    unsigned long ipaddr;
    unsigned long mask;
}MPLS_PACK ipMask_t;

typedef struct{
    unsigned char        operType;      /* 1: oam, 2: route , 3 sb offline */
    unsigned short       localLspId;
    unsigned long        IngressId;
}MPLS_PACK lsptag_t;

typedef struct{
    unsigned char    oper; /* add   delete */
    unsigned char    msgType;
    union{
        lsptag_t          lsp;
        IPFORWARDINGTAB   addr;
    }msgData;
}MPLS_PACK fecBuffer_t;

typedef struct{
    unsigned char     type;     /* route or lsp*/
    unsigned long    index;    /* high: lsp: localLspId, route: rteIndex, low: route number */
}MPLS_PACK ldpFecAck_t;

 #include "_restore.h" 

#endif

⌨️ 快捷键说明

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