checkpoint

This commit is contained in:
Randy Bush 2019-05-29 11:29:32 -07:00
parent 783bb0dff0
commit ac441e4246

View file

@ -162,8 +162,7 @@
message. A PDU may need to be broken into multiple Datagrams to message. A PDU may need to be broken into multiple Datagrams to
make it through MTU or other restrictions.</t> make it through MTU or other restrictions.</t>
<t hangText="RouterID:">An 32-bit identifier unique in the <t hangText="RouterID:">An 32-bit identifier unique in the
current routing domain, see <xref target="RFC4271"/> updated by current routing domain, see <xref target="RFC6286"/>.</t>
<xref target="RFC6286"/>.</t>
<t hangText="Session:">An established, via OPEN PDUs, session <t hangText="Session:">An established, via OPEN PDUs, session
between two L3DL capable link end-points,</t> between two L3DL capable link end-points,</t>
<t hangText="SPF:">Shortest Path First, an algorithm for finding <t hangText="SPF:">Shortest Path First, an algorithm for finding
@ -193,12 +192,16 @@
<t>L3DL assumes a new IEEE assigned EtherType (TBD).</t> <t>L3DL assumes a new IEEE assigned EtherType (TBD).</t>
<t>The number of addresses of the Encapsulations on a link may be <t>The number of addresses of one Encapsulation type on an interface
fairly large given a TOR with more than 20 servers, each server link may be quite large given a TOR with tens of servers, each
possibly having on the order of a hundred micro-services resulting server having o few hundred micro-services, resulting in an
in an inordinate number of addresses. And security will further add inordinate number of addresses. And highly automated micro-service
to the length of PDUs. PDUs with lengths over 10,000 octets are migration can cause serious address prefix disaggregation, resulting
likely or quite possible.</t> in interfaces with thousands of disaggregated prefixes.</t>
<t>Therefore the L3DL protocol is session oriented and uses
incremental announcement and widrawal, a la BGP (<xref
target="RFC4271"/>).</t>
</section> </section>
@ -928,13 +931,13 @@ uint32_t sbox_checksum_32(const uint8_t *b, const size_t n)
<t>If an LLEI has multiple addresses for an encapsulation type, <t>If an LLEI has multiple addresses for an encapsulation type,
one and only one address SHOULD be configured to be marked as one and only one address SHOULD be configured to be marked as
primary, see <xref target="primloop"/>.</t> primary, see <xref target="eflags"/>.</t>
<t>Loopback addresses are generally not seen directly on an <t>Loopback addresses are generally not seen directly on an
external interface. One or more loopback addresses MAY be exposed external interface. One or more loopback addresses MAY be exposed
by configuration on one or more L3DL speaking external interfaces, by configuration on one or more L3DL speaking external interfaces,
e.g. for iBGP peering. They SHOULD be marked as such, see <xref e.g. for iBGP peering. They SHOULD be marked as such, see <xref
target="primloop"/>.</t> target="eflags"/>.</t>
<t>If there is exactly one non-loopback address for an <t>If there is exactly one non-loopback address for an
encapsulation type on an interface, it SHOULD be marked as encapsulation type on an interface, it SHOULD be marked as
@ -968,23 +971,37 @@ uint32_t sbox_checksum_32(const uint8_t *b, const size_t n)
</section> </section>
<section anchor="primloop" title="Prim/Loop Flags"> <section anchor="eflags" title="Encapsulaion Flags">
<figure> <figure>
<artwork> <artwork>
0 1 2 3 ... 7 0 1 2 3 4 ... 7
+---------------+---------------+---------------+---------------+ +------------+------------+------------+------------+------------+
| Primary | Loopback | Reserved ... | | | Ann/With | Primary | Under/Over | Loopback | Reserved ..|
+---------------+---------------+---------------+---------------+ +------------+------------+------------+------------+------------+
</artwork> </artwork>
</figure> </figure>
<t>Each Encapsulation interface address MAY be marked as a primary <t>Each Encapsulation interface address in an Encapsulation PDU is
address, and/or a loopback, in which case the respective bit is either a new encapsulation be announced (Ann/With set to 1) (yes,
set to one.</t> 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
SHOULD be 2, suggesting a session restart (see <xref
target="ack"/> so all encapsulations will be resent.</t>
<t>Only one address MAY be marked as primary for an encapsulation <t>An Encapsulation interface address in an Encapsulation PDU MAY
type.</t> be marked as a primary address. 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>
</section> </section>
@ -995,7 +1012,7 @@ uint32_t sbox_checksum_32(const uint8_t *b, const size_t n)
interface's addresses and the corresponding prefix lengths.</t> interface's addresses and the corresponding prefix lengths.</t>
<!-- <!--
protocol "PDU Type = 4:8,Payload Length:32,Count:24,PrimLoop 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,Encaps Flags:8,IPv4 Address:32,PrefixLen:8,more ...:8,Sig Type:8,Signature Length:16,Signature ...:16"
--> -->
<figure> <figure>
@ -1007,7 +1024,7 @@ uint32_t sbox_checksum_32(const uint8_t *b, const size_t n)
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ | Count | ~ | Count |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| PrimLoop Flags| IPv4 Address ~ | Encaps Flags | IPv4 Address ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ | PrefixLen | more ... | Sig Type | ~ | PrefixLen | more ... | Sig Type |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
@ -1028,7 +1045,7 @@ uint32_t sbox_checksum_32(const uint8_t *b, const size_t n)
lengths.</t> lengths.</t>
<!-- <!--
protocol "PDU Type = 5:8,Payload Length:32,Count:24,PrimLoop 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,Encaps Flags:8,IPv6 Address:128,PrefixLen:8,more ...:8,Sig Type:8,Signature Length:16,Signature ...:16"
--> -->
<figure> <figure>
@ -1040,7 +1057,7 @@ uint32_t sbox_checksum_32(const uint8_t *b, const size_t n)
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ | Count | ~ | Count |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| PrimLoop Flags| | | Encaps Flags | |
+-+-+-+-+-+-+-+-+ + +-+-+-+-+-+-+-+-+ +
| | | |
+ + + +
@ -1093,7 +1110,7 @@ uint32_t sbox_checksum_32(const uint8_t *b, const size_t n)
lengths, and the corresponding labels.</t> lengths, and the corresponding labels.</t>
<!-- <!--
protocol "PDU Type = 6:8,Payload Length:32,Count:24,PrimLoop 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,Encaps Flags:8,MPLS Label List ...:16,IPv4 Address:32,PrefixLen:8,more ...:8,Sig Type:8,Signature Length:16,Signature:32"
--> -->
<figure> <figure>
@ -1105,7 +1122,7 @@ uint32_t sbox_checksum_32(const uint8_t *b, const size_t n)
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ | Count | ~ | Count |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| PrimLoop Flags| MPLS Label List ... | ~ | Encaps Flags | MPLS Label List ... | ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ IPv4 Address | PrefixLen | ~ IPv4 Address | PrefixLen |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
@ -1127,7 +1144,7 @@ uint32_t sbox_checksum_32(const uint8_t *b, const size_t n)
so by stating the interface's addresses, the corresponding prefix so by stating the interface's addresses, the corresponding prefix
lengths, and the corresponding labels.</t> lengths, and the corresponding labels.</t>
<!-- <!--
protocol "PDU Type = 7:8,Payload Length:32,Count:24,PrimLoop 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,Encaps Flags:8,MPLS Label List ...:16,IPv6 Address:128,Prefix Len:8,more ...:8,Sig Type:8,Signature Length:16,Signature ...:32"
--> -->
<figure> <figure>
@ -1139,7 +1156,7 @@ uint32_t sbox_checksum_32(const uint8_t *b, const size_t n)
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ | Count | ~ | Count |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| PrimLoop Flags| MPLS Label List ... | | | Encaps Flags | MPLS Label List ... | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +
| | | |
+ + + +
@ -1493,6 +1510,7 @@ uint32_t sbox_checksum_32(const uint8_t *b, const size_t n)
1 Logical Link Addressing Conflict 1 Logical Link Addressing Conflict
2 Authorization Failure in OPEN 2 Authorization Failure in OPEN
3 Signature Failure in PDU 3 Signature Failure in PDU
4 Announce/Withdraw Error
</artwork> </artwork>
</figure> </figure>