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

📄 fec.h

📁 技术文件名称:MPLSv1.0软件模块测试规程
💻 H
字号:
/* ****************************************************************** */
/* Product Name:MPLS                                                  */
/* Modul Name: 	PROTOCOL	        File Name : fec.h	        	  */
/* Creat Date:  01.12.03          Author : shi.zhaohui                */
/* Version:    1.0                                                   */
/* History:     kong.yong                                             */
/*              weng.qing                                             */
/**********************************************************************/

#ifndef FEC_H
#define FEC_H


#include "EncDec.h"
#include "mpls.h"
#include "oamldp.h"
#include "mplsmain.h"
#include "mplslsp.h"
#include "mplserr.h"
#include "_noalign.h" 

#define BGP_OSPF_ROUTE_START_UP		        6001

#define INGRESS     				0x1
#define EGRESS      				0x2
#define EDGE						0x1
#define BACKBONE    				0x3

/* OperateType定义 */
#define NEW_TYPE            		11   /* fec to ldp lsp setup */
#define UPDATE_TYPE         		21   /* fec to ldp lsp next hop change */
#define ELEM_CHANGE_TYPE    		31   /* fec element change */
#define STUDY_TYPE          		41   /* ldp to fec study for not ingress */
#define DELETE_PVC_TYPE   			51
/* fec to ldp lsp delete(ingress) and ldp to fec lsp delete(not ingress) */
#define INQUIRE_TYPE        		61   /* ldp to fec inquire router */
#define RESPONSE_TYPE           71  /* ldp to fec setup response(ingress) */
#define LBLABORT_TYPE           81  /* fec to ldp label abort */
#define ATT_CHANGE_TYPE         91  /* fec to ldp attribute change */

/*
typedef struct _fec_msg_tlvs_flags
{
	  unsigned char                            fecTlvExists:			1;
      unsigned char                            lspidTlvExists:		1;
      unsigned char                            erTlvExists:				1;
      unsigned char                            trafficTlvExists:	1;
      unsigned char                            pinningTlvExists:	1;
      unsigned char                            recClassTlvExists:	1;
      unsigned char                            preemptTlvExists:	1;
} fec_msg_tlvs_flags;
*/
typedef struct
{
   	mplsLdpLspIdTlv_t           lspidTlv;      /* lspid tlv */

	  mplsFecElement_t  	        fecElArray[MPLS_MAXNUMFECELEMENT];
    unsigned char                  		  fecElemTypes[MPLS_MAXNUMFECELEMENT];
        	                    	/* 1,2,3,4. 通常取前缀类型为2 */
    unsigned short				              fecElemNum;

    mplsLdpTrafficTlv_t	        Traffic;	/* 用于描述流量参数 */
	  mplsLdpErTlv_t              erTlv;       /* constraint rtg tlv*/
    mplsLdpPinningTlv_t         pinningTlv;  /* pinning tlv       */
    mplsLdpResClsTlv_t          resClassTlv; /* resource class tlv*/
    mplsLdpPreemptTlv_t         preemptTlv;  /* peemtion tlv      */

		/* 7 6 5 4 3 2 1 0: preempt,resclass,pinning,ertlv,traffic,lspidtlv, */
    union
    {
    	fec_msg_tlvs_flags 	    flags;
    	unsigned char					mark;
    }TlvExists;
  unsigned long					     	statusCode; /*错误代码 */

	unsigned short		    	        ifIndex;	/* 路由出口的ifIndex(高端)*/
	unsigned char					    port;		/* 路由出口的port(高端)*/
	unsigned long				        NextHop;    /* ospf */
	unsigned short			            sbPort; //sbIfIndex; 	/* 用于标识Ingress Lsr上的某个SB板 */
	unsigned char                       sbModule;
	unsigned char                       loadShare;   /* load balance */
	
  unsigned char                         RouteType;   /* 高四位:是否重新绑定;低四位是Route Type,包括三种类型:INGRESS,EGRESS,BACKBONE */

   unsigned short                        in_protocol_type;
  unsigned short                         out_protocol_type;
    /* 这条LSP和UpLspCBNo、Module也是一一对应的 */
    /*lspCBNo_t                    upLspCBStru;   只需要上游查询就可以了,下游可从上游获得查询结果 
    lspCBNo_t                    downLspCBStru;   huyonghong 2002-6-25 */

    QosMulitFieldFilter_t        qosfilterstr;
    unsigned long                lspIndex;  /* 2002-7-4  hu yonghong */
    unsigned char                pathType;  /* 2002-7-26 sbp  dynamic , explicit */
    unsigned char                metric;
}MPLS_PACK struct_mplsLdpFecTlv_Table;


typedef struct
{
	unsigned short					    LspNo;			/* setup lsp number */
	unsigned char						OperateType;
	struct_mplsLdpFecTlv_Table	 Fec;
}MPLS_PACK FecMsg;

typedef struct {
    unsigned short  index;
    FecMsg          FecAck;
}MPLS_PACK FecAckMsg;    

#include "_restore.h"

#endif




⌨️ 快捷键说明

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