Internet DRAFT - draft-li-spring-srv6-ssid
draft-li-spring-srv6-ssid
Network Working Group T. Li
Internet-Draft Z. Chen
Intended status: Standards Track Huawei Technologies
Expires: November 16, 2020 May 15, 2020
Short SID for SRv6
draft-li-spring-srv6-ssid-00
Abstract
Segment Routing enables an operator or an application to specify a
packet processing program. When Segment Routing is applied to IPv6
data plane, the list of IPv6 SIDs in SRH makes overhead a big
challenge.
This document proposes Short SID (SSID) and Short SRH (SSRH), and the
operations with SSRH. The proposed solution tries to reduce the
overhead of SRv6 without defining new routing header.
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.
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
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 November 16, 2020.
Li & Chen Expires November 16, 2020 [Page 1]
Internet-Draft Short SID May 2020
Copyright Notice
Copyright (c) 2020 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 . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. Short SID (SSID) . . . . . . . . . . . . . . . . . . . . . . 3
4. Short SRH (SSRH) . . . . . . . . . . . . . . . . . . . . . . 5
5. Operations with Short SRH . . . . . . . . . . . . . . . . . . 8
5.1. Ingress Node . . . . . . . . . . . . . . . . . . . . . . 8
5.2. Transit Node . . . . . . . . . . . . . . . . . . . . . . 9
5.3. Egress Node . . . . . . . . . . . . . . . . . . . . . . . 9
6. Control Plane . . . . . . . . . . . . . . . . . . . . . . . . 9
7. Illustration . . . . . . . . . . . . . . . . . . . . . . . . 9
8. Cross-domain Operation . . . . . . . . . . . . . . . . . . . 11
9. Security Considerations . . . . . . . . . . . . . . . . . . . 11
10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11
11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 11
12. Normative References . . . . . . . . . . . . . . . . . . . . 11
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 12
1. Introduction
Segment Routing [RFC8402] enables an operator or an application to
specify a packet processing program. SRv6 applies Segment Routing to
IPv6 data plane. A new routing header for IPv6, which is called
Segment Routing Header (SRH) [RFC8754] is defined to carry 128-bit
SIDs.
One big challenge for SRv6 is the overhead. We can explain why the
overhead should not be ignored in two scenarios. The first one is
long distance or large scale transmission such as end-to-end TE path.
It is hard for Network Processor to process the SRv6 packet if SRH
contains too many SIDs and the forwarding performance may be
affected. The second one is the scenario like IoT deployment, where
Li & Chen Expires November 16, 2020 [Page 2]
Internet-Draft Short SID May 2020
the payload is small and the energy on the device is limited. The
size of SRH may be bigger than the payload which may affect the pay
load efficiency and cause extra energy consumption.
This document proposes a short SID mechanism in order to reduce the
overhead of SRv6 by introducing Short SID (SSID). SSID contains
Short Node Identifier (SNID) and Short Function Identifier (SFID).
We consider SNID and SFID as two separate objects and compress them
separately. The mechanism defines no new routing header and can stay
compatibility with the existing SRH.
2. Terminology
The definitions of the SRv6 terms, such as SRv6, SID, SRH, locator
and function can be found in [RFC8754], [RFC8402],
[I-D.draft-ietf-spring-srv6-network-programming].
This document introduces the following new terms:
SSID: Short Segment Identifier.
SNID: Short Node Identifier.
SFID: Short Function Identifier.
SSRH: Short Segment Routing Header.
3. Short SID (SSID)
The IPv6 DA contains 16 bytes SRv6 SID and can be separated into three
parts: locator, function, and argument. As for the argument, we
consider it as the accessory of function. This document omits
argument to make the description of SSID clear and simple. More
details will be contained in the next version of this document.
This document proposes a short SID mechanism in order to reduce the
overhead of SRv6. We compress locator and function separately. The
locator is compressed by abstracting common prefix which is only
carried in DA and the remaining part is SNID. The function is
compressed by setting the function ID allocation rules at the node
and only carry the valid bits in the SSRH.
Then the IPv6 DA can be separated into three parts: P-bytes common
prefix, N-bytes SNID, and F-bytes SFID.
Li & Chen Expires November 16, 2020 [Page 3]
Internet-Draft Short SID May 2020
0 16 bytes
+-----------------+--------+-------+--------+
| Common Prefix | SNID | 0..0 | SFID |
+-----------------+--------+-------+--------+
|<--------Locator--------->|<---Function--->|
0 16 bytes
+-----------------+--------+--------+-------+
| Common Prefix | SNID | SFID | 0..0 |
+-----------------+--------+--------+-------+
|<--------Locator--------->|<---Function--->|
Figure 1: IPv6 DA
The definition of common prefix in this document is similar with [I-
D.draft-li-spring-compressed-srv6-np]. The common prefix is the
common part among SIDs in the SID list. P is calculated by comparing
the difference of each SID with other SIDs on the SID list.
The remaining part in locator is called SNID. That is, locator is
consist of SNID and common prefix. In some cases common prefix can
be the SRv6 SID block in
[I-D.draft-ietf-spring-srv6-network-programming].
The function part of the SRv6 SID is an opaque identification of a
local behavior bound to the SID, which is locally defined on the node
where it is executed. This document requires that the identifier
value of function is defined from 1. That is, if there are three
functions on the node, the function identifier should be: 01, 10, and
11. F is calculated by comparing the difference of each function ID
with other function IDs on the SID list. That is, F is the longest
bits of the valid bits among the function IDs. Then we can get the
F-bit SFID. In most cases, one byte is enough for coding the SFID.
The SFID can be the last part of SRv6 SID or after the SNID. SNID
and SFID form the SSID, which is carried in the SRH.
+----------+----------+
| SNID | SFID |
+----------+----------+
|<--------SSID------->|
Figure 2: SSID
Li & Chen Expires November 16, 2020 [Page 4]
Internet-Draft Short SID May 2020
For example, the common prefix is A::/48, the SNID is a 16 bits
value, and the SFID is a 8 bits value. Then the SSID, which is
carried in the SRH, is 24 bits.
0 6 8 15 16 bytes
+-------------------+-------+-----------------------+----+
| Common Prefix | SNID | 0...0 |SFID|
+-------------------+-------+-----------------------+----+
0 6 8 9 16 bytes
+-------------------+-------+----+-----------------------+
| Common Prefix | SNID |SFID| 0...0 |
+-------------------+-------+----+-----------------------+
Figure 3: 24 bits SSID in IPv6 DA
4. Short SRH (SSRH)
This document defines Short Segment Routing Header (SSRH) to carry
SSID. SSRH is not a new routing header type but a segment routing
header that is indicated by flag bit. SSRH can stay compatibility
with the existing SRH.
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
+---------------+---------------+---------------+---------------+
| Next Header | Hdr Ext Len | Routing Type | Segment Left |
+---------------------------------------------------------------+
| Last Entry |S|L| Flags |Pre Len|SNIDLen|SFIDLen| Tag |
+---------------------------------------------------------------+
| Segment List[0] | .
+-------------------------------+---------------+---------------+
. Segment List[1] | ... |
+-------------------------------+-------------------------------+
| ... ... |
+-----------------------------------------------+---------------+
| Segment List[n] |
+-----------------------------------------------+---------------+
// //
// Optional Type Length Value objects (variable) //
// //
+---------------------------------------------------------------+
Figure 4: Short Segment Routing Header
where:
Li & Chen Expires November 16, 2020 [Page 5]
Internet-Draft Short SID May 2020
o Next Header: Defined in [RFC8200]
o Hdr Ext Len: Defined in [RFC8200]
o Routing Type: 4
o Segment Left: Defined in [RFC8200]
o Last Entry: Contains the index (zero based), in the Segment List,
of the last element of the Segment List
o Flags: 8 bits of flags
0 1 2 3 4 5 6 7
+---------------+
|S|L|U|U|U|U|U|U|
+---------------+
U: Unused and for future use. Must be 0 on transmission and ignored
on receipt.
S: Short flag, set when the SRH carries the SSIDs.
1: the SRH carries SSIDs, the node should conduct corresponding
processing of SSRH.
0: the SRH carries normal 128-bit SIDs.
L: Length flag, set when S flag is 1 and the length of common prefix,
SNID, and SFID is carried in the SSRH.
1: the SSRH carries the length of common prefix, SNID, and SFID. The
processing of SSRH should be based on the length values.
0: the SSRH does not carries the length of common prefix, SNID, and
SFID. The length values can be configured by the control plane or by
predefined recommended values (e.g., the length of common prefix is
48 bits, the length of SNID is 16 bits, and the length of SFID is 8
bits).
o Pre Len: 4-bit unsigned integer, length of common prefix carried
in DA.
o SNID Len: 4-bit unsigned integer, length of SNIDs carried in SSRH.
o SFID Len: 4-bit unsigned integer, length of SFIDs carried in SSRH.
Li & Chen Expires November 16, 2020 [Page 6]
Internet-Draft Short SID May 2020
o Tag: 4-bit value to tag a packet as part of a class or group of
packets, e.g., packets sharing the same set of properties. When
Tag is not used at the source, it MUST be set to zero on
transmission.
o Segment List[0...n]: a list of Short SIDs and the length of SSID
is defined by SNID Len and SFID Len or by control plane or by
predefined configuration.
o TLV: Type Length Value (TLV) is described in [RFC8754].
This document does not define new routing type. Instead, the S-flag
is used to indicate that the SRH contains SSID and the node should
conduct the corresponding operations with SSRH.
The Pre Len, SNID Len and SFID Len indicate how many bytes the common
prefix, SNID and SFID have and enable the ingress node to use
variable length.
Fixed length can also be used and the SSRH does not have to carry
length values.
1. The length of common prefix, SNID and SFID may be informed by
control plane.
2. The length of common prefix, SNID and SFID may be configured in
the protocol stack. 48-bit common prefix, 16-bit SNID, and 8-bit
FID are recommended and the SSRH only need to carry 24-bit SSID.
Li & Chen Expires November 16, 2020 [Page 7]
Internet-Draft Short SID May 2020
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
+---------------+---------------+---------------+---------------+
| Next Header | Hdr Ext Len | Routing Type | Segment Left |
+-----------------------------------------------+---------------+
| Last Entry |1|0| Flags | Tag |
+-------------------------------+---------------+---------------+
| Segment List[0] | .
+-------------------------------+---------------+---------------+
. Segment List[1] | ... |
+-------------------------------+-------------------------------+
| ... ... |
+-----------------------------------------------+---------------+
| Segment List[n] |
+-----------------------------------------------+---------------+
// //
// Optional Type Length Value objects (variable) //
// //
+---------------------------------------------------------------+
Figure 5: Short Segment Routing Header with length values in packet
5. Operations with Short SRH
5.1. Ingress Node
The SR domain ingress router has to insert SRH to the IPv6 packet and
if the domain supports SSRH, the S-flag should be set. If the length
of common prefix, SNID, and SFID are based on the length value
carried in the packet, the L-flag is set. If the length of common
prefix, SNID, and SFID are determined by the control plane or pre-
configuration, the L-flag is not set.
If the length values are carried in the SSRH, the ingress router has
to compare the SID list that steers the packet through the domain and
calculate the length values. The common prefix is the longest common
part (in byte) among the SID locators and the length of common prefix
is acquired.
There are two options to put the SFID in the SRv6 SID.
1. Option 1: the SFID is at the end of the SRv6 SID. There are
consequent zero bits between locator and SFID and the length of
locator can be acquired. Then the length of SNID can be
calculated. The length of SFID that should be carried in the
SSRH is the longest length among the SFIDs of the SIDs. These
length values are written in the SSRH.
Li & Chen Expires November 16, 2020 [Page 8]
Internet-Draft Short SID May 2020
2. Option 2: the SFID is after the locator of the SRv6 SID. The end
of SRv6 SID is padded with zero bits. The SNID and the SFID
cannot be separated clearly. The total length of SNID and SFID
can be calculated after the length of common prefix is acquired.
Either of the SNID Len filed or SFID Len filed can be used to
carry the total length of SNID and SFID.
The SSID is consist of SNID and SFID. Every SIDs in the SID list are
compressed into SSIDs which are written in the SSRH Segment List
successively.
5.2. Transit Node
The transit nodes in the SR domain have to update the IPv6 DA before
they forward the packets. The basic SRH operations are defined in
[RFC8754], the only difference is how to update the IPv6 DA. The
common prefix in the DA stays unchanged along the path in the domain.
The SNID and SFID need to be updated. The length of common prefix,
SNID, and SFID can be acquired via in-packet value, or pre-
configuration, or control plane.
If the method for locating SFID in the SRv6 SID is Option 1, then the
SNID is copied to the location after common prefix of the DA and the
SFID is copied to the end of the DA when updating the IPv6 DA.
If the method for locating SFID in the SRv6 SID is Option 2, then the
SNID and the SFID are copied to the location after common prefix
together.
5.3. Egress Node
No new operation is defined in this document at the egress node.
6. Control Plane
The length of the common prefix, SNID, and SFID can be carried in the
packet and no control plane extension is needed. While the length
values can also be configured by control plane. Control plane (such
as IS-IS) extensions are required to signal the length values. The
detailed definitions of the extension will be described in the next
version of this document.
7. Illustration
As illustrated in Figure 6, nodes A - F are SRv6 enabled nodes within
the network domain. A is the ingress router and B is the egress
router. A packet is forwarded along the path A-B-E-F-C-D, and the
SRv6 SID list contains the SID of E, F, and D, which is
Li & Chen Expires November 16, 2020 [Page 9]
Internet-Draft Short SID May 2020
[2001:DB8:B:5::1
2001:DB8:B:6::1
2001:DB8:B:4::2]
+---+ +---+
| E +------+ F |
+-+-+ +-+-+
| |
| |
+---+ +---+ +-+-+ +-+-+ +---+ +---+
|CE1+------+ A +------+ B +------+ C +------+ D +------+CE2|
+---+ +---+ +---+ +---+ +---+ +---+
Figure 6: Illustration Topology
The flag field of SRH is
11000000
which means SSRH is enabled and the length values are carried in the
packet.
The common prefix is 2001:DB8:B::/56 and the length is 7 bytes. The
SNIDs of E, F and D are 5, 6 and 4 and the length is 1 bytes. The
SFIDs of E, F and D are 1, 1 and 2 and the length is 1 bytes. The
SSID in the SSRH is 2 bytes. The SSRH is
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
+---------------+---------------+---------------+---------------+
| Next Header | Hdr Ext Len | Routing Type | Segment Left |
+---------------------------------------------------------------+
| Last Entry |1 1 0 0 0 0 0 0|0 1 1 1|0 0 0 1|0 0 0 1| Tag |
+---------------------------------------------------------------+
|0 0 0 0 0 1 0 1|0 0 0 0 0 0 0 1|0 0 0 0 0 1 1 0|0 0 0 0 0 0 0 1|
+---------------------------------------------------------------+
|0 0 0 0 0 1 0 0|0 0 0 0 0 0 1 0|
+---------------------------------------------------------------+
// //
// Optional Type Length Value objects (variable) //
// //
+---------------------------------------------------------------+
Figure 7: Illustration SSRH
Li & Chen Expires November 16, 2020 [Page 10]
Internet-Draft Short SID May 2020
8. Cross-domain Operation
TBD.
9. Security Considerations
TBD.
10. IANA Considerations
IANA is requested to allocated one bit in Segment Routing Header
Flags to indicate that the STH contains SSID and the node should
conduct the corresponding operations with SSRH.
11. Acknowledgements
TBD.
12. Normative References
[I-D.draft-ietf-spring-srv6-network-programming]
Filsfils, C., Camarillo, P., Leddy, J., Voyer, D.,
Matsushima, S., and Z. Li, "SRv6 Network Programming",
draft-ietf-spring-srv6-network-programming-15 (work in
prograss) , March 2020.
[I-D.draft-li-spring-compressed-srv6-np]
Li, Z., Li, C., Xie, C., LEE, K., Tian, H., Zhao, F.,
Guichard, J., Li, C., and S. Peng, "Compressed SRv6
Network Programming", draft-li-spring-compressed-
SRv6-np-02 (work in prograss) , February 2020.
[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) Spectification", RFC 8200 , July 2017.
[RFC8402] Filsfils, C., Previdi, S., Ginsberg, L., Decraene, B.,
Litkowski, S., and R. Shakir, "Segment Routing
Architecture", RFC 8402 , July 2018.
Li & Chen Expires November 16, 2020 [Page 11]
Internet-Draft Short SID May 2020
[RFC8754] Filsfils, C., Dukes, D., Previdi, S., Leddy, J.,
Matsushima, S., and D. Voyer, "IPv6 Segment Routing Header
(SRH)", RFC 8754 , March 2020.
Authors' Addresses
Taixin Li
Huawei Technologies
No. 156 Beiqing Rd
Beijing 100095
China
Email: litaixin@huawei.com
Zhe Chen
Huawei Technologies
No. 156 Beiqing Rd
Beijing 100095
China
Email: chenzhe17@huawei.com
Li & Chen Expires November 16, 2020 [Page 12]