< draft-ietf-bier-te-yang-03.txt   draft-ietf-bier-te-yang-04.txt >
BIER WG Z. Zhang BIER WG Z. Zhang
Internet-Draft ZTE Corporation Internet-Draft ZTE Corporation
Intended status: Standards Track C. Wang Intended status: Standards Track C. Wang
Expires: November 18, 2021 Individual Expires: 11 May 2022 Individual
R. Chen R. Chen
ZTE Corporation ZTE Corporation
F. Hu F. Hu
Individual Individual
M. Sivakumar M. Sivakumar
Juniper networks Juniper networks
H. Chen H. Chen
Individual Individual
May 17, 2021 7 November 2021
A YANG data model for Traffic Engineering for Bit Index Explicit A YANG data model for Tree Engineering for Bit Index Explicit
Replication (BIER-TE) Replication (BIER-TE)
draft-ietf-bier-te-yang-03 draft-ietf-bier-te-yang-04
Abstract Abstract
This document defines a YANG data model for Traffic Engineering for This document defines a YANG data model for Tree Engineering for Bit
Bit Index Explicit Replication (BIER-TE) configuration and operation. Index Explicit Replication (BIER-TE) configuration and operation.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/. Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on November 18, 2021. This Internet-Draft will expire on 11 May 2022.
Copyright Notice Copyright Notice
Copyright (c) 2021 IETF Trust and the persons identified as the Copyright (c) 2021 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents (https://trustee.ietf.org/
(https://trustee.ietf.org/license-info) in effect on the date of license-info) in effect on the date of publication of this document.
publication of this document. Please review these documents Please review these documents carefully, as they describe your rights
carefully, as they describe your rights and restrictions with respect and restrictions with respect to this document. Code Components
to this document. Code Components extracted from this document must extracted from this document must include Simplified BSD License text
include Simplified BSD License text as described in Section 4.e of as described in Section 4.e of the Trust Legal Provisions and are
the Trust Legal Provisions and are provided without warranty as provided without warranty as described in the Simplified BSD License.
described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Design of the Data Model . . . . . . . . . . . . . . . . . . 2 2. Conventions Used in This Document . . . . . . . . . . . . . . 2
3. BIER-TE configuration . . . . . . . . . . . . . . . . . . . . 4 3. Design of the Data Model . . . . . . . . . . . . . . . . . . 2
4. Notifications . . . . . . . . . . . . . . . . . . . . . . . . 4 4. BIER-TE configuration . . . . . . . . . . . . . . . . . . . . 4
5. RPCs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 5. Notifications . . . . . . . . . . . . . . . . . . . . . . . . 4
6. BIER TE YANG model . . . . . . . . . . . . . . . . . . . . . 4 6. RPCs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15 7. BIER TE YANG model . . . . . . . . . . . . . . . . . . . . . 4
8. Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . 15 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15
9. Normative References . . . . . . . . . . . . . . . . . . . . 16 9. Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . 16
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 16
10.1. Normative References . . . . . . . . . . . . . . . . . . 16
10.2. Informative References . . . . . . . . . . . . . . . . . 17
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 17 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 17
1. Introduction 1. Introduction
[I-D.ietf-bier-te-arch] introduces an architecture for BIER-TE: [I-D.ietf-bier-te-arch] introduces an architecture for BIER-TE: Tree
Traffic Engineering for Bit Index Explicit Replication (BIER). This Engineering for Bit Index Explicit Replication (BIER). This document
document defines a YANG data model for BIER TE. The content is in defines a YANG data model for BIER TE. The content is in keeping
keeping with the TE architecture draft. In addition, this YANG data with the TE architecture draft. In addition, this YANG data model
model contains BIER TE frr items of [I-D.eckert-bier-te-frr]. contains BIER TE frr items of [I-D.eckert-bier-te-frr].
2. Design of the Data Model 2. Conventions Used in This Document
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. Design of the Data Model
The BIER TE YANG model includes BIER TE adjancency configuration and The BIER TE YANG model includes BIER TE adjancency configuration and
forwarding items configuration. Some features can also be used to forwarding items configuration. Some features can also be used to
enhance BIER TE function, like ECMP and FRR. enhance BIER TE function, like ECMP and FRR.
module: ietf-bier-te module: ietf-bier-te
augment /rt:routing/rt:control-plane-protocols augment /rt:routing/rt:control-plane-protocols
/rt:control-plane-protocol: /rt:control-plane-protocol:
+--rw bier-te +--rw bier-te
+--rw te-adj +--rw te-adj
skipping to change at page 4, line 6 skipping to change at page 4, line 19
+--rw bit-string* [index] +--rw bit-string* [index]
+--rw index uint8 +--rw index uint8
+--rw bitmask? uint32 +--rw bitmask? uint32
notifications: notifications:
+---n bier-te-notification +---n bier-te-notification
+--ro bp-is-zero* [if-index] +--ro bp-is-zero* [if-index]
+--ro if-index if:interface-ref +--ro if-index if:interface-ref
+--ro adj-type? enumeration +--ro adj-type? enumeration
3. BIER-TE configuration 4. BIER-TE configuration
The BIER-TE forwarding item is indexed by the combination of sub- The BIER-TE forwarding item is indexed by the combination of sub-
domain-id, BitStringLength and set identifier. domain-id, BitStringLength and set identifier.
One interface can be used in different sub-domain, so the BIER TE One interface can be used in different sub-domain, so the BIER TE
adjacency information is managed by BIER TE function other than by adjacency information is managed by BIER TE function other than by
interface itself. interface itself.
Because the BIER-TE is controlled by controller now, the information Because the BIER-TE is controlled by controller now, the information
about IGP is not defined. If in the future the IGP is used to carry about IGP is not defined. If in the future the IGP is used to carry
the information about BIER-TE, the IGP extension will be added in the information about BIER-TE, the IGP extension will be added in
this document. this document.
4. Notifications 5. Notifications
If the adjacency id of one adjacency is set to zero, the value is If the adjacency id of one adjacency is set to zero, the value is
invalid. The notification should be sent to controller and network invalid. The notification should be sent to controller and network
manager. manager.
5. RPCs 6. RPCs
TBD. TBD.
6. BIER TE YANG model 7. BIER TE YANG model
<CODE BEGINS> file "ietf-bier-te@2021-05-17.yang"
module ietf-bier-te {
yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-bier-te";
prefix bier-te;
import ietf-inet-types {
prefix "inet";
reference
"RFC 6991: Common YANG Data Types";
}
import ietf-routing { <CODE BEGINS> file "ietf-bier-te@2021-11-08.yang"
prefix "rt"; module ietf-bier-te {
reference
"RFC 8349: A YANG Data Model for Routing Management
(NMDA Version)";
} yang-version 1.1;
import ietf-interfaces { namespace "urn:ietf:params:xml:ns:yang:ietf-bier-te";
prefix "if"; prefix bier-te;
reference
"RFC 8343: A YANG Data Model for Interface Management";
}
import ietf-routing-types { import ietf-inet-types {
prefix "rt-types"; prefix "inet";
reference reference
"RFC 8294: Common YANG Data Types for the Routing Area"; "RFC 6991: Common YANG Data Types";
} }
organization " IETF BIER (Bit Indexed Explicit Replication) import ietf-routing {
Working Group"; prefix "rt";
contact reference
"WG Web: <http://tools.ietf.org/wg/bier/> "RFC 8349: A YANG Data Model for Routing Management
WG List: <mailto:bier@ietf.org> (NMDA Version)";
}
Editor: Zheng Zhang import ietf-interfaces {
<mailto:zhang.zheng@zte.com.cn> prefix "if";
Editor: Cui Wang reference
<mailto:lindawangjoy@gmail.com> "RFC 8343: A YANG Data Model for Interface Management";
Editor: Ran Chen }
<mailto:chen.ran@zte.com.cn>
Editor: Fangwei Hu
<mailto:hufwei@gmail.com>
Editor: Mahesh Sivakumar
<mailto:sivakumar.mahesh@gmail.com>
Editor: Huanan Chen
<mailto:chenhuanan@189.cn>
";
description import ietf-routing-types {
"The module defines the YANG definitions for Traffic prefix "rt-types";
Engineering for Bit Index Explicit Replication (BIER-TE). reference
"RFC 8294: Common YANG Data Types for the Routing Area";
}
Copyright (c) 2020 IETF Trust and the persons identified as organization " IETF BIER (Bit Indexed Explicit Replication)
authors of the code. All rights reserved. Working Group";
contact
"WG Web: <http://tools.ietf.org/wg/bier/>
WG List: <mailto:bier@ietf.org>
Redistribution and use in source and binary forms, with or Editor: Zheng Zhang
without modification, is permitted pursuant to, and subject <mailto:zhang.zheng@zte.com.cn>
to the license terms contained in, the Simplified BSD Editor: Cui Wang
License set forth in Section 4.c of the IETF Trust's Legal <mailto:lindawangjoy@gmail.com>
Provisions Relating to IETF Documents Editor: Ran Chen
(https://trustee.ietf.org/license-info). <mailto:chen.ran@zte.com.cn>
Editor: Fangwei Hu
<mailto:hufwei@gmail.com>
Editor: Mahesh Sivakumar
<mailto:sivakumar.mahesh@gmail.com>
Editor: Huanan Chen
<mailto:chenhuanan@189.cn>
";
This version of this YANG module is part of RFC XXXX description
(https://www.rfc-editor.org/info/rfcXXXX); see the RFC "The module defines the YANG definitions for Traffic
itself for full legal notices. Engineering for Bit Index Explicit Replication (BIER-TE).
The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', Copyright (c) 2020 IETF Trust and the persons identified as
'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', authors of the code. All rights reserved.
'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document
are to be interpreted as described in BCP 14 (RFC 2119)
(RFC 8174) when, and only when, they appear in all
capitals, as shown here.";
revision 2021-05-17 { Redistribution and use in source and binary forms, with or
description without modification, is permitted pursuant to, and subject
"Initial revision."; to the license terms contained in, the Simplified BSD
reference License set forth in Section 4.c of the IETF Trust's Legal
"I-D.ietf-bier-te-arch: Traffic Engineering for Bit Index Provisions Relating to IETF Documents
Explicit Replication (BIER-TE)"; (https://trustee.ietf.org/license-info).
}
/* This version of this YANG module is part of RFC XXXX
* Features (https://www.rfc-editor.org/info/rfcXXXX); see the RFC
*/ itself for full legal notices.
feature bier-te-frr {
description
"Support Fast Re-route feature in BIER TE.";
reference
"I-D.eckert-bier-te-frr: Protection Methods for BIER-TE";
}
/* The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL',
* Identities 'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED',
*/ 'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document
are to be interpreted as described in BCP 14 (RFC 2119)
(RFC 8174) when, and only when, they appear in all
capitals, as shown here.";
identity bier-te { revision 2021-11-08 {
base rt:control-plane-protocol; description
description "Initial revision.";
"Identity for the Traffic Engineering for Bit Index Explicit reference
Replication (BIER-TE)."; "I-D.ietf-bier-te-arch: Tree Engineering for Bit Index
reference Explicit Replication (BIER-TE)";
"I-D.ietf-bier-te-arch: Traffic Engineering for Bit Index }
Explicit Replication (BIER-TE)";
}
typedef encapsulation-type { /*
type enumeration { * Features
enum MPLS { */
description feature bier-te-frr {
"The forwarding encapsulation is MPLS description
described in RFC8296 section 2.1."; "Support Fast Re-route feature in BIER TE.";
} reference
enum Ethernet { "I-D.eckert-bier-te-frr: Protection Methods for BIER-TE";
description
"The forwarding encapsulation is Ethernet,
which is belonging to non-mpls part
described in RFC8296 section 2.2.";
}
enum IPv6 {
description
"The forwarding encapsulation is IPv6,
which is belonging to non-mpls part
described in RFC8296 section 2.2.";
}
} }
description
"The encapsulation type of the BIER-TE packet.
If this type is not set, MPLS is the default type.";
} // encapsulation-type
grouping bit-string { /*
description * Identities
"The bit string which each bit represents an adjacency. */
It is encapsulated in BIER header.";
reference
"I-D.ietf-bier-te-arch: Traffic Engineering for Bit Index
Explicit Replication (BIER-TE), section 3.3.
RFC8279: Multicast Using Bit Index Explicit Replication
(BIER).
RFC8296: Encapsulation for Bit Index Explicit Replication
(BIER) in MPLS and Non-MPLS Networks.";
list bit-string { identity bier-te {
key "index"; base rt:control-plane-protocol;
description description
"As the definition in RFC 8279, the bit-string lengths are "Identity for the Tree Engineering for Bit Index Explicit
64, 128, 256, 512, 1024, 2048, 4096 bits. The according Replication (BIER-TE).";
encapsulation is defined in RFC8296. BIER-TE uses the reference
similar function for bit string."; "I-D.ietf-bier-te-arch: Tree Engineering for Bit Index
Explicit Replication (BIER-TE)";
leaf index {
type uint8 {
range "2..128";
}
description
"The index of bit-mask. The minimum index value is 64 and
the corresponding bit string length is 64 bits. The
maximum index value is 128 and the corresponding
bit-string length is 4096 bits.";
}
leaf bitmask {
type uint32;
description "The bit-string in 4-octet units.";
}
} }
} // bit-string
grouping adj-type { typedef encapsulation-type {
description "The collection of all possible adjacency type.";
leaf adj-type {
type enumeration { type enumeration {
enum p2p { enum MPLS {
description "Describes p2p adjacency.";
}
enum bfer {
description "Describes bfer adjacency.";
}
enum leaf-bfer {
description description
"Describes leaf-bfer adjacency. There is no next BFR that "The forwarding encapsulation is MPLS
the packet should be forwarded."; described in RFC8296 section 2.1.";
}
enum lan {
description "Describes lan adjacency.";
}
enum spoke {
description "Describes spoke adjacency of hub-and-spoke.";
}
enum ring-clockwise {
description "Describes clockwise adjacency in ring.";
}
enum ring-counterclockwise {
description "Describes counterclockwise adjacency in ring.";
} }
enum ecmp { enum Ethernet {
description description
"Describes ecmp adjacency. When the type is set to ecmp, "The forwarding encapsulation is Ethernet,
the corresponding ecmp entry should be used to balance which is belonging to non-mpls part
the load."; described in RFC8296 section 2.2.";
} }
enum virtual-link { enum IPv6 {
description description
"Describes virtual adjacency between two indirect connect "The forwarding encapsulation is IPv6,
nodes."; which is belonging to non-mpls part
} described in RFC8296 section 2.2.";
enum other {
description "Describes other id type of adjacency.";
} }
} }
description "The collection of all possible adjacency type."; description
} "The encapsulation type of the BIER-TE packet.
} // adj-type If this type is not set, MPLS is the default type.";
} // encapsulation-type
grouping te-items {
description "The BIER TE forwarding items collection.";
list fwd-next-hop { grouping bit-string {
key "next-hop";
description description
"The next hop information for forwarding. "The bit string which each bit represents an adjacency.
If ECMP function defined in section 3.2.3 is used, It is encapsulated in BIER header.";
multiple next hops may be existed. reference
If ECMP function is not enabled, "I-D.ietf-bier-te-arch: Tree Engineering for Bit Index
the next hop may be one only."; Explicit Replication (BIER-TE), section 3.3.
RFC8279: Multicast Using Bit Index Explicit Replication
(BIER).
RFC8296: Encapsulation for Bit Index Explicit Replication
(BIER) in MPLS and Non-MPLS Networks.";
leaf next-hop { list bit-string {
type inet:ip-address; key "index";
mandatory true;
description "Next hop address.";
}
leaf dnr-flag {
type boolean;
description
"When the flag is set to 1, the BP of adjacency should not
be reset when packet copies are created. The flag makes
sense only when the forwarding type is 'connected'.";
}
container fwd-type {
description description
"The collection of all possible forwarding types."; "As the definition in RFC 8279, the bit-string lengths are
choice fwd-type { 64, 128, 256, 512, 1024, 2048, 4096 bits. The according
mandatory true; encapsulation is defined in RFC8296. BIER-TE uses the
case connected { similar function for bit string.";
description
"The forwarding type is connected. Mostly connected leaf index {
interfaces."; type uint8 {
} range "2..128";
case routed {
description
"The forwarding type is routed. Mostly not connected
interfaces.";
}
case local-decap {
description
"Means that the packet should be decapsulated and
forward out of BIER domain.";
}
case other {
description
"Means that the packet should be discarded.";
} }
description description
"The collection of all possible forwarding types."; "The index of bit-mask. The minimum index value is 64 and
the corresponding bit string length is 64 bits. The
maximum index value is 128 and the corresponding
bit-string length is 4096 bits.";
} }
} // fwd-type leaf bitmask {
type uint32;
description "The bit-string in 4-octet units.";
}
}
} // bit-string
container te-out-bift-id { grouping adj-type {
description description "The collection of all possible adjacency type.";
"The bift-id information corresponding to a specific
outbound interface.";
list te-out-bift-id { leaf adj-type {
key "encap-type"; type enumeration {
leaf encap-type { enum p2p {
type encapsulation-type; description "Describes p2p adjacency.";
}
enum bfer {
description "Describes bfer adjacency.";
}
enum leaf-bfer {
description description
"The encapsulation type of BIER-TE packet."; "Describes leaf-bfer adjacency. There is no next BFR that
the packet should be forwarded.";
} }
leaf value { enum lan {
type rt-types:mpls-label; description "Describes lan adjacency.";
mandatory true; }
enum spoke {
description "Describes spoke adjacency of hub-and-spoke.";
}
enum ring-clockwise {
description "Describes clockwise adjacency in ring.";
}
enum ring-counterclockwise {
description "Describes counterclockwise adjacency in ring.";
}
enum ecmp {
description description
"The bift-id value of the forwarding item. "Describes ecmp adjacency. When the type is set to ecmp,
It can be a mpls label or an index for ethernet the corresponding ecmp entry should be used to balance
or IPv6 encapsulation, which is used to represent the load.";
specific combination of [SD, BSL, SI]. }
The ethernet or IPv6 index value is the same range enum virtual-link {
(20bits) as mpls label. description
This value MUST not be set to 0."; "Describes virtual adjacency between two indirect connect
nodes.";
}
enum other {
description "Describes other id type of adjacency.";
} }
description
"The bift-id value and the encapsulation type
for the BIER-TE packet.";
} }
description "The collection of all possible adjacency type.";
} }
} // adj-type
list out-if-list { grouping te-items {
key "fwd-intf"; description "The BIER TE forwarding items collection.";
list fwd-next-hop {
key "next-hop";
description description
"The outbound interface information for forwarding."; "The next hop information for forwarding.
If ECMP function defined in section 3.2.3 is used,
multiple next hops may be existed.
If ECMP function is not enabled,
the next hop may be one only.";
leaf fwd-intf { leaf next-hop {
type if:interface-ref; type inet:ip-address;
mandatory true; mandatory true;
description "Next hop address.";
}
leaf dnr-flag {
type boolean;
description description
"The out interface of this forwarding item."; "When the flag is set to 1, the BP of adjacency should not
be reset when packet copies are created. The flag makes
sense only when the forwarding type is 'connected'.";
} }
} container fwd-type {
} // next-hop description
} // te-items "The collection of all possible forwarding types.";
/*
* data nodes
*/
augment "/rt:routing/rt:control-plane-protocols/"
+"rt:control-plane-protocol" {
description "The BIER TE information.";
container bier-te {
description "The BIER TE information container.";
container te-adj { choice fwd-type {
description "The BIER TE adjacency information."; mandatory true;
list adj-if { case connected {
key "name"; description
description "List of BIER-TE interfaces."; "The forwarding type is connected. Mostly connected
leaf name { interfaces.";
type if:interface-ref; }
description "Interface name reference."; case routed {
} description
list subdomain { "The forwarding type is routed. Mostly not connected
key "subdomain-id"; interfaces.";
}
case local-decap {
description
"Means that the packet should be decapsulated and
forward out of BIER domain.";
}
case other {
description
"Means that the packet should be discarded.";
}
description description
"The sub-domain which the interface belongs to. "The collection of all possible forwarding types.";
One interface can belong to many subdomains."; }
} // fwd-type
leaf subdomain-id { container te-out-bift-id {
type uint16; description
description "The sub-domain-id of this sub-domain."; "The bift-id information corresponding to a specific
reference outbound interface.";
"RFC 8279: Multicast Using Bit Index Explicit
Replication (BIER)"; list te-out-bift-id {
key "encap-type";
leaf encap-type {
type encapsulation-type;
description
"The encapsulation type of BIER-TE packet.";
} }
list si { leaf value {
key "si"; type rt-types:mpls-label;
description "The set identifier value."; mandatory true;
description
"The bift-id value of the forwarding item.
It can be a mpls label or an index for ethernet
or IPv6 encapsulation, which is used to represent
specific combination of [SD, BSL, SI].
The ethernet or IPv6 index value is the same range
(20bits) as mpls label.
leaf si{ This value MUST NOT be set to 0.";
type uint16;
mandatory true;
description
"The set identifier of this forwarding item.";
}
leaf-list adj-id {
type uint16;
description "The ID of an adjacency.";
}
} }
description
"The bift-id value and the encapsulation type
for the BIER-TE packet.";
} }
uses adj-type;
} }
} // te-adj
container te-fwd { list out-if-list {
description "The BIER TE forwarding information."; key "fwd-intf";
list subdomain {
key "subdomain-id";
description description
"The sub-domain which the interface belongs to. "The outbound interface information for forwarding.";
One interface can belong to many subdomains.";
leaf subdomain-id { leaf fwd-intf {
type uint16; type if:interface-ref;
description "The sub-domain-id of this sub-domain."; mandatory true;
reference description
"RFC 8279: Multicast Using Bit Index Explicit "The out interface of this forwarding item.";
Replication (BIER)";
} }
list bsl { }
key "fwd-bsl"; } // next-hop
description "The forwarding items in one BSL."; } // te-items
leaf fwd-bsl {
type uint16; /*
description "The value of bitstringlength."; * data nodes
*/
augment "/rt:routing/rt:control-plane-protocols/"
+"rt:control-plane-protocol" {
description "The BIER TE information.";
container bier-te {
description "The BIER TE information container.";
container te-adj {
description "The BIER TE adjacency information.";
list adj-if {
key "name";
description "List of BIER-TE interfaces.";
leaf name {
type if:interface-ref;
description "Interface name reference.";
} }
list subdomain {
key "subdomain-id";
description
"The sub-domain which the interface belongs to.
One interface can belong to many subdomains.";
leaf subdomain-id {
type uint16;
description "The sub-domain-id of this sub-domain.";
reference
"RFC 8279: Multicast Using Bit Index Explicit
Replication (BIER)";
}
list si { list si {
key "si"; key "si";
description description "The set identifier value.";
"The forwarding items in one combination of SD,
BSL and SI.";
leaf si{ leaf si{
type uint16; type uint16;
mandatory true; mandatory true;
description description
"The set identifier of this forwarding item."; "The set identifier of this forwarding item.";
} }
container te-bift-id { leaf-list adj-id {
type uint16;
description "The ID of an adjacency.";
}
}
}
uses adj-type;
}
} // te-adj
description container te-fwd {
"The bift-id which is used to locate the specific description "The BIER TE forwarding information.";
forwarding item.";
leaf encap-type {
type encapsulation-type;
description
"The encapsulation type for BIER-TE packet.";
}
leaf value { list subdomain {
type rt-types:mpls-label; key "subdomain-id";
mandatory true; description
description "The sub-domain which the interface belongs to.
"The bift-id value of the forwarding item. One interface can belong to many subdomains.";
It can be a mpls label or an index for
ethernet or IPv6 encapsulation,
which is used to represent specific combination
of [SD, BSL, SI].
The ethernet or IPv6 index value is the same
range (20bits) as mpls label.";
}
}
list fwd-items { leaf subdomain-id {
key "te-bp"; type uint16;
description "The sub-domain-id of this sub-domain.";
reference
"RFC 8279: Multicast Using Bit Index Explicit
Replication (BIER)";
}
list bsl {
key "fwd-bsl";
description "The forwarding items in one BSL.";
leaf fwd-bsl {
type uint16;
description "The value of bitstringlength.";
}
list si {
key "si";
description description
"The forwarding information of one BIER TE item."; "The forwarding items in one combination of SD,
leaf te-bp { BSL and SI.";
leaf si{
type uint16; type uint16;
mandatory true; mandatory true;
description description
"The bit index of a BIER TE forwarding item."; "The set identifier of this forwarding item.";
} }
uses te-items; container te-bift-id {
description
container te-frr { "The bift-id which is used to locate the specific
if-feature bier-te-frr; forwarding item.";
leaf frr-index { leaf encap-type {
type leafref { type encapsulation-type;
path "../../../../../" +
"te-frr-items/btaft/frr-index";
}
description "The index of this frr path.";
}
container resetbitmask {
description description
"The deleting bitmask of the forwarding item."; "The encapsulation type for BIER-TE packet.";
uses bit-string; }
leaf value {
type rt-types:mpls-label;
mandatory true;
description
"The bift-id value of the forwarding item.
It can be a mpls label or an index for
ethernet or IPv6 encapsulation,
which is used to represent specific combination
of [SD, BSL, SI].
The ethernet or IPv6 index value is the same
range (20bits) as mpls label.";
} }
}
list fwd-items {
key "te-bp";
description description
"If this link is protected, frr items can be "The forwarding information of one BIER TE item.";
used to forward flows when this link is down."; leaf te-bp {
} // te-frr type uint16;
} // fwd-items mandatory true;
} // si description
} // bsl "The bit index of a BIER TE forwarding item.";
}
uses te-items;
container te-frr {
if-feature bier-te-frr;
leaf frr-index {
type leafref {
path "../../../../../" +
"te-frr-items/btaft/frr-index";
}
description "The index of this frr path.";
}
container resetbitmask {
description
"The deleting bitmask of the forwarding item.";
uses bit-string;
}
description
"If this link is protected, frr items can be
used to forward flows when this link is down.";
} // te-frr
} // fwd-items
} // si
} // bsl
container te-frr-items { container te-frr-items {
if-feature bier-te-frr; if-feature bier-te-frr;
description "The TE fast re-route information."; description "The TE fast re-route information.";
list btaft { list btaft {
key "frr-index"; key "frr-index";
description
"The index of the frr paths. This item can be used
for multiple links protection in different SI.";
leaf frr-index {
type uint16;
mandatory true;
description "The frr item index.";
}
leaf frr-si{
type uint16;
mandatory true;
description
"The set identifier of this forwarding item.";
}
leaf frr-bsl {
type uint16;
mandatory true;
description "The value of bitstringlength.";
}
container addbitmask {
description description
"The adding bitmask of the forwarding item. "The index of the frr paths. This item can be used
This item should be merged into the packet's for multiple links protection in different SI.";
bit-string."; leaf frr-index {
uses bit-string; type uint16;
} mandatory true;
} // btaft description "The frr item index.";
} // te-frr-items }
} // subdomain leaf frr-si{
} // te-fwd type uint16;
} // bier-te mandatory true;
} description
"The set identifier of this forwarding item.";
}
leaf frr-bsl {
type uint16;
mandatory true;
description "The value of bitstringlength.";
}
container addbitmask {
description
"The adding bitmask of the forwarding item.
This item should be merged into the packet's
bit-string.";
uses bit-string;
}
} // btaft
} // te-frr-items
} // subdomain
} // te-fwd
} // bier-te
}
/* /*
* Notifications * Notifications
*/ */
notification bier-te-notification { notification bier-te-notification {
description description
"The notification is sent when a condition changes."; "The notification is sent when a condition changes.";
list bp-is-zero { list bp-is-zero {
key "if-index"; key "if-index";
description "The adjacency id is zero. It is invalid."; description "The adjacency id is zero. It is invalid.";
leaf if-index { leaf if-index {
type if:interface-ref; type if:interface-ref;
description "The adjacency id is zero."; description "The adjacency id is zero.";
} }
uses adj-type; uses adj-type;
} }
}
} }
} <CODE ENDS>
<CODE ENDS>
7. IANA Considerations 8. IANA Considerations
The IANA is requested to assign two new URIs from the IETF XML The IANA is requested to assign two new URIs from the IETF XML
registry ([RFC3688]). Authors are suggesting the following URI: registry ([RFC3688]). Authors are suggesting the following URI:
URI: urn:ietf:params:xml:ns:yang:ietf-bier-te URI: urn:ietf:params:xml:ns:yang:ietf-bier-te
Registrant Contact: BIER WG Registrant Contact: BIER WG
XML: N/A, the requested URI is an XML namespace XML: N/A, the requested URI is an XML namespace
skipping to change at page 15, line 37 skipping to change at page 16, line 4
URI: urn:ietf:params:xml:ns:yang:ietf-bier-te URI: urn:ietf:params:xml:ns:yang:ietf-bier-te
Registrant Contact: BIER WG Registrant Contact: BIER WG
XML: N/A, the requested URI is an XML namespace XML: N/A, the requested URI is an XML namespace
This document also requests one new YANG module name in the YANG This document also requests one new YANG module name in the YANG
Module Names registry ([RFC6020]) with the following suggestion: Module Names registry ([RFC6020]) with the following suggestion:
name: ietf-bier-te name: ietf-bier-te
namespace: urn:ietf:params:xml:ns:yang:ietf-bier-te namespace: urn:ietf:params:xml:ns:yang:ietf-bier-te
prefix: bier-te prefix: bier-te
reference: RFC XXXX reference: RFC XXXX
8. Acknowledgement 9. Acknowledgement
The authors would like to thank Min Gu (gumin20181129@163.com) for The authors would like to thank Min Gu (gumin20181129@163.com) for
her testing, verification and valuable suggestion. And the authors her testing, verification and valuable suggestion. And the authors
would like to thank Benjamin R and Benchong Xu for their valuable would like to thank Benjamin R and Benchong Xu for their valuable
comments. comments.
9. Normative References 10. References
[I-D.eckert-bier-te-frr]
Eckert, T., Cauchie, G., Braun, W., and M. Menth,
"Protection Methods for BIER-TE", draft-eckert-bier-te-
frr-03 (work in progress), March 2018.
[I-D.ietf-bier-bier-yang] 10.1. Normative References
Chen, R., Hu, F., Zhang, Z., Dai, X., and M. Sivakumar,
"YANG Data Model for BIER Protocol", draft-ietf-bier-bier-
yang-07 (work in progress), September 2020.
[I-D.ietf-bier-te-arch] [I-D.ietf-bier-te-arch]
Eckert, T., Cauchie, G., and M. Menth, "Tree Engineering Eckert, T., Cauchie, G., and M. Menth, "Tree Engineering
for Bit Index Explicit Replication (BIER-TE)", draft-ietf- for Bit Index Explicit Replication (BIER-TE)", Work in
bier-te-arch-09 (work in progress), October 2020. Progress, Internet-Draft, draft-ietf-bier-te-arch-10, 9
July 2021, <https://www.ietf.org/archive/id/draft-ietf-
bier-te-arch-10.txt>.
[RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
DOI 10.17487/RFC3688, January 2004, Requirement Levels", BCP 14, RFC 2119,
<https://www.rfc-editor.org/info/rfc3688>. DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>.
[RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for
the Network Configuration Protocol (NETCONF)", RFC 6020, the Network Configuration Protocol (NETCONF)", RFC 6020,
DOI 10.17487/RFC6020, October 2010, DOI 10.17487/RFC6020, October 2010,
<https://www.rfc-editor.org/info/rfc6020>. <https://www.rfc-editor.org/info/rfc6020>.
[RFC6087] Bierman, A., "Guidelines for Authors and Reviewers of YANG [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
Data Model Documents", RFC 6087, DOI 10.17487/RFC6087, 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
January 2011, <https://www.rfc-editor.org/info/rfc6087>. May 2017, <https://www.rfc-editor.org/info/rfc8174>.
[RFC7223] Bjorklund, M., "A YANG Data Model for Interface
Management", RFC 7223, DOI 10.17487/RFC7223, May 2014,
<https://www.rfc-editor.org/info/rfc7223>.
[RFC8279] Wijnands, IJ., Ed., Rosen, E., Ed., Dolganow, A., [RFC8279] Wijnands, IJ., Ed., Rosen, E., Ed., Dolganow, A.,
Przygienda, T., and S. Aldrin, "Multicast Using Bit Index Przygienda, T., and S. Aldrin, "Multicast Using Bit Index
Explicit Replication (BIER)", RFC 8279, Explicit Replication (BIER)", RFC 8279,
DOI 10.17487/RFC8279, November 2017, DOI 10.17487/RFC8279, November 2017,
<https://www.rfc-editor.org/info/rfc8279>. <https://www.rfc-editor.org/info/rfc8279>.
[RFC8296] Wijnands, IJ., Ed., Rosen, E., Ed., Dolganow, A., [RFC8296] Wijnands, IJ., Ed., Rosen, E., Ed., Dolganow, A.,
Tantsura, J., Aldrin, S., and I. Meilik, "Encapsulation Tantsura, J., Aldrin, S., and I. Meilik, "Encapsulation
for Bit Index Explicit Replication (BIER) in MPLS and Non- for Bit Index Explicit Replication (BIER) in MPLS and Non-
MPLS Networks", RFC 8296, DOI 10.17487/RFC8296, January MPLS Networks", RFC 8296, DOI 10.17487/RFC8296, January
2018, <https://www.rfc-editor.org/info/rfc8296>. 2018, <https://www.rfc-editor.org/info/rfc8296>.
[RFC8343] Bjorklund, M., "A YANG Data Model for Interface
Management", RFC 8343, DOI 10.17487/RFC8343, March 2018,
<https://www.rfc-editor.org/info/rfc8343>.
[RFC8349] Lhotka, L., Lindem, A., and Y. Qu, "A YANG Data Model for [RFC8349] Lhotka, L., Lindem, A., and Y. Qu, "A YANG Data Model for
Routing Management (NMDA Version)", RFC 8349, Routing Management (NMDA Version)", RFC 8349,
DOI 10.17487/RFC8349, March 2018, DOI 10.17487/RFC8349, March 2018,
<https://www.rfc-editor.org/info/rfc8349>. <https://www.rfc-editor.org/info/rfc8349>.
[RFC8407] Bierman, A., "Guidelines for Authors and Reviewers of
Documents Containing YANG Data Models", BCP 216, RFC 8407,
DOI 10.17487/RFC8407, October 2018,
<https://www.rfc-editor.org/info/rfc8407>.
10.2. Informative References
[I-D.eckert-bier-te-frr]
Eckert, T., Cauchie, G., Braun, W., and M. Menth,
"Protection Methods for BIER-TE", Work in Progress,
Internet-Draft, draft-eckert-bier-te-frr-03, 5 March 2018,
<https://www.ietf.org/archive/id/draft-eckert-bier-te-frr-
03.txt>.
[I-D.ietf-bier-bier-yang]
Chen, R., Hu, F., Zhang, Z., Dai, X., and M. Sivakumar,
"YANG Data Model for BIER Protocol", Work in Progress,
Internet-Draft, draft-ietf-bier-bier-yang-07, 8 September
2020, <https://www.ietf.org/archive/id/draft-ietf-bier-
bier-yang-07.txt>.
[RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688,
DOI 10.17487/RFC3688, January 2004,
<https://www.rfc-editor.org/info/rfc3688>.
Authors' Addresses Authors' Addresses
Zheng(Sandy) Zhang Zheng(Sandy) Zhang
ZTE Corporation ZTE Corporation
Nanjing Nanjing
China China
Email: zhang.zheng@zte.com.cn Email: zhang.zheng@zte.com.cn
Cui(Linda) Wang Cui(Linda) Wang
Individual Individual
Email: lindawangjoy@gmail.com Email: lindawangjoy@gmail.com
Ran Chen Ran Chen
ZTE Corporation ZTE Corporation
Nanjing Nanjing
China China
skipping to change at page 17, line 41 skipping to change at page 18, line 26
Fangwei Hu Fangwei Hu
Individual Individual
Shanghai Shanghai
China China
Email: hufwei@gmail.com Email: hufwei@gmail.com
Mahesh Sivakumar Mahesh Sivakumar
Juniper networks Juniper networks
1133 Innovation Way 1133 Innovation Way
Sunnyvale, CALIFORNIA 94089 Sunnyvale, CALIFORNIA 94089 ,
United States United States
Email: sivakumar.mahesh@gmail.com Email: sivakumar.mahesh@gmail.com
Huanan Chen Huanan Chen
Individual Individual
China China
Email: chenhuanan@189.cn Email: chenhuanan@189.cn
 End of changes. 105 change blocks. 
493 lines changed or deleted 520 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/