checkpoint
This commit is contained in:
parent
783bb0dff0
commit
ac441e4246
1 changed files with 46 additions and 28 deletions
|
|
@ -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>
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue