SPRING Working Group W. Cheng
Internet-Draft China Mobile
Intended status: Standards Track Z. Li
Expires: September 16, 2021 C. Li
Huawei Technologies
C. Xie
C. Li
China Telecom
H. Tian
F. Zhao
CAICT
March 15, 2021
Generalized SRv6 Network Programming
draft-cl-spring-generalized-srv6-np-03
Abstract
As the deployment of SRv6, some new requirements are proposed, such
as SRv6 compression, transporting over SR-MPLS/MPLS and IPv4 domains.
Therefore, it is necessary to consider other types of segments or
sub-paths in the end-to-end SRv6 network programming.
This document proposes Generalized Segment Routing over IPv6 (G-SRv6)
Networking Programming, which supports to encode multiple types of
Segments in a SRH, called Generalized SRH (G-SRH). These Segments
can be called Generalized Segment, and the ID can be Generalized
Segment Identifier (G-SID), which may include an SRv6 SID(128 bits),
C-SIDs, MPLS labels, or IPv4 tunnel information.
This document also defines the mechanisms of Generalized SRv6
Networking Programming and the requirements of related protocol
extensions of control plane and data plane.
Status of This Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
Cheng, et al. Expires September 16, 2021 [Page 1]
Internet-Draft G-SRv6 March 2021
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on September 16, 2021.
Copyright Notice
Copyright (c) 2021 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1. Requirements Language . . . . . . . . . . . . . . . . . . 5
3. Requirements . . . . . . . . . . . . . . . . . . . . . . . . 5
3.1. Crossing C-SRv6 Domains . . . . . . . . . . . . . . . . . 5
3.2. Crossing SR-MPLS Domains . . . . . . . . . . . . . . . . 7
3.3. Crossing IPv4 Domains . . . . . . . . . . . . . . . . . . 8
4. Concept of Generalized SRv6 . . . . . . . . . . . . . . . . . 9
4.1. SRv6 G-SID . . . . . . . . . . . . . . . . . . . . . . . 10
4.2. Compression G-SID . . . . . . . . . . . . . . . . . . . . 10
4.3. MPLS G-SID . . . . . . . . . . . . . . . . . . . . . . . 11
4.4. IPv4 G-SID . . . . . . . . . . . . . . . . . . . . . . . 12
5. G-SRv6 for Crossing SRv6 Compression Domains . . . . . . . . 13
5.1. Mechanisms . . . . . . . . . . . . . . . . . . . . . . . 13
5.1.1. Compressable SID Indication . . . . . . . . . . . . . 13
5.1.2. C-SID Length Indication . . . . . . . . . . . . . . . 14
5.1.3. Start of Compression Indication . . . . . . . . . . . 14
5.1.4. End of Compression Indication . . . . . . . . . . . . 15
5.1.5. Micro SID in G-SRv6 Compression . . . . . . . . . . . 16
5.2. Illustration . . . . . . . . . . . . . . . . . . . . . . 17
5.3. Effect on SRv6 . . . . . . . . . . . . . . . . . . . . . 19
5.4. Protocol Extensions Requirements . . . . . . . . . . . . 20
5.4.1. Data Plane . . . . . . . . . . . . . . . . . . . . . 20
5.4.2. Control Plane . . . . . . . . . . . . . . . . . . . . 20
6. G-SRv6 for Crossing SR-MPLS Domain . . . . . . . . . . . . . 21
6.1. Mechanisms . . . . . . . . . . . . . . . . . . . . . . . 21
Cheng, et al. Expires September 16, 2021 [Page 2]
Internet-Draft G-SRv6 March 2021
6.1.1. Start of MPLS G-SID Indication . . . . . . . . . . . 21
6.1.2. End of MPLS G-SID Indication . . . . . . . . . . . . 22
6.2. Illustration . . . . . . . . . . . . . . . . . . . . . . 22
6.3. Effect on SRv6 . . . . . . . . . . . . . . . . . . . . . 23
6.4. Protocol Extensions Requirements . . . . . . . . . . . . 24
6.4.1. Data Plane . . . . . . . . . . . . . . . . . . . . . 24
6.4.2. Control Plane . . . . . . . . . . . . . . . . . . . . 24
7. G-SRv6 for Crossing IPv4 Domain . . . . . . . . . . . . . . . 25
7.1. Mechanism . . . . . . . . . . . . . . . . . . . . . . . . 25
7.1.1. Start of IPv4 G-SID Indication . . . . . . . . . . . 25
7.1.2. IPv4 G-SID encoding . . . . . . . . . . . . . . . . . 26
7.2. Illustration . . . . . . . . . . . . . . . . . . . . . . 26
7.3. Effect on SRv6 . . . . . . . . . . . . . . . . . . . . . 27
7.4. Protocol Extensions Requirements . . . . . . . . . . . . 27
7.4.1. Data Plane . . . . . . . . . . . . . . . . . . . . . 28
7.4.2. Control Plane . . . . . . . . . . . . . . . . . . . . 28
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 29
9. Security Considerations . . . . . . . . . . . . . . . . . . . 29
10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 29
11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 29
12. References . . . . . . . . . . . . . . . . . . . . . . . . . 29
12.1. Normative References . . . . . . . . . . . . . . . . . . 29
12.2. Informative References . . . . . . . . . . . . . . . . . 30
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 31
1. Introduction
Segment routing (SR) [RFC8402] is a source routing paradigm that
explicitly indicates the forwarding path for packets at the ingress
node by inserting an ordered list of instructions, called segments.
When segment routing is deployed on the IPv6 data plane, it is called
SRv6 [RFC8754]. For support of SR, a new routing header called
Segment Routing Header (SRH), which contains a list of SIDs and other
information, has been defined in [RFC8754]. In use cases like
Traffic Engineering, an ordered SID List with multiple SIDs is
inserted into the SRH to steer packets along an explicit path.
As the deployment of SRv6, some new requirements are proposed, such
as SRv6 compression, transporting over SR-MPLS/MPLS and IPv4 domains.
Therefore, it is necessary to consider other types of segments or
sub-paths in the end-to-end SRv6 network programming.
This document proposes Generalized Segment Routing over IPv6 (G-SRv6)
Networking Programming, which supports to encode multiple types of
Segments in a SRH, called Generalized SRH (G-SRH). These Segments
can be called Generalized Segment, and the ID can be Generalized
Cheng, et al. Expires September 16, 2021 [Page 3]
Internet-Draft G-SRv6 March 2021
Segment Identifier (G-SID), which may include an SRv6 SID(128 bits),
C-SIDs, MPLS labels, or IPv4 tunnel information.
This document also defines the mechanisms of Generalized SRv6
Networking Programming and the requirements of related protocol
extensions of control plane and data plane.
2. Terminology
This document makes use of the terms defined in [RFC8754], [RFC8402]
and [RFC8200], and the reader is assumed to be familiar with that
terminology. This document introduces the following terms:
SRv6 SID: The 128-bit segment identifier is introduced in [RFC8986].
It is always composed by locator, function and/or arguments.
C-SRv6: Compressed SRv6 Network Programming
Compressable SID: It is the 128-bit SRv6 SID which can be compressed.
It is composed by Common Prefix and Compressed Segment Identifier
(C-SID) and optional arguments.
Common Prefix: It is the same prefix shared by multiple Compressable
SIDs.
C-SID: Compressed Segment Identifier
[I-D.li-spring-compressed-srv6-np]. It is the remaining part of
Compressable SID removing Common Prefix and arguments. The
recommended length of C-SIDs is 32 bits.
C-SRH: Compressed Segment Routing Header. It is the enhanced SRH
used for C-SRv6.
G-SRv6: Generalized SRv6 Network Programming
G-SID: Generalized Segment Identifier.
G-SRH: Generalized Segment Routing Header. It is the enhanced SRH
used for G-SRv6.
Compression G-SID: It is the G-SID for encapsulating C-SIDs.
MPLS G-SID: It is the G-SID for encapsulating MPLS label stack
encapsulation information.
IPv4 G-SID: It is the G-SID for encapsulating IPv4 tunnel
information.
Cheng, et al. Expires September 16, 2021 [Page 4]
Internet-Draft G-SRv6 March 2021
SRv6 Compression Sub-path: It is the path for crossing the SRv6
compression domain in the end-to-end G-SRv6 path.
SR-MPLS Sub-path: It is the path for crossing the SR-MPLS domain in
the end-to-end G-SRv6 path.
IPv4 Tunnel Sub-path: It is the IPv4 tunnel path for crossing the
IPv4 domain in the end-to-end G-SRv6 path.
2.1. Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in BCP
14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here.
3. Requirements
This section describes the requirements of G-SRv6.
3.1. Crossing C-SRv6 Domains
The overhead of SIDs (16 bytes per SID) in SRH proposes challenges
for packet processing and payload efficiency. For addressing this
problem, some solutions are proposed. For example,
[I-D.li-spring-compressed-srv6-np] proposes Compressed SRv6 Network
programming(C-SRv6).
In an SRv6 domain, the SIDs will be allocated from an address block,
called SID space. For routing within an SRv6 domain, the SIDs may
have the same prefix (Common Prefix).
[I-D.li-spring-compressed-srv6-np] defines a compressed SID (C-SID)
to carry the different part of the original SRv6 SID in the SRH. The
format of a compressable SRv6 SID with 32 bit C-SID is shown in
Figure 1. The argument part is specified by use cases, and it is
zero by default. It is shared by the compressable SRv6 SIDs in a
C-SRv6 sub-path
Cheng, et al. Expires September 16, 2021 [Page 5]
Internet-Draft G-SRv6 March 2021
0 Variable Length 32 bits 128 bits
+--------------------------------------------------------------+
| Common Prefix | C-SID | Argument |
+--------------------------------------------------------------+
|<-------- Locator ---------------->|<-FuncID->|<--Argument -->|
|<--->|
|
Different part of Locator
Figure 1. 32 bits C-SID in Compressable SRv6 SID
In C-SRv6, the common prefix can be carried by the first SID in the
IPv6 destination address, while only the C-SIDs of the original SIDs
are carried in the C-SRH. In this way, the overhead of SRv6 can be
reduced.
C-SRv6 can reduce the overhead of SRH. But the C-SRv6 requires that
all the SIDs of the SRv6 path to be the compressable SRv6 SID. The
limitation causes that it does not work in the following scenarios:
Scenario 1-1:
In a single domain owing to the incremental deployment there will be
the scenario in which some nodes can support C-SRv6 while others only
support SRv6. This causes that the end-to-end SRv6 path may be
composed by both SRv6 SIDs and Compressable SRv6 SIDs. In this case
C-SRv6 cannot work and SRH has to be used for the SRv6 path.
For example, as illustrated in Figure 2, a packet is forwarded along
the path A1->A2->A3->A4->A5->A6->A7, and the SRv6 SID list is
[A::1:1, A::2:1, A::3:1, A::4:1, A::5:1, A6::6:1, A::7:10]. All the
nodes along the path support compression except A6. In this case,
the SID list can not be compressed due to A6 does not support
compression.
(A::3:1) A3------A4 (A::4:1)
| |
(A::2:1) A2 A5 (A::5:1)
| |
Tenant10 CE1-----A0---A1------A6---A7-----CE3 Tenant10 with
(A::1:1)(A6::6:1) (A::7:10) IPv4 20/8
Figure 2. SRv6 Path with SRv6 SIDs and Compressable SIDs
Scenario 1-2:
Cheng, et al. Expires September 16, 2021 [Page 6]
Internet-Draft G-SRv6 March 2021
In C-SRv6, Common Prefix must be designed for the Compressable SRv6
SIDs. But in the scenario of crossing multiple SRv6 domains, it is
very difficult to design the unified Common Prefix. It can be easy
to design its own Common Prefix in a single domain. Thus an SRv6
path crossing multiple domains may be composed by different groups of
Compressable SRv6 SIDs with different Common Prefixes, and they can
not be encoded in a single C-SRH.
For example, as illustrated in Figure 3, , a packet is forwarded
along the path A1->A2->A3->A4->B1->B2->B3->B4, and the SRv6 SID list
is [A::1:1, A::2:1, A::3:1, A:4:1, B::1:1, B::2:1, B::3:1, B:4:1].
The Common Prefix of the sub-path A1->A2->A3->A4 is A and the Common
Prefix of the sub-path B1->B2->B3->B4 is B. But the end-to-end SRv6
path cannot be compressed in a single C-SRH.
A2-----A3 B2-----B3
| | | |
| | | |
| | | |
Tenant10 CE1---A0----A1-----A4----B1-----B4-----B0---CE3 Tenant10 with
IPv4 20/8
Figure 3. SRv6 Path Crossing Multiple SRv6 Compression Domains
For addressing above problems, a mechanism of encoding SRv6 SIDs and
SRv6 C-SIDs in any order in an SRH should be provided, which does not
require all the nodes along the path to support SRv6 compression.
3.2. Crossing SR-MPLS Domains
In SRv6, END.BM SID can be used for indicating an SR-MPLS Policy.
Therefore, when an SRv6 packet needs to travel an SR-MPLS path, the
associated END.BM SID should be encoded in the SID list. When the
packet arrives at the ingress node of the SR-MPLS path, an MPLS label
stack will be encapsulated to the packet according to the END.BM, and
the packet will be forwarded in the SR-MPLS domain based on the MPLS
labels.
End.BM hides the details of the SR-MPLS path, which brings benefits
on security and privacy. But it brings more network states to the
intermediate nodes of the SRv6 path. Also, when operators can manage
both the SRv6 networks and SR-MPLS networks, it can program an end-
to-end path under specific SLA assurance. If the existing SR-MPLS
path associated with END.BM can not meet the SLA requirement, then a
new END.BM SID should be configured and advertised among the
networks. This procedure increases the complexities of deploying
services.
Cheng, et al. Expires September 16, 2021 [Page 7]
Internet-Draft G-SRv6 March 2021
For example, as illustrated in Figure 4, when a packet is sent from
CE1 to CE3, it may choose several paths in SR-MPLS domain, which
provide different SLA assurance. Therefore, state of multiple SR-
MPLS paths should be maintained at the node A1 and A2.
- SR-MPLS Path 1: A1->A4->A5
- SR-MPLS Path 2: A1->A2->A3->A6
- SR-MPLS Path 3: A1->A2->A3->A6->A5
- SR-MPLS Path 4: A2->A3->A6
- SR-MPLS Path 5: A2->A1->A4->A5
- SR-MPLS Path 6: A2->A1->A4->A5->A6
There will be more states of path should be maintained when the scale
of SR-MPLS domain is large.
B2-------A2----A3-----A6-------B3
| SRv6 | SR-MPLS | SRv6 |
| Domain | Domain | Domain |
| | | |
Tenant10 CE1---B1-------A1----A4-----A5-------B4---CE3 Tenant10 with
IPv4 20/8
Figure 4. SRv6 Path Crossing SR-MPLS Domains
In order to program SR-MPLS sub-path more flexible and reduce the
states on the intermediate nodes, a mechanism for encoding SRv6 SID
and MPLS labels should be provided. In this way, the ingress node of
the path can program the end-to-end path including the SRv6 sub-path
and the SR-MPLS sub-path, and no state of MPLS sub-path will be
maintained.
3.3. Crossing IPv4 Domains
In some scenarios such as SD-WAN an SRv6 packet may cross an IPv4
domain, and the SRv6 packets will be transported by the IPv6 over
IPv4 tunnel. Similar to SR-MPLS, there can be two options for
indicating the IPv4 tunnel.
o Option A: the IPv4 tunnel binding SID in SRH
o Option B: the IPv4 tunnel parameters in SRH
Cheng, et al. Expires September 16, 2021 [Page 8]
Internet-Draft G-SRv6 March 2021
For IPv4 tunnel binding SID, the ingress node of IPv4 tunnel should
maintain the states of this tunnel.
For example, as illustrated in Figure 5, when a packet is sent from
CE1 to CE3, it may choose several paths in the IPv4 domain.
Therefore, state of multiple IPv4 tunnels should be maintained at the
node A1 and A2.
- IPv4 Tunnel 1: Source Address A1, Destination Address A5
- IPv4 Tunnel 2: Source Address A1, Destination Address A6
- IPv4 Tunnel 3: Source Address A2, Destination Address A5
- IPv4 Tunnel 4: Source Address A2, Destination Address A6
There will be more states of IPv4 tunnels should be maintained when
the scale of the IPv4 domain is large.
B2-------A2----A3-----A6-------B3
| SRv6 | IPv4 | SRv6 |
| Domain | Domain | Domain |
| | | |
Tenant10 CE1---B1-------A1----A4-----A5-------B4---CE3 Tenant10 with
IPv4 20/8
Figure 5. SRv6 Path Crossing IPv4 Domains
The second option can be adopted to carry the IPv4 tunnel information
explicitly in the SRH. At the ingress of the IPv4 tunnel, an IPv4
tunnel header will be encapsulated to the packet according to the
IPv4 tunnel information in the SRH. In order to support encoding
IPv4 tunnel information in SRH, new mechanisms are required.
4. Concept of Generalized SRv6
According to the requirements described above, this document proposes
Generalized SRv6, which supports to encode multiple types of Segment
ID in a single SRH for an end-to-end Generalized SRv6 path that
travels multiple types of networks, such as SRv6 domains, Compressed
SRv6 domains, SR-MPLS domains and IPv4 domains.
In order to support G-SRv6, this document proposes some enhancements
of SRH. This enhanced SRH is called Generalized SRH (G-SRH). The
Segments encoded in a G-SRH is called General Segments and its ID is
called Generalized SID (G-SID). A G-SID is a 128 bits value, and it
may contain:
Cheng, et al. Expires September 16, 2021 [Page 9]
Internet-Draft G-SRv6 March 2021
o an SRv6 SID
o a compression G-SID
o an MPLS G-SID
o an IPv4 G-SID
4.1. SRv6 G-SID
SRv6 SID is a type of G-SID. A G-SID contains a single SRv6 SID, and
does not change anything of SRv6 SID.
4.2. Compression G-SID
As per [I-D.li-spring-compressed-srv6-np], a C-SID is a sub-set of a
compressable SRv6 SID, which can be used for routing the packets in
compressed SRv6 network programming.
A compression G-SID shown in Figure 6 may contains several C-SIDs and
optional padding. When C-SID is a 32 bits value, a compression G-SID
can consist of 4 C-SIDs. If the length of C-SIDs in a G-SID is less
than 128 bits, then padding is required.
Cheng, et al. Expires September 16, 2021 [Page 10]
Internet-Draft G-SRv6 March 2021
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| C-SID 0 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| C-SID 1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| C-SID 2 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| C-SID 3 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
(a)
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| C-SID 0 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| C-SID 1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
(b)
Figure 6. Compression G-SID
4.3. MPLS G-SID
An MPLS G-SID shown in Figure 7 may contains 4 MPLS Label
Encapsulations, if number of MPLS Label Encapsulations is less than
4, then padding is required in G-SID for aligning with 128 bits.
Cheng, et al. Expires September 16, 2021 [Page 11]
Internet-Draft G-SRv6 March 2021
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Label 0 | TC |S| TTL |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Label 1 | TC |S| TTL |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Label 2 | TC |S| TTL |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Label 3 | TC |S| TTL |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
(a)
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Label 0 | TC |1| TTL |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Label 1 | TC |S| TTL |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
(b)
Figure 7. MPLS G-SID
In order to indicate the MPLS G-SID, this document proposes a END.M
(End function with SR-MPLS path instantiation), this will be
described in section 6.
An MPLS G-SID appears after the END.M SID, and it can not be the last
G-SID in the G-SID list.
4.4. IPv4 G-SID
An IPv4 G-SID shown in Figure 8 contains 128 bits IPv4 tunnel related
information. The format of IPv4 G-SID is shown below.
Cheng, et al. Expires September 16, 2021 [Page 12]
Internet-Draft G-SRv6 March 2021
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 | Tunnel Parameters |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv4 Src Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv4 Dest Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Tunnel Parameters |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 8. IPv4 G-SID
In order to indicate the IPv4 G-SID, this document proposes a END.4
(End function with IPv4 tunnel instantiation), this will be described
in section 7. The detailed encoding of IPv4 tunnel G-SID is also
described in section 7.
An IPv4 G-SID appears after the End.4 SID, and it can not be the last
G-SID in the G-SID list.
5. G-SRv6 for Crossing SRv6 Compression Domains
This section describes the mechanism of G-SRv6 for crossing SRv6
Compression Domains.
5.1. Mechanisms
The path for crossing SRv6 Compression Domain is called Compressed
SRv6 sub-path. It should be encoded in any location of a G-SRH.
There are following aspects should be considered in this mechanism:
o Compression SID indication
o C-SID length indication
o Start of C-SIDs indication
o End of C-SIDs indication
5.1.1. Compressable SID Indication
A new flavor can be introduced to indicate that an SRv6 SID is
compressable. There are two options for the definition of the
flavor:
Cheng, et al. Expires September 16, 2021 [Page 13]
Internet-Draft G-SRv6 March 2021
o Option A: If the Compressable flavor is set for a specific SRv6
SID, it means that the SRv6 SID can be used as normal SRv6 SID and
also can be used as Compressable SRv6 SID.
o Option B: If the Compressable flavor is set for a specific SRv6
SID, it means that the SRv6 SID can only be used as Compressable
SRv6 SID. In this option, if an SRv6 SID is already allocated and
the compression requirement is proposed, a new SRv6 SID has to be
allocated as the Compressable SRv6 SID for the same function.
Though the Option B may use more SRv6 SIDs for the purpose of
compression, it has much advantages in the incremental deployment.
This document recommends the Option B.
5.1.2. C-SID Length Indication
Compresable SRv6 SID can be represented as Common Prefix +
C-SID+(Optional) Argument. There can be multiple options for the
length of C-SID as follows:
o Option A: a variable length in bytes
o Option B: optional length such as 16/32/64 bits
o Option C: only one option, 32 bits
Though the length of C-SID can be configured locally or advertised by
protocol extensions, the different length of C-SID will increase the
complexity of process of control plane and data plane which is not
necessary. This document recommends Option C which is a ideal
tradeoff between the compression and the enough space for node ID and
SRv6 Function.
5.1.3. Start of Compression Indication
In G-SRv6, if the SID list of an SRv6 sub-path consists of a list of
compressable SIDs, it can be programmed as follows: the first
compressable SID indicates the start of C-SRv6 sub-path, followed by
compressable G-SIDs, which includes C-SIDs and padding if the number
of (32 bits) C-SIDs is less than 4 in a G-SID. The format of
programmed SRv6 compression sub-path is shown in Figure 9.
Cheng, et al. Expires September 16, 2021 [Page 14]
Internet-Draft G-SRv6 March 2021
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
. ... .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Compression G-SID 1 |
| |
| |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Compression G-SID 2 |
| |
| |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Compressable SRv6 SID |
| |
| |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 9. G-SID list for SRv6 Compression Path
5.1.4. End of Compression Indication
Since C-SIDs and SRv6 SIDs can be encoded in any order in an SRH, a
mechanism for indicating the end of compression is needed. There are
mainly two options for the indication of the end of compression as
follows:
o Option A: an EOC (End of Compression) flavor is introduced when
advertise Compressable SRv6 SID. When the node determines the
IPv6 destination address of SRv6 packet is the Compresable SRv6
SID with EOC flavor, meaning the associated C-SID is the last
C-SID in the G-SID, and it will skip the G-SID in which the
corresponding C-SID located and read the following 128-bit SRv6
SID.
o Option B: an EOC C-SID is introduced in the G-SID to indicate the
end of the compression. The length of EOC C-SID is a 32 bits
value, and the it's value can be a well-known value such as 0 or a
node allocated value. If the number of C-SIDs in a Compression
G-SID is less than 4, the EOC can be used as the . If there are 4
C-SIDs in the last G-SID of Compressed SRv6 sub-path, it has to
insert a G-SID composed by 4 EOCs.
Cheng, et al. Expires September 16, 2021 [Page 15]
Internet-Draft G-SRv6 March 2021
The different options for indication of end of compression are shown
in Figure 10.
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| C-SID 0 (EOC Flavor) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| C-SID 1 (Non-EOC Flavor) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| C-SID 2 (Non-EOC Flavor) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| C-SID 3 (Non-EOC Flavor) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
(a) Option A
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| G-SID (MBZ) |
| |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| C-SID 0 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| C-SID 1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| C-SID 2 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| C-SID 3 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
(b) Option B
Figure 10. End of Compression Indication
5.1.5. Micro SID in G-SRv6 Compression
The Micro SID instruction is proposed at
[I-D.filsfils-spring-net-pgm-extension-srv6-usid], and it can be used
for forwarding SRv6 packets by shifting the IPv6 DA. The Micro SID
Carrier can be seen as a type of G-SID and can be directly used for
G-SRv6 as shown in Figure 11 (a).
The compressable SRv6 SID can also be used as the Micro SID and
encapsulated in the Micro SID Carrier. As shown in Figure 11 (b),
the first compressable SRv6 SID for the sub-path crossing SRv6
compression domain can be changed to a Micro SID carrier with the
Cheng, et al. Expires September 16, 2021 [Page 16]
Internet-Draft G-SRv6 March 2021
locator block and multiple uSIDs which are also C-SIDs. Therefore,
multiple C-SIDs can be updated to the IPv6 DA in a single time.
After shifting the Micro SIDs in IPv6 DA and if the last Micro SID is
the C-SID without EOC flavor, the following multiple C-SIDs (Micro
segments) in the G-SID will be updated to the IPv6 DA instead of the
Micro SID carrier and the location of the C-SIDs in the G-SID is
recorded. If the rest C-SIDs in the current G-SID is less than the
C-SIDs should be copied to the IPv6 DA using as the Micro SID carrier
in a single time, only the rest C-SIDs will be copied to the IPv6 DA.
The next copy will begin with the first C-SID in the next G-SID. The
end of the C-SIDs shifting is indicated by a EOC flavor C-SID. When
an EOC flavor C-SID is processed, the next 128-bits G-SID will be
updated to the IPv6 DA.
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Block | uSID5(uN) | uSID6(uN) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Block | uSID3(uN) | uSID4(uN) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Block | uSID1(uN) | uSID2(uN) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
(a) Original Micro SID carrier in G-SRv6
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| C-SID3(uN) | C-SID4(uN) | C-SID5(uN) | C-SID6(uN/EOC)|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Block | C-SID1(uN) | C-SID2(uN) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 64 bits | 32 bits | 32 bits |
(b) C-SID(uN) in G-SRv6
Figure 11. Micro SID using in G-SRv6
In this mechanism, more SRH overhead can be reduced but it also
brings limitation of address planning and extra complexities. The
details will be discussed in the future version.
5.2. Illustration
According to the above mechanisms, the scenarios shown in the section
3.1 can be encoded as follows:
Scenario 1-1:
Assuming that
Cheng, et al. Expires September 16, 2021 [Page 17]
Internet-Draft G-SRv6 March 2021
o A::1:1, A::2:1, A::3:1, A::4:1, A::5:1 are the Compressable SIDs.
o A::1:2, A::2:2, A::3:2, A::4:2, A::5:2 are the Compressable SIDs
with EOC flavor.
The programmed G-SRv6 path A1->A2->A3->A4->A5->A6->A7 is shown in
Figure 12:
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| A::7:10 |
| |
| |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| A6::6:1 |
| |
| |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 5:2 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 4:1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 3:1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 2:1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| A1::1:1 |
| |
| |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 12. G-SRv6 Path for Scenario 1-1
Scenario 1-2:
The programmed G-SRv6 path A1->A2->A3->A4->B1->B2->B3->B4 is shown in
Figure 13:
Cheng, et al. Expires September 16, 2021 [Page 18]
Internet-Draft G-SRv6 March 2021
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 4:2 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 3:1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 2:1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| B::1:1 |
| |
| |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 4:2 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 3:1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 2:1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| A::1:1 |
| |
| |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 13. G-SRv6 Path for Scenario 1-2
In reduced mode, the SID A::1:1 can be removed from the G-SRH.
The mechanism of indicating the C-SIDs within the G-SID will be
described in the document of G-SRH.
5.3. Effect on SRv6
G-SRv6 provides the flexibility of encoding SRv6 SID and SRv6 C-SID
in a single SRH, which supports to program an SRv6 path that consists
of compression capable and compression incapable nodes. In this
case, G-SRv6 solves the problem of SRv6 overhead with a limited
effect on SRv6.
o Independent with SRv6: G-SRv6 does not require that the SRv6 SID
Space has the common prefix for supporting compression. A new
address block can be allocated for compressable SID, and the
Cheng, et al. Expires September 16, 2021 [Page 19]
Internet-Draft G-SRv6 March 2021
common prefix of Compressable SIDs can be configured with
appropriate length.
o Incremental upgrade: G-SRv6 does not require to upgrade all the
nodes along the path to support SRv6 compression, they can be
upgraded on demand to support compression.
5.4. Protocol Extensions Requirements
This section describes the protocol extension requirements.
5.4.1. Data Plane
REQ1-01: An SRv6 compression path can be represented as a G-SID list
consists of a compressable SRv6 SID and Compression G-SIDs.
REQ1-02: A Compression G-SID consists of at most 4 (32-bits) C-SIDs,
if the number of C-SID is less than 4, then padding is required to
align with 128 bits.
REQ1-03: If the first Compressable SID is copied to the IPv6 DA, then
the C-SIDs of the following G-SIDs should be read by the nodes along
the SRv6 compression sub-path and the C-SID part in IPv6 DA should be
replaced accordingly.
REQ1-04: The last C-SID in the G-SIDs for the SRv6 compression sub-
path should be the Compressable SRv6 SID with EOC flavor.
REQ1-05: When process the Compressalbe SRv6 SID with EOC flavor in
the IPv6 DA, the corresponding G-SID in the G-SRH should be skipped
and the IPv6 DA should be updated by the following SRv6 SID if
exists.
5.4.2. Control Plane
REQ1-11: ISIS/OSPF/BGP-LS extensions for advertising the G-SRv6 for
SRv6 compression capabilities
REQ1-12: ISIS/OSPF/BGP-LS/BGP extensions for advertising the
Compression flavor for Compressable SIDs.
REQ1-13: ISIS/OSPF/BGP-LS extensions for advertising the End-of-
compression(EOC) flavor for Compressable SIDs.
REQ1-14: ISIS/OSPF/BGP-LS/BGP extensions for advertising the format
of Compressable SIDs.
Cheng, et al. Expires September 16, 2021 [Page 20]
Internet-Draft G-SRv6 March 2021
REQ1-21: BGP SRv6 Policy extensions for advertising the G-SRv6 for
SRv6 compression capabilities.
REQ1-22: BGP SR Policy extensions for programming a G-SRv6 path
combining with Compressable SRv6 SIDs and SRv6 SIDs.
REQ1-31: PCEP SRv6 Policy extensions for advertising the G-SRv6 for
SRv6 compression capabilities.
REQ1-32: PCEP SR Policy extension for programming a G-SRv6 path
combining with Compressable SRv6 SIDs and SRv6 SIDs.
REQ1-33: PCEP extensions for programming a G-SRv6 path combining with
Compressable SRv6 SIDs and SRv6 SIDs.
6. G-SRv6 for Crossing SR-MPLS Domain
This section describes the mechanism for encoding SRv6 SIDs and MPLS
G-SID in a single G-SRH.
6.1. Mechanisms
The path for crossing SR-MPLS domain is called SR-MPLS sub-path. It
can be encoded in any location of G-SRH. There are two aspects
should be considered in this mechanism:
o Start of MPLS G-SIDs indication
o End of MPLS G-SIDs indication
6.1.1. Start of MPLS G-SID Indication
In order to indicate the start of MPLS G-SIDs, new SRv6 SIDs types
should be defined. This document defines an SID function to indicate
the start of MPLS G-SIDs, called End.M ( End with MPLS labels).
An SR-MPLS sub-path can be encoded in the G-SRH as follows:
Cheng, et al. Expires September 16, 2021 [Page 21]
Internet-Draft G-SRv6 March 2021
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
. ... .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| MPLS G-SID 1 |
| |
| |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| MPLS G-SID 2 |
| |
| |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| End.M SRv6 SID |
| |
| |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 14. SR-MPLS Sub-path Encoding in G-SRH
When a node processes an End.M SID, it copies the following MPLS
label stack encapsulation information of SR-MPLS sub-path in the MPLS
G-SIDs to the MPLS header, and set the IPv6 DA as the SRv6 SID
following the last MPLS G-SID of the SR-MPLS sub-path, and then
forward the packet according to the active MPLS label.
6.1.2. End of MPLS G-SID Indication
The S-bit in the MPLS label indicates the end of the MPLS label
within the current MPLS G-SIDs sub-list.
When the ingress node of the SR-MPLS sub-path reads the MPLS label
stack encapsulation information until the Label with S-bit set. If
the S-bit is set for the label encapsulation, it will skip the G-SID
in which the label locates and set the IPv6 DA of the SRv6 packet as
the SRv6 SID following the G-SID if exists.
6.2. Illustration
According to the above mechanisms, the scenarios shown in the section
3.2 can be encoded as follows:
Assuming that
Cheng, et al. Expires September 16, 2021 [Page 22]
Internet-Draft G-SRv6 March 2021
o A::1:100 is the End.M SID allocated by the node A1 for crossing
SR-MPLS domain.
o Label 1001, 1002, 1003, 1004, 1005 and 1006 are allocated as the
node segment for A1/A2/A3/A4/A5/A6.
The programmed G-SRv6 path B1->A1->A2->A3->A6->A5->B4 is shown in
Figure 15:
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| B::4:1 |
| |
| |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 1005 | TC |1| TTL |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 1006 | TC |0| TTL |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 1003 | TC |0| TTL |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 1002 | TC |0| TTL |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| A::1:100 (End.M) |
| |
| |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| B::1:1 |
| |
| |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 15. G-SRv6 Path for Sec 3.2
6.3. Effect on SRv6
G-SRv6 supports to program the SRv6 SID and SR-MPLS SID/MPLS label in
a single G-SRH, which provides to encode the end-to-end G-SRv6 path
across SRv6 domains and SR-MPLS/MPLS domains explicitly at the
ingress node. However, it also brings complexities of network
programming, so this document suggests to upgrade the SR-MPLS nodes
to support SRv6.
Cheng, et al. Expires September 16, 2021 [Page 23]
Internet-Draft G-SRv6 March 2021
6.4. Protocol Extensions Requirements
This section describes the protocol extension requirements of G-SRv6
for MPLS G-SID.
6.4.1. Data Plane
REQ2-01: An MPLS path can be encoded in G-SRH as a series of G-SIDs
including a 128-bit End.M SRv6 SID and a set of MPLS G-SIDs.
REQ2-02: An MPLS G-SID can consist of up to 4 MPLS label/SR-MPLS SID,
if the number of MPLS label/SR-MPLS SID is less than 4, padding is
required to align with 128 bits.
REQ2-03: An End.M SRv6 SID indicates the start of MPLS G-SID.
REQ2-04: The SRv6 packet can be encapsulated with an outer MPLS
header, and the MPLS header contains the MPLS labels carried by the
MPLS G-SIDs.
REQ2-05: When the label encapsulation with S-bit is set is read by
the ingress node of the SR-MPLS sub-path, the corresponding G-SID
should be skipped and the IPv6 DA should be updated by the following
SRv6 SID if exists.
6.4.2. Control Plane
REQ2-11: ISIS/OSPF/BGP-LS extensions for advertising the G-SRv6 for
MPLS capabilities
REQ2-12: ISIS/OSPF/BGP-LS extensions for advertising the End.M SRv6
SID.
REQ2-21: BGP SR Policy extensions for advertising the G-SRv6 for MPLS
capabilities
REQ2-22: BGP SR Policy extensions for encoding G-SID list with SRv6
SID and MPLS G-SID for G-SRv6 path.
REQ2-31: PCEP SR Policy extensions for advertising the G-SRv6 for
MPLS capabilities
REQ2-31: PCEP SR Policy extensions for encoding G-SID list with SRv6
SID and MPLS G-SID for G-SRv6 path.
REQ2-33: PCEP extensions for encoding G-SID list with SRv6 SID and
MPLS G-SID for G-SRv6 path.
Cheng, et al. Expires September 16, 2021 [Page 24]
Internet-Draft G-SRv6 March 2021
7. G-SRv6 for Crossing IPv4 Domain
This section describes the mechanism of G-SRv6 for crossing IPv4
domain.
7.1. Mechanism
The path for crossing IPv4 domain is called IPv4 tunnel sub-path. It
should be encoded in any location of G-SRH. There are two aspects
should be considered in this mechanism:
o Start of IPv4 G-SID
o IPv4 G-SID encoding
7.1.1. Start of IPv4 G-SID Indication
In order to indicate the start of IPv4 G-SIDs, new SRv6 SIDs types
should be defined.
This document defines an SID function to indicate the start of IPv4
G-SIDs, called End.4( End with IPv4 tunnel).
When a node processes the End.4 SID, it encapsulates an outer IPv4
tunnel header for the SRv6 packet based on the tunnel information
carried by the following IPv4 G-SID, and set the IPv6 DA as the SRv6
SID following the IPv4 G-SID, and then forwards the packet according
to the IPv4 DA.
An IPv4 tunnel sub-path can be encoded in the G-SRH 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv4 G-SID |
| |
| |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SRv6 End.4 SID |
| |
| |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 16. IPv4 Tunnel Sub-path Encoding in G-SRH
Cheng, et al. Expires September 16, 2021 [Page 25]
Internet-Draft G-SRv6 March 2021
Also, this document proposes the END.B4 (End bound to an IPv4 tunnel)
SID. A End.B4 is bound to an IPv4 tunnel. When the node receives a
packet with End.B4 SID, the packet should be steered into the binding
IPv4 tunnel.
7.1.2. IPv4 G-SID encoding
An IPv4 GID contains the IPv4 tunnel information including tunnel
type, source IPv4 address, destination IPv4 address and tunnel
parameters. Different types of IPv4 tunnels have specific
parameters:
o IPv4 UDP tunnel: the tunnel parameters includes source port and
destination port.
o IPv4 VXLAN tunnel: the tunnel parameters includes source port,
destination port and VN ID.
The detailed encapsulation formats for different types of IPv4 tunnel
is out of scope of the document.
7.2. Illustration
According to the above mechanisms, the scenarios shown in the section
3.3 can be encoded as follows:
Assuming that
o A::1:200 is the End.4 SID allocated by the node A1 for crossing
IPv4 domain.
The programmed G-SRv6 path B1->A1->A6->B4 is shown in Figure 17:
Cheng, et al. Expires September 16, 2021 [Page 26]
Internet-Draft G-SRv6 March 2021
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| B::4:1 |
| |
| |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Tunnel Parameters |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv4 Src Address (A1) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv4 Dest Address (A6) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Tunnel Parameters |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| A::1:200 (End.IP4) |
| |
| |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| B::1:1 |
| |
| |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 17. G-SRv6 Path for Sec 3.3
7.3. Effect on SRv6
G-SRv6 provides the capabilities for encoding IPv4 tunnel information
and SRv6 SID within a single G-SRH, which brings benefits on end-to-
end network programming on scenarios of packets traveling SRv6
domains and IPv4 domains. However, it also brings new complexities,
so this document suggests to upgrade the IPv4 nodes to support IPv6
or SRv6.
7.4. Protocol Extensions Requirements
This section describes the protocol extension requirements of G-SRv6
for IPv4 G-SID.
Cheng, et al. Expires September 16, 2021 [Page 27]
Internet-Draft G-SRv6 March 2021
7.4.1. Data Plane
REQ3-01: An IPv4 tunnel can be encoded in G-SRH as series of G-SIDs
including a 128 bit End.4 SRv6 SID and a set of IPv4 G-SIDs.
REQ3-02: An IPv4 G-SID can consist of multiple IPv4 tunnel
information, such as IPv4 source address and destination address of
the tunnel endpoint.
REQ3-03: An End.4 SRv6 SID indicates the start of IPv4 G-SID.
REQ3-04: An End.B4 SRv6 SID indicates the IPv4 tunnel.
REQ3-05: The SRv6 packet can be encapsulated with an outer IPv4
tunnel header based on the parameters in the IPv4 G-SID.
REQ3-06: After the tunnel information is read by the ingress node of
the IPv4 tunnel sub-path, the corresponding G-SID should be skipped
and the IPv6 DA should be updated by the following SRv6 SID if
exists.
7.4.2. Control Plane
REQ3-11: ISIS/OSPF/BGP-LS extensions for advertising the G-SRv6 for
IPv4 capabilities
REQ3-12: ISIS/OSPF/BGP-LS extensions for advertising the End.4 SRv6
SID.
REQ3-13: ISIS/OSPF/BGP-LS extensions for advertising the End.B4 SRv6
SID.
REQ3-21: BGP SR Policy extensions for advertising the G-SRv6 for IPv4
capabilities
REQ3-22: BGP SR Policy extensions for encoding G-SID list with SRv6
SID and IPv4 G-SID for G-SRv6 path.
REQ3-31: PCEP SR Policy extensions for advertising the G-SRv6 for
IPv4 capabilities
REQ3-31: PCEP SR Policy extensions for encoding G-SID list with SRv6
SID and IPv4 G-SID for G-SRv6 path.
REQ3-33: PCEP extensions for encoding G-SID list with SRv6 SID and
IPv4 G-SID for G-SRv6 path.
Cheng, et al. Expires September 16, 2021 [Page 28]
Internet-Draft G-SRv6 March 2021
8. IANA Considerations
TBD
9. Security Considerations
TBD
10. Contributors
Zhibo Hu
Huawei Technologies
huzhibo@huawei.com
Yang Xia
Huawei Technologies
yolanda.xia@huawei.com
11. Acknowledgements
12. References
12.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>.
[RFC8200] Deering, S. and R. Hinden, "Internet Protocol, Version 6
(IPv6) Specification", STD 86, RFC 8200,
DOI 10.17487/RFC8200, July 2017,
<https://www.rfc-editor.org/info/rfc8200>.
[RFC8754] Filsfils, C., Ed., Dukes, D., Ed., Previdi, S., Leddy, J.,
Matsushima, S., and D. Voyer, "IPv6 Segment Routing Header
(SRH)", RFC 8754, DOI 10.17487/RFC8754, March 2020,
<https://www.rfc-editor.org/info/rfc8754>.
Cheng, et al. Expires September 16, 2021 [Page 29]
Internet-Draft G-SRv6 March 2021
[RFC8402] Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L.,
Decraene, B., Litkowski, S., and R. Shakir, "Segment
Routing Architecture", RFC 8402, DOI 10.17487/RFC8402,
July 2018, <https://www.rfc-editor.org/info/rfc8402>.
[RFC8986] Filsfils, C., Ed., Camarillo, P., Ed., Leddy, J., Voyer,
D., Matsushima, S., and Z. Li, "Segment Routing over IPv6
(SRv6) Network Programming", RFC 8986,
DOI 10.17487/RFC8986, February 2021,
<https://www.rfc-editor.org/info/rfc8986>.
[I-D.li-spring-compressed-srv6-np]
Li, Z., Li, C., Xie, C., LEE, K., Tian, H., Zhao, F.,
Guichard, J., Cong, L., and S. Peng, "Compressed SRv6
Network Programming", draft-li-spring-compressed-
srv6-np-02 (work in progress), February 2020.
12.2. Informative References
[I-D.filsfils-spring-srv6-net-pgm-illustration]
Filsfils, C., Camarillo, P., Li, Z., Matsushima, S.,
Decraene, B., Steinberg, D., Lebrun, D., Raszuk, R., and
J. Leddy, "Illustrations for SRv6 Network Programming",
draft-filsfils-spring-srv6-net-pgm-illustration-03 (work
in progress), September 2020.
[I-D.tian-spring-srv6-deployment-consideration]
Tian, H., Zhao, F., Xie, C., Li, T., Ma, J., Mwehair, R.,
Chingwena, E., Peng, S., Li, Z., and Y. Xiao, "SRv6
Deployment Consideration", draft-tian-spring-srv6-
deployment-consideration-04 (work in progress), January
2021.
[I-D.filsfils-spring-net-pgm-extension-srv6-usid]
Filsfils, C., Camarillo, P., Cai, D., Voyer, D., Meilik,
I., Patel, K., Henderickx, W., Jonnalagadda, P., Melman,
D., Liu, Y., and J. Guichard, "Network Programming
extension: SRv6 uSID instruction", draft-filsfils-spring-
net-pgm-extension-srv6-usid-08 (work in progress),
November 2020.
[I-D.lc-6man-generalized-srh]
Li, Z., Li, C., Cheng, W., Xie, C., Cong, L., Tian, H.,
and F. Zhao, "Generalized Segment Routing Header", draft-
lc-6man-generalized-srh-01 (work in progress), August
2020.
Cheng, et al. Expires September 16, 2021 [Page 30]
Internet-Draft G-SRv6 March 2021
Authors' Addresses
Weiqiang Cheng
China Mobile
Email: chengweiqiang@chinamobile.com
Zhenbin Li
Huawei Technologies
Huawei Campus, No. 156 Beiqing Rd.
Beijing 100095
China
Email: lizhenbin@huawei.com
Cheng Li
Huawei Technologies
Huawei Campus, No. 156 Beiqing Rd.
Beijing 100095
China
Email: c.l@huawei.com
Chongfeng Xie
China Telecom
China Telecom Information Science&Technology Innovation park, Beiqijia Town,Changping District
Beijing
China
Email: xiechf@chinatelecom.cn
Cong Li
China Telecom
China Telecom Information Science&Technology Innovation park, Beiqijia Town,Changping District
Beijing
China
Email: licong@chinatelecom.cn
Cheng, et al. Expires September 16, 2021 [Page 31]
Internet-Draft G-SRv6 March 2021
Hui Tian
CAICT
Beijing
China
Email: tianhui@caict.ac.cn
Feng Zhao
CAICT
Beijing
China
Email: zhaofeng@caict.ac.cn
Cheng, et al. Expires September 16, 2021 [Page 32]