serial number stiched in
This commit is contained in:
parent
45b1360e28
commit
cacd4323ce
1 changed files with 72 additions and 59 deletions
|
|
@ -405,7 +405,9 @@
|
|||
<list style="hanging">
|
||||
|
||||
<t hangText="Version:">Seven-bit Version number of the protocol,
|
||||
currently 0. Values other than 0 are treated as errors.</t>
|
||||
currently 0. Values other than 0 are treated as errors. The
|
||||
protocol version nees to be in one and only one place, so it is in
|
||||
the datagram as opposed to, for example, the PDU.</t>
|
||||
|
||||
<t hangText="L:">A bit that set to one if this Datagram is the
|
||||
last Datagram of the PDU. For a PDU which fits in only one
|
||||
|
|
@ -534,8 +536,9 @@ uint32_t sbox_checksum_32(const uint8_t *b, const size_t n)
|
|||
<t hangText="Payload:">The application layer content of the L3DL
|
||||
PDU.</t>
|
||||
|
||||
<t hangText="Sig Type:">The type of the Signature. Type 0, a null
|
||||
signature, is defined in this document.</t>
|
||||
<t hangText="Sig Type:">The type of the Signature, see <xref
|
||||
target="iana-sigtype"/>. Type 0, a null signature, is defined in
|
||||
this document.</t>
|
||||
|
||||
<t>Sig Type 0 indicates a null Signature. For a trivial PDU such
|
||||
as KEEPALIVE, the underlying Datagram checksum may be sufficient
|
||||
|
|
@ -660,7 +663,7 @@ uint32_t sbox_checksum_32(const uint8_t *b, const size_t n)
|
|||
<t>If the configured destination address is one that is propagated
|
||||
by switches, the HELLO SHOULD be repeated at a configured interval,
|
||||
with a default of 60 seconds. This allows discovery by new devices
|
||||
which come up on the layer two mesh.</t>
|
||||
which come up on the layer-2 mesh.</t>
|
||||
|
||||
<!--
|
||||
protocol "PDU Type = 0:8,Payload Length = 0:32,Sig Type = 0:8,Signature Length = 0:16"
|
||||
|
|
@ -702,8 +705,8 @@ uint32_t sbox_checksum_32(const uint8_t *b, const size_t n)
|
|||
frame.</t>
|
||||
|
||||
<!--
|
||||
protocol "PDU Type = 1:8,Payload Length:32,Nonce:32,LLEI Length:8,My LLEI:32,AttrCount:8,Attribute List ...:24,Auth Type:8,Key Length:16,Key ...:24,Sig Type:8,Signature Length:16,Signature ...:8"
|
||||
-->
|
||||
protocol "PDU Type = 1:8,Payload Length:32,Nonce:32,LLEI Length:8,My LLEI:32,AttrCount:8,Attribute List ...:24,Auth Type:8,Key Length:16,Key ...:24,Serial Number:32,Sig Type:8,Signature Length:16,Signature ...:8"
|
||||
q-->
|
||||
|
||||
<figure>
|
||||
<artwork>
|
||||
|
|
@ -722,6 +725,8 @@ uint32_t sbox_checksum_32(const uint8_t *b, const size_t n)
|
|||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
~ | Key ... |
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
| Serial Number |
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
| Sig Type | Signature Length | Signature ... |
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
</artwork>
|
||||
|
|
@ -759,6 +764,12 @@ uint32_t sbox_checksum_32(const uint8_t *b, const size_t n)
|
|||
authenticate is a failure to start the L3DL session, an ERROR PDU is
|
||||
sent (Error Code 2), and HELLOs MUST be restarted.</t>
|
||||
|
||||
<t>The Serial Number is that of the last received and processed
|
||||
Encapsulation PDU. This allows a receiver sending an OPEN to tell
|
||||
the sender that it only needs to send data more recent than the
|
||||
Serial Number. If this OPEN is not trying to restart a lost
|
||||
session, the Serial Number MUST be set to zero.</t>
|
||||
|
||||
<t>The Signature fields are described in <xref target="tlv"/> and in
|
||||
an asymmetric key environment serve as a proof of possession of the
|
||||
signing auth data by the sender.</t>
|
||||
|
|
@ -829,18 +840,10 @@ uint32_t sbox_checksum_32(const uint8_t *b, const size_t n)
|
|||
error.</t>
|
||||
|
||||
<t>The decimal value of EType gives a strong hint how the receiver
|
||||
sending the ACK believes things should proceed:
|
||||
<list style="empty">
|
||||
<?rfc subcompact="yes"?>
|
||||
<t>0 - No Error, Error Code and Error Hint MUST be zero</t>
|
||||
<t>1 - Warning, something not too serious happened, continue</t>
|
||||
<t>2 - Session should not be continued, try to restart</t>
|
||||
<t>3 - Restart is hopeless, call the operator</t>
|
||||
<t>4-15 - Reserved</t>
|
||||
<?rfc subcompact="no"?>
|
||||
</list>
|
||||
Someone stuck in the 1990s might think of the error codes as 0x1zzz,
|
||||
0x2zzz, etc. They might be right. Or not.</t>
|
||||
sending the ACK believes things should proceed. The ETypes are
|
||||
listed in <xref target="iana-error"/>. Someone stuck in the 1990s
|
||||
might think of the error codes as 0x1zzz, 0x2zzz, etc. They might
|
||||
be right. Or not.</t>
|
||||
|
||||
<t>The Error Code indicates the type of error.</t>
|
||||
|
||||
|
|
@ -905,7 +908,7 @@ uint32_t sbox_checksum_32(const uint8_t *b, const size_t n)
|
|||
<t>The header for all encapsulation PDUs is as follows:</t>
|
||||
|
||||
<!--
|
||||
protocol "PDU Type:8,Payload Length:32,Count:24,Encapsulation List...:24,Sig Type:8,Signature Length:16,Signature ...:16"
|
||||
protocol "PDU Type:8,Payload Length:32,Count:24,Serial Number:32,Encapsulation List...:24,Sig Type:8,Signature Length:16,Signature ...:16"
|
||||
-->
|
||||
|
||||
<figure>
|
||||
|
|
@ -917,6 +920,8 @@ uint32_t sbox_checksum_32(const uint8_t *b, const size_t n)
|
|||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
~ | Count |
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
| Serial Number |
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
| Encapsulation List... | Sig Type |
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
| Signature Length | Signature ... |
|
||||
|
|
@ -930,25 +935,11 @@ uint32_t sbox_checksum_32(const uint8_t *b, const size_t n)
|
|||
<t>An Encapsulation PDU describes zero or more addresses of the
|
||||
encapsulation type.</t>
|
||||
|
||||
<t>An Encapsulation PDU of Type T replaces all previous
|
||||
encapsulations of Type T.</t>
|
||||
|
||||
<t>To remove all encapsulations of Type T, the sender uses a Count
|
||||
of zero.</t>
|
||||
|
||||
<t>If an LLEI has multiple addresses for an encapsulation type,
|
||||
one and only one address SHOULD be configured to be marked as
|
||||
primary, see <xref target="eflags"/>.</t>
|
||||
|
||||
<t>Loopback addresses are generally not seen directly on an
|
||||
external interface. One or more loopback addresses MAY be exposed
|
||||
by configuration on one or more L3DL speaking external interfaces,
|
||||
e.g. for iBGP peering. They SHOULD be marked as such, see <xref
|
||||
target="eflags"/>.</t>
|
||||
|
||||
<t>If there is exactly one non-loopback address for an
|
||||
encapsulation type on an interface, it SHOULD be marked as
|
||||
primary.</t>
|
||||
<t>The Serial Number is a monotonically increasing 32-bit value
|
||||
representing the sender's state in time. It may be an integer, a
|
||||
timestamp, etc. On session restart (new OPEN), a receiver MAY
|
||||
send the last received Session Number to tell the sender to only
|
||||
send newer data.</t>
|
||||
|
||||
<t>If a sender has multiple links on the same interface, separate
|
||||
data, ACKs, etc. must be kept for each peer.</t>
|
||||
|
|
@ -989,27 +980,39 @@ uint32_t sbox_checksum_32(const uint8_t *b, const size_t n)
|
|||
</artwork>
|
||||
</figure>
|
||||
|
||||
<t>An Encapsulation PDU of Type T may announce new and/or withdraw
|
||||
old encapsulations of Type T. It indicates this with the Add/With
|
||||
Encapsulation Flag, Announce == 1, Withdraw == 0.</t>
|
||||
|
||||
<t>Each Encapsulation interface address in an Encapsulation PDU is
|
||||
either a new encapsulation be announced (Ann/With set to 1) (yes,
|
||||
a la BGP) or requests one be withdrawn (Ann/With set to 0).
|
||||
Adding an encapsulation which already exists SHOULD raise an
|
||||
Announce/Withdraw Error (see <xref target="iana"/>); the EType
|
||||
either a new encapsulation be announced (Ann/With == 1) (yes, a la
|
||||
BGP) or requests one be withdrawn (Ann/With == 0). Adding an
|
||||
encapsulation which already exists SHOULD raise an
|
||||
Announce/Withdraw Error (see <xref target="iana-error"/>); the EType
|
||||
SHOULD be 2, suggesting a session restart (see <xref
|
||||
target="ack"/> so all encapsulations will be resent.</t>
|
||||
|
||||
<t>An Encapsulation interface address in an Encapsulation PDU MAY
|
||||
be marked as a primary address. Only one address on an interface
|
||||
MAY be marked as primary for each encapsulation type.</t>
|
||||
<t>If an LLEI has multiple addresses for an encapsulation type,
|
||||
one and only one address SHOULD be configured to be marked as
|
||||
primary (Primary Flag == 1). Only one address on an interface MAY
|
||||
be marked as primary for each encapsulation type.</t>
|
||||
|
||||
<t>Each Encapsulation interface address in an Encapsulation PDU is
|
||||
that of the direct 'overlay' interface (flag set to 1), or an
|
||||
'underlay' address (flag set to 0), likely that of a VM or
|
||||
container guest bridged on to the primary interface.</t>
|
||||
|
||||
<t>An Encapsulation interface address in an Encapsulation PDU MAY
|
||||
be marked as a loopback, in which case the respective bit is
|
||||
set.</t>
|
||||
|
||||
<t>Loopback addresses are generally not seen directly on an
|
||||
external interface. One or more loopback addresses MAY be exposed
|
||||
by configuration on one or more L3DL speaking external interfaces,
|
||||
e.g. for iBGP peering. They SHOULD be marked as such, Loopback
|
||||
Flag == 1.</t>
|
||||
|
||||
<t>Each Encapsulation interface address in an Encapsulation PDU is
|
||||
that of the direct 'underlay interface (Under/Over == 1), or an
|
||||
'overlay' address (Under/Over == 0), likely that of a VM or
|
||||
container guest bridged on to an underlay address on the
|
||||
interface.</t>
|
||||
|
||||
</section>
|
||||
|
||||
<section anchor="ipv4" title="IPv4 Encapsulation">
|
||||
|
|
@ -1019,7 +1022,7 @@ uint32_t sbox_checksum_32(const uint8_t *b, const size_t n)
|
|||
interface's addresses and the corresponding prefix lengths.</t>
|
||||
|
||||
<!--
|
||||
protocol "PDU Type = 4:8,Payload Length:32,Count:24,Encaps Flags:8,IPv4 Address:32,PrefixLen:8,more ...:8,Sig Type:8,Signature Length:16,Signature ...:16"
|
||||
protocol "PDU Type = 4:8,Payload Length:32,Count:24,Serial Number:32,Encaps Flags:8,IPv4 Address:32,PrefixLen:8,more ...:8,Sig Type:8,Signature Length:16,Signature ...:16"
|
||||
-->
|
||||
|
||||
<figure>
|
||||
|
|
@ -1031,6 +1034,8 @@ uint32_t sbox_checksum_32(const uint8_t *b, const size_t n)
|
|||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
~ | Count |
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
| Serial Number |
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
| Encaps Flags | IPv4 Address ~
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
~ | PrefixLen | more ... | Sig Type |
|
||||
|
|
@ -1052,7 +1057,7 @@ uint32_t sbox_checksum_32(const uint8_t *b, const size_t n)
|
|||
lengths.</t>
|
||||
|
||||
<!--
|
||||
protocol "PDU Type = 5:8,Payload Length:32,Count:24,Encaps Flags:8,IPv6 Address:128,PrefixLen:8,more ...:8,Sig Type:8,Signature Length:16,Signature ...:16"
|
||||
protocol "PDU Type = 5:8,Payload Length:32,Count:24,Serial Number:32,Encaps Flags:8,IPv6 Address:128,PrefixLen:8,more ...:8,Sig Type:8,Signature Length:16,Signature ...:16"
|
||||
-->
|
||||
|
||||
<figure>
|
||||
|
|
@ -1064,6 +1069,8 @@ uint32_t sbox_checksum_32(const uint8_t *b, const size_t n)
|
|||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
~ | Count |
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
| Serial Number |
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
| Encaps Flags | |
|
||||
+-+-+-+-+-+-+-+-+ +
|
||||
| |
|
||||
|
|
@ -1117,7 +1124,7 @@ uint32_t sbox_checksum_32(const uint8_t *b, const size_t n)
|
|||
lengths, and the corresponding labels.</t>
|
||||
|
||||
<!--
|
||||
protocol "PDU Type = 6:8,Payload Length:32,Count:24,Encaps Flags:8,MPLS Label List ...:16,IPv4 Address:32,PrefixLen:8,more ...:8,Sig Type:8,Signature Length:16,Signature:32"
|
||||
protocol "PDU Type = 6:8,Payload Length:32,Count:24,Serial Number:32,Encaps Flags:8,MPLS Label List ...:16,IPv4 Address:32,PrefixLen:8,more ...:8,Sig Type:8,Signature Length:16,Signature:32"
|
||||
-->
|
||||
|
||||
<figure>
|
||||
|
|
@ -1129,6 +1136,8 @@ uint32_t sbox_checksum_32(const uint8_t *b, const size_t n)
|
|||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
~ | Count |
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
| Serial Number |
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
| Encaps Flags | MPLS Label List ... | ~
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
~ IPv4 Address | PrefixLen |
|
||||
|
|
@ -1151,7 +1160,7 @@ uint32_t sbox_checksum_32(const uint8_t *b, const size_t n)
|
|||
so by stating the interface's addresses, the corresponding prefix
|
||||
lengths, and the corresponding labels.</t>
|
||||
<!--
|
||||
protocol "PDU Type = 7:8,Payload Length:32,Count:24,Encaps Flags:8,MPLS Label List ...:16,IPv6 Address:128,Prefix Len:8,more ...:8,Sig Type:8,Signature Length:16,Signature ...:32"
|
||||
protocol "PDU Type = 7:8,Payload Length:32,Count:24,Serial Number:32,Encaps Flags:8,MPLS Label List ...:16,IPv6 Address:128,Prefix Len:8,more ...:8,Sig Type:8,Signature Length:16,Signature ...:32"
|
||||
-->
|
||||
|
||||
<figure>
|
||||
|
|
@ -1163,6 +1172,8 @@ uint32_t sbox_checksum_32(const uint8_t *b, const size_t n)
|
|||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
~ | Count |
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
| Serial Number |
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
| Encaps Flags | MPLS Label List ... | |
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +
|
||||
| |
|
||||
|
|
@ -1193,7 +1204,7 @@ uint32_t sbox_checksum_32(const uint8_t *b, const size_t n)
|
|||
<section anchor="vendor" title="VENDOR - Vendor Extensions">
|
||||
|
||||
<!--
|
||||
protocol "PDU Type = 255:8,Payload Length:32,...:8,Enterprise Number:24,Ent Type:8,Enterprise Data ...:32,Sig Type:8,Signature Length:16,Signature ...:24"
|
||||
protocol "PDU Type = 255:8,Payload Length:32,Serial Number:32,Enterprise Number:24,Ent Type:8,Enterprise Data ...:32,Sig Type:8,Signature Length:16,Signature ...:32"
|
||||
-->
|
||||
|
||||
<figure>
|
||||
|
|
@ -1203,13 +1214,15 @@ uint32_t sbox_checksum_32(const uint8_t *b, const size_t n)
|
|||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
| PDU Type = 255| Payload Length ~
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
~ | ... | Enterprise Number ~
|
||||
~ | Serial Number ~
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
~ | Ent Type | Enterprise Data ... ~
|
||||
~ | Enterprise Number |
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
~ | Sig Type |Signature Leng.|
|
||||
| Ent Type | Enterprise Data ... ~
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
| | Signature ... |
|
||||
~ | Sig Type | Signature Length |
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
| Signature ... |
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
</artwork>
|
||||
</figure>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue