📄 encdec.h
字号:
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 + -