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

📄 encdec.h

📁 技术文件名称:MPLSv1.0软件模块测试规程
💻 H
📖 第 1 页 / 共 5 页
字号:
               struct mplsLdpFrFlag_s flags;
               unsigned long                  mark[2];
            } flags;

   } mplsLdpFrLblRng_t;



/**********************************************************************
   Frame Relay Session Parameters TLV

     0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |U|F|   FR Sess Parms (0x0502)  |      Length                   |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     | M |   N   |D|                        Reserved                 |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |             Frame Relay Label Range Component 1               |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                                                               |
     ~                                                               ~
     |                                                               |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |             Frame Relay Label Range Component N               |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     draft-ietf-mpls-ldp-11.txt page 63
***********************************************************************/

   typedef struct mplsLdpFspTlv_s
   {
      struct mplsLdpTlv_s baseTlv;
      union {
               struct mplsLdpSPFlag_s flags;
               unsigned long                  mark;
            } flags;
      struct mplsLdpFrLblRng_s lblRngList[MPLS_FRLBLMAXLEN];
 
   } mplsLdpFspTlv_t;




/***********************************************************************
   Initialization Message Encoding

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |U|   Initialization (0x0200)   |      Message Length           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Message ID                                |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Common Session Parameters TLV             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Optional Parameters                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   draft-ietf-mpls-ldp-11.txt page 57
   Optional Parameters includes:
   ATM Session Parameters;
   Frame Relay SessionParameters
***********************************************************************/

   typedef struct mplsLdpInitMsg_s
   {
      struct mplsLdpMsg_s    baseMsg;
      struct mplsLdpCspTlv_s csp;
      struct mplsLdpAspTlv_s asp;
      struct mplsLdpFspTlv_s fsp;
      struct mplsLdpTlv_s 	baseTlv[MPLS_LDP_UNKNOWN_TLV_NO];
      unsigned char                 cspExists:1;
      unsigned char                 aspExists:1;
      unsigned char                 fspExists:1;
      unsigned char                 unknownNo;
	  unsigned char                 unknownValue[MPLS_LDP_UNKNOWN_TLV_LENGTH];
 
   } mplsLdpInitMsg_t;



/***********************************************************************
   Status Code Encoding

      0                   1                   2                   3
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |E|F|                 Status Data                               |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
***********************************************************************/
   typedef struct mplsLdpStautsFlag_s
   {
      BITFIELDS_ASCENDING_3( unsigned long error  :1, /* E bit */
	                         unsigned long forward:1, /* F bit */
	                         unsigned long status :30 
	                        )
   } mplsLdpStautsFlag_t;



/***********************************************************************
   Status (TLV) Encoding

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |U|F| Status (0x0300)           |      Length                   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Status Code                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Message ID                                |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |      Message Type             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   draft-ietf-mpls-ldp-11.txt page 45
***********************************************************************/

   typedef struct mplsLdpStatusTlv_s
   {
      struct mplsLdpTlv_s baseTlv;
      union {
	      struct mplsLdpStautsFlag_s flags;
	      unsigned long                      mark;
            } flags;
      unsigned long               msgId;
      unsigned short             msgType;

   } mplsLdpStatusTlv_t;



/***********************************************************************
   Extended Status (TLV) Encoding
***********************************************************************/

   typedef struct mplsLdpExStatusTlv_s
   {
      struct mplsLdpTlv_s    baseTlv;
      unsigned long                  value;   /* additional info for status */

   } mplsLdpExStatusTlv_t;



/***********************************************************************
   Returned PDU (TLV) Encoding
***********************************************************************/

   typedef struct mplsLdpRetPduTlv_s
   {
      struct mplsLdpTlv_s    baseTlv;
      struct mplsLdpHeader_s headerTlv;
      unsigned char                 data[MPLS_NOT_MAXSIZE];
                            /* wengqing 2k/11/24 
                               refer to Ln 155 may have problem
                            */
   } mplsLdpRetPduTlv_t;



/***********************************************************************
   Returned MSG (TLV) Encoding
***********************************************************************/

   typedef struct mplsLdpRetMsgTlv_s 
   {
      struct mplsLdpTlv_s baseTlv;
      unsigned short             msgType;
      unsigned short             msgLength;
      unsigned char              data[MPLS_NOT_MAXSIZE];
                         /* wengqing 2k/11/24 
                            refer to Ln 155 may have problem
                         */
   } mplsLdpRetMsgTlv_t;



