跳到主要内容

3.6. 用于可扩展性的消息与 TLV

对 LDP 可扩展性的支持包括关于 U 位和 F 位的规则, 它们规定 LSR 如何处理未知 TLV 和未知消息。

本节规定供厂商私有和实验性使用的 TLV 与消息。

3.6.1. LDP 厂商私有扩展​

厂商私有 TLV 和消息用于在 LSR 之间传递厂商私有信息。

3.6.1.1. LDP 厂商私有 TLV​

Type 范围 0x3E00 到 0x3EFF 保留给厂商私有 TLV。

厂商私有 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| Type (0x3E00-0x3EFF) | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Vendor ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| Data.... |
~ ~
| |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

U-bit

未知 TLV 位。收到未知 TLV 时, 如果 U 为 0, 则必须向消息发起方返回一个通知, 并且必须忽略整条消息; 如果 U 为 1, 则静默忽略该未知 TLV, 并像该未知 TLV 不存在一样处理消息的其余部分。

判定一条厂商私有消息是否被理解, 依据的是 Type 和必需的 Vendor ID 字段。

支持厂商私有 TLV 的实现必须支持一个用户可访问的配置接口, 使得所有发送的厂商私有 TLV 都置位 U 位; 该要求可以通过一个用户可访问的、阻止发送所有 U 位为 0 的厂商私有 TLV 的配置接口来满足。

F-bit

转发未知 TLV 位。该位仅在 U 位被置位, 且包含该未知 TLV 的 LDP 消息需要被转发时适用。如果 F 为 0, 则该未知 TLV 不随包含它的消息一起转发; 如果 F 为 1, 则该未知 TLV 随包含它的消息一起转发。

Type

取值范围为 0x3E00 到 0x3EFF 的 Type 值。Type 与 Vendor ID 字段共同规定 Data 字段应如何解释。

Length

规定 Vendor ID 和 Data 字段的累计长度 (以八位组为单位)。

Vendor ID

由 IEEE 分配的 802 Vendor ID。

Data

Value 字段中 Vendor ID 之后的其余八位组为可选的、依赖于厂商的数据。

3.6.1.2. LDP 厂商私有消息​

Message Type 范围 0x3E00 到 0x3EFF 保留给厂商私有消息。

 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| Msg Type (0x3E00-0x3EFF) | Message Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Message ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Vendor ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ +
| Remaining Mandatory Parameters |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| Optional Parameters |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

U-bit

未知消息位。收到未知消息时, 如果 U 为 0, 则向消息发起方返回一个通知; 如果 U 为 1, 则静默忽略该未知消息。

判定一条厂商私有消息是否被理解, 依据的是 Msg Type 和 Vendor ID 参数。

支持厂商私有消息的实现必须支持一个用户可访问的配置接口, 使得所有发送的厂商私有消息都置位 U 位; 该要求可以通过一个用户可访问的、阻止发送所有 U 位为 0 的厂商私有消息的配置接口来满足。

Msg Type

取值范围为 0x3E00 到 0x3EFF 的 Message Type 值。Msg Type 与 Vendor ID 共同规定该消息应如何解释。

Message Length

规定 Message ID、Vendor ID、Remaining Mandatory Parameters 和 Optional Parameters 的累计长度 (以八位组为单位)。

Message ID

用于标识本消息的 32 位整数。发送方 LSR 用它来便于识别可能适用于本消息的通知消息。响应本消息而发送通知消息的 LSR 将在该通知消息中包含本 Message ID; 见 "Notification Message" 一节。

Vendor ID

由 IEEE 分配的 802 Vendor ID。

Remaining Mandatory Parameters

其余必需消息参数的可变长度集合。

Optional Parameters

可选消息参数的可变长度集合。

3.6.2. LDP 实验性扩展​

LDP 对实验的支持与对厂商私有扩展的支持类似, 但有如下差异:

  • Type 范围 0x3F00 到 0x3FFF 保留给实验性 TLV。

  • Message Type 范围 0x3F00 到 0x3FFF 保留给实验性消息。

  • 实验性 TLV 和消息的编码与厂商私有编码类似, 但有如下差异。

    实验性 TLV 和消息使用 Experiment ID 字段代替 Vendor ID 字段。Experiment ID 字段与 Type 或 Message Type 字段一起规定该实验性 TLV 或消息的解释。

    Experiment ID 的管理由各实验者负责。