From 783bb0dff00cd48e86da48326d7ab4dbc73120ca Mon Sep 17 00:00:00 2001 From: Randy Bush Date: Fri, 3 May 2019 13:08:22 -0700 Subject: [PATCH] payload length to 32 and encaps count to 24 --- draft-ietf-lsvr-l3dl.xml | 261 ++++++++++++++++++++------------------- 1 file changed, 134 insertions(+), 127 deletions(-) diff --git a/draft-ietf-lsvr-l3dl.xml b/draft-ietf-lsvr-l3dl.xml index 03e6418..4b158e7 100644 --- a/draft-ietf-lsvr-l3dl.xml +++ b/draft-ietf-lsvr-l3dl.xml @@ -493,7 +493,7 @@ uint32_t sbox_checksum_32(const uint8_t *b, const size_t n) Datagrams, see .
@@ -501,13 +501,13 @@ uint32_t sbox_checksum_32(const uint8_t *b, const size_t n) 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -| Type | Payload Length | ~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ -~ Payload ... ~ +| PDU Type | Payload Length ~ ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +~ | Payload ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sig Type | Signature Length | ~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ -~ Signature ~ ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + +~ Signature | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
@@ -540,9 +540,9 @@ uint32_t sbox_checksum_32(const uint8_t *b, const size_t n) The type of the Signature. Type 0, a null signature, is defined in this document. - Sig Type 0 indicates a null Signature. For very short PDUs, - the underlying Datagram checksums may be sufficient for integrity, - if not for authentication. + Sig Type 0 indicates a null Signature. For a trivial PDU such + as KEEPALIVE, the underlying Datagram checksum may be sufficient + for integrity, though it lacks authentication. Other Sig Types may be defined in other documents. @@ -621,6 +621,8 @@ uint32_t sbox_checksum_32(const uint8_t *b, const size_t n) layer-3 routing protocols as being learned on the corresponding layer-3 SVI interface for the VLAN. + LLEIs are big-endian. +
@@ -651,7 +653,7 @@ uint32_t sbox_checksum_32(const uint8_t *b, const size_t n) default of 60 seconds.
@@ -659,10 +661,10 @@ uint32_t sbox_checksum_32(const uint8_t *b, const size_t n) 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -| Type = 0 | Payload Length = 0 | Sig Type = 0 | +| PDU Type = 0 | Payload Length = 0 ~ ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +~ | Sig Type = 0 | Signature Length = 0 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -| Signature Length = 0 | -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
@@ -690,7 +692,7 @@ uint32_t sbox_checksum_32(const uint8_t *b, const size_t n) frame.
@@ -698,23 +700,19 @@ uint32_t sbox_checksum_32(const uint8_t *b, const size_t n) 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -| Type = 1 | Payload Length | ~ +| PDU Type = 1 | Payload Length ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -| Nonce | LLEI Length | +~ | Nonce ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -~ ~ -~ My LLEI ~ -~ ~ +~ | LLEI Length | My LLEI | ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-~ +~ | AttrCount | ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -| AttrCount | Attribute List ... | +~ Attribute List ... | Auth Type | Key Length ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -| Auth Type | Key Length | ~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ -~ Key ... ~ +~ | Key ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -| Sig Type | Signature Length | ~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ -~ Signature ... ~ +| Sig Type | Signature Length | Signature ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
@@ -728,8 +726,7 @@ uint32_t sbox_checksum_32(const uint8_t *b, const size_t n) prevent session closure due to a repeated OPEN caused by a race or a dropped or delayed ACK. - My LLEI is the sender's LLEI, see . LLEIs - are big-endian. + My LLEI is the sender's LLEI, see . AttrCount is the number of attributes in the Attribute List. Attributes are single octets whose semantics are user-defined. @@ -745,8 +742,8 @@ uint32_t sbox_checksum_32(const uint8_t *b, const size_t n) target="tlv"/>. Key Length is a 16-bit field denoting the length in octets of the - Key, not including the Auth Type or the Key Lengths. If there is no - Key, the Auth Type and key Length MUST both be zero. + Key itself, not including the Auth Type or the Key Lengths. If + there is no Key, the Auth Type and key Length MUST both be zero. The Key is specific to the operational environment. A failure to authenticate is a failure to start the L3DL session, an ERROR PDU is @@ -784,7 +781,7 @@ uint32_t sbox_checksum_32(const uint8_t *b, const size_t n)
The ACK PDU acknowledges receipt of a PDU and reports any error @@ -795,13 +792,13 @@ uint32_t sbox_checksum_32(const uint8_t *b, const size_t n) 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -| Type = 3 | Payload Length = 5 | PDU Type | +| PDU Type = 3 | Payload Length = 5 ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -| EType | Error Code | Error Hint | +~ | ACKed PDU | EType | Error Code | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -| Sig Type | Signature Length | ~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ -~ Signature ... ~ +| Error Hint | Sig Type |Signature Leng.~ ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +~ | Signature ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ @@ -809,8 +806,8 @@ uint32_t sbox_checksum_32(const uint8_t *b, const size_t n) The ACK acknowledges receipt of an OPEN, Encapsulation, VENDOR PDU, etc. - The PDU Type is the Type of the PDU being acknowledged, e.g., - OPEN or one of the Encapsulations. + The ACKed PDU is the PDU Type of the PDU being acknowledged, + e.g., OPEN or one of the Encapsulations. If there was an error processing the received PDU, then the EType is non-zero. If the EType is zero, Error Code and Error Hint MUST @@ -898,25 +895,26 @@ uint32_t sbox_checksum_32(const uint8_t *b, const size_t n) The header for all encapsulation PDUs is as follows:
+ 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -| Type | Payload Length | Count | +| PDU Type | Payload Length ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -| ... | Encapsulation List... | +~ | Count | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -| Sig Type | Signature Length | ~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ -~ Signature ... ~ +| Encapsulation List... | Sig Type | ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +| Signature Length | Signature ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- The 16-bit Count is the number of Encapsulations in the + The 24-bit Count is the number of Encapsulations in the Encapsulation list. An Encapsulation PDU describes zero or more addresses of the @@ -997,7 +995,7 @@ uint32_t sbox_checksum_32(const uint8_t *b, const size_t n) interface's addresses and the corresponding prefix lengths.
@@ -1005,20 +1003,20 @@ uint32_t sbox_checksum_32(const uint8_t *b, const size_t n) 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -| Type = 4 | Payload Length | Count | +| PDU Type = 4 | Payload Length ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -| ... | PrimLoop Flags| IPv4 Address | +~ | Count | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -| ... | PrefixLen | more ... | +| PrimLoop Flags| IPv4 Address ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -| Sig Type | Signature Length | ~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ -~ Signature ... ~ +~ | PrefixLen | more ... | Sig Type | ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +| Signature Length | Signature ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- The 16-bit Count is the number of IPv4 Encapsulations. + The 24-bit Count is the number of IPv4 Encapsulations.
@@ -1030,7 +1028,7 @@ uint32_t sbox_checksum_32(const uint8_t *b, const size_t n) lengths.
@@ -1038,26 +1036,26 @@ uint32_t sbox_checksum_32(const uint8_t *b, const size_t n) 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -| Type = 5 | Payload Length | Count | +| PDU Type = 5 | Payload Length ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -| ... | PrimLoop Flags| | -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + +~ | Count | ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +| PrimLoop Flags| | ++-+-+-+-+-+-+-+-+ + | | + + | | + + | IPv6 Address | -+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -| | PrefixLen | more ... | ++ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +| | PrefixLen | more ... | Sig Type | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -| Sig Type | Signature Length | ~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ -~ Signature ... ~ +| Signature Length | Signature ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- The 16-bit Count is the number of IPv6 Encapsulations. + The 24-bit Count is the number of IPv6 Encapsulations.
@@ -1095,7 +1093,7 @@ uint32_t sbox_checksum_32(const uint8_t *b, const size_t n) lengths, and the corresponding labels.
@@ -1103,33 +1101,33 @@ uint32_t sbox_checksum_32(const uint8_t *b, const size_t n) 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -| Type = 6 | Payload Length | Count | +| PDU Type = 6 | Payload Length ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -| ... | PrimLoop Flags| MPLS Label List ... | +~ | Count | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -| ... | IPv4 Address | +| PrimLoop Flags| MPLS Label List ... | ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -| ... | PrefixLen | more ... | +~ IPv4 Address | PrefixLen | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -| Sig Type | Signature Length | ~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ -~ Signature ... ~ +| more ... | Sig Type | Signature Length | ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +| Signature | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- The 16-bit Count is the number of MPLSv6 Encapsulations. + The 24-bit Count is the number of MPLSv4 Encapsulations.
- The MPLS IPv6 Encapsulation describes a logical link's ability - to exchange labeled IPv6 packets on one or more subnets. It does + The MPLS IPv4 Encapsulation describes a logical link's ability + to exchange labeled IPv4 packets on one or more subnets. It does so by stating the interface's addresses, the corresponding prefix lengths, and the corresponding labels.
@@ -1137,32 +1135,75 @@ uint32_t sbox_checksum_32(const uint8_t *b, const size_t n) 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -| Type = 7 | Payload Length | Count | +| PDU Type = 7 | Payload Length ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -| ... | PrimLoop Flags| MPLS Label List ... | +~ | Count | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -| ... | | -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + +| PrimLoop Flags| MPLS Label List ... | | ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | | + + | | + + | IPv6 Address | -+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -| | Prefix Len | more ... | ++ +-+-+-+-+-+-+-+-+ +| | Prefix Len | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -| Sig Type | Signature Length | ~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ -~ Signature ... ~ +| more ... | Sig Type | Signature Length | ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +| Signature ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- The 16-bit Count is the number of MPLSv6 Encapsulations. + The 24-bit Count is the number of MPLSv6 Encapsulations. + The MPLS IPv6 Encapsulation describes a logical link's ability + to exchange labeled IPv6 packets on one or more subnets. It does + so by stating the interface's addresses, the corresponding prefix + lengths, and the corresponding labels. +
+
+ + + +
+ + 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 ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +| PDU Type = 255| Payload Length ~ ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +~ | ... | Enterprise Number ~ ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +~ | Ent Type | Enterprise Data ... ~ ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +~ | Sig Type |Signature Leng.| ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +| | Signature ... | ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + +
+ + Vendors or enterprises may define TLVs beyond the scope of L3DL + standards. This is done using a Private Enterprise Number followed by Enterprise Data in a format + defined for that Enterprise Number and Ent Type. + + Ent Type allows a VENDOR PDU to be sub-typed in the event that + the vendor/enterprise needs multiple PDU types. + + As with Encapsulation PDUs, a receiver of a VENDOR PDU MUST + respond with an ACK or an ERROR PDU. Similarly, a VENDOR PDU MUST + only be sent over an open session. + +
+
L3DL devices SHOULD beacon frequent Layer 2 KEEPALIVE PDUs to @@ -1185,7 +1226,7 @@ uint32_t sbox_checksum_32(const uint8_t *b, const size_t n) new Encapsulation PDUs exchanged.
@@ -1193,53 +1234,15 @@ uint32_t sbox_checksum_32(const uint8_t *b, const size_t n) 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -| Type = 2 | Payload Length = 0 | Sig Type = 0 | +| PDU Type = 2 | Payload Length = 0 ~ ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +~ | Sig Type = 0 | Signature Length = 0 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -| Signature Length = 0 | -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
- - - -
- - 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 -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -| Type = 255 | Payload Length | ... | -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -| Enterprise Number | Ent Type | -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -| Enterprise Data ... | -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -| Sig Type | Signature Length | ~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ -~ Signature ... ~ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - -
- - Vendors or enterprises may define TLVs beyond the scope of L3DL - standards. This is done using a Private Enterprise Number followed by Enterprise Data in a format - defined for that Enterprise Number and Ent Type. - - Ent Type allows a VENDOR PDU to be sub-typed in the event that - the vendor/enterprise needs multiple PDU types. - - As with Encapsulation PDUs, a receiver of a VENDOR PDU MUST - respond with an ACK or an ERROR PDU. Similarly, a VENDOR PDU MUST - only be sent over an open session. - -
-
Layer 2 liveness may be continuously tested by KEEPALIVE PDUs, @@ -1414,6 +1417,10 @@ uint32_t sbox_checksum_32(const uint8_t *b, const size_t n) For these reasons, the OPEN PDU's authentication data exchange SHOULD be used. + + If the KEEPALIVE PDU is not signed (as suggested in ) to save computation, then a MITM could fake a + session being alive.