/***********************************************************************
   LSPID Tlv encoding

      0                   1                   2                   3
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |U|F|      LSPID-TLV  (0x0821)  |      Length                   |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |       Reserved        |ActFlag|      Local MPLS_CRLSP_FEC ID           |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                       Ingress LSR Router ID                   |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     draft-ietf-mpls-crldp-04.txt page 18
     wengqing 2k/11/24       add ActFlag
***********************************************************************/
      /* wengqing 2k/11/24 */
      typedef struct mplsLdpCrlspActFlag_s
      {
            BITFIELDS_ASCENDING_2(
                            unsigned short   res:       12,
                            unsigned short   ActFlag:   4   
                            )
       }mplsLdpCrlspActFlag_t;

   typedef struct mplsLdpLspIdTlv_s
   {
      struct mplsLdpTlv_s baseTlv;
      union {
                struct mplsLdpCrlspActFlag_s flag;
                unsigned short                       mark;
             }actFlag;
      unsigned short              localCrlspId;
      unsigned long               routerId;     /* ingress lsr router id */

   } mplsLdpLspIdTlv_t;


/***********************************************************************
   Notification Message Encoding

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |U|   Notification (0x0001)     |      Message Length           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Message ID                                |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Status (TLV)                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Optional Parameters                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     LSPID TLV (optional for CR-LDP)           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   draft-ietf-mpls-crldp-04.txt page 9
***********************************************************************/

   typedef struct mplsLdpNotifMsg_s
   {
      struct mplsLdpMsg_s         baseMsg;
      struct mplsLdpStatusTlv_s   status;
      struct mplsLdpExStatusTlv_s exStatus;    /* extended status tlv */
      struct mplsLdpRetPduTlv_s   retPdu;      /* returned PDU tlv    */
      struct mplsLdpRetMsgTlv_s   retMsg;      /* returned MSG tlv    */
      struct mplsLdpLspIdTlv_s    lspidTlv;    /* lspid tlv           */
      struct mplsLdpLblMsgIdTlv_s	lblMsgIdTlv;
      struct mplsLdpTlv_s 		  baseTlv[MPLS_LDP_UNKNOWN_TLV_NO];
      unsigned char                      statusTlvExists:1;
      unsigned char                      exStatusTlvExists:1;
      unsigned char                      retPduTlvExists:1;
      unsigned char                      retMsgTlvExists:1;
      unsigned char                      lspidTlvExists: 1; /* wengqing 2k/11/24 */
      unsigned char                      lblMsgIdTlvExists:1;
      unsigned char               		 unknownNo;
	  unsigned char               		 unknownValue[MPLS_LDP_UNKNOWN_TLV_LENGTH];                                              
   } mplsLdpNotifMsg_t;


/***********************************************************************
   Common Hello Parameters Tlv encoding
 
      0                   1                   2                   3
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |U|F| Common Hello Parms(0x0400)|      Length                   |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |      Hold Time                |T|R| Reserved                  |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     draft-ietf-mpls-ldp-11.txt page 54
***********************************************************************/
   typedef struct mplsLdpChpFlag_s
   {
     BITFIELDS_ASCENDING_3( unsigned short target :1, /* T bit */
                            unsigned short request:1, /* R bit */
                            unsigned short res    :14 )
   } mplsLdpChpFlag_t;
 
   typedef struct mplsLdpChpTlv_s 
   {
      struct mplsLdpTlv_s baseTlv;
      unsigned short             holdTime;
      union {  struct mplsLdpChpFlag_s flags;
               unsigned short                 mark;
            } flags;

   } mplsLdpChpTlv_t;



/***********************************************************************
   Transport Address (TLV) Encoding
   draft-ietf-mpls-ldp-11.txt page 55
***********************************************************************/

   typedef struct mplsLdpTrAdrTlv_s
   {
      struct mplsLdpTlv_s baseTlv;
      unsigned long               address;

    } mplsLdpTrAdrTlv_t;

   typedef struct mplsLdpTrAdrIpv6Tlv_s
   {
      struct mplsLdpTlv_s baseTlv;
      unsigned long               address[4];

⌨️ 快捷键说明

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