Internet-Draft | Traffic-TE-YANG | October 2021 |
Dhody | Expires 27 April 2022 | [Page] |
This document provides a YANG data model to map traffic to Traffic Engineering (TE) paths. This model providers operator a seamless control and management of which traffic to send on the underlying TE resources.¶
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 27 April 2022.¶
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.¶
Data models are a representation of objects that can be configured or monitored within a system. Within the IETF, YANG [RFC7950] is the language of choice for documenting data models, and YANG models have been produced to allow configuration or modeling of a variety of network devices, protocol instances, and network services.¶
There are various YANG models to establish paths in the network, such as:¶
These models do not include an exact mechanism to describe the traffic that needs to be mapped to the paths. Thus an operator lacks a way to simply use the YANG model to tell requirements such as the traffic from source X on port Y should go on a TE path with delay less than Z. The YANG model defined in this document fills this gap.¶
To achieve this goal, the YANG model defined in this document utilizes the concept borrowed from:¶
The YANG model includes two key concepts:¶
Note: The RFC Editor will replace XXXX with the number assigned to the RFC once this draft becomes an RFC.¶
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.¶
A simplified graphical representation of the data model is used in this document. The meaning of the symbols in these diagrams is defined in [RFC8340].¶
In this document, names of data nodes and other data model objects are often used without a prefix, as long as it is clear from the context in which YANG module each name is defined. Otherwise, names are prefixed using the standard prefix associated with the corresponding YANG module, as shown in Table 1.¶
Prefix | YANG module | Reference |
---|---|---|
yang | ietf-yang-types | [RFC6991] |
te | ietf-te | [I-D.ietf-teas-yang-te] |
rt | ietf-routing | [RFC8349] |
sr-policy | ietf-sr-policy | [I-D.ietf-spring-sr-policy-yang] |
ietf-ns | ietf-network-slice | [I-D.ietf-teas-ietf-network-slice-nbi-yang] |
acl | ietf-access-control-list | [RFC8519] |
Following documents are referenced in the model defined in this document -¶
Document | Reference |
---|---|
YANG Data Model for Network Access Control Lists (ACLs) | [RFC8519] |
A YANG Data Model for Traffic Engineering Tunnels and Interfaces | [I-D.ietf-teas-yang-te] |
YANG Data Model for Segment Routing Policy | [I-D.ietf-spring-sr-policy-yang] |
For describing the traffic, currently the YANG models uses:¶
module: ietf-traffic-map +--rw traffic-map +--rw maps* [id] +--rw id string +--rw traffic | +--rw id? string | +--rw (type)? | +--:(match-criteria) | | +--rw ns-match-criteria | | +--rw ns-match-criterion* [match-type] | | +--rw match-type identityref | | +--rw values* [index] | | +--rw index uint8 | | +--rw value? string | +--:(acl) | | +--rw acl? -> /acl:acls/acl/name | +--:(flowspec) | +--:(other) +--rw action | +--rw te-tunnel* te:tunnel-ref | +--rw sr-policy* [policy-color-ref policy-endpoint-ref] | | +--rw policy-color-ref leafref | | +--rw policy-endpoint-ref leafref | +--rw other +--ro stats +--ro matched-packets? yang:counter64 +--ro matched-octets? yang:counter64¶
<CODE BEGINS> file "ietf-traffic-map@2021-10-24.yang" module ietf-traffic-map { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-traffic-map"; prefix tm; import ietf-yang-types { prefix yang; reference "RFC 6991: Common YANG Data Types"; } import ietf-te { prefix te; reference "I-D.ietf-teas-yang-te: A YANG Data Model for Traffic Engineering Tunnels and Interfaces"; } import ietf-routing { prefix rt; reference "RFC8349: A YANG Data Model for Routing Management"; } import ietf-sr-policy { prefix sr-policy; reference "I-D.ietf-spring-sr-policy-yang: YANG Data Model for Segment Routing Policy"; } import ietf-network-slice { prefix ietf-ns; reference "I-D.ietf-teas-ietf-network-slice-nbi-yang: IETF Network Slice Service YANG Model"; } import ietf-access-control-list { prefix acl; reference "RFC8519: YANG Data Model for Network Access Control Lists (ACLs)"; } organization "IETF Traffic Engineering Architecture and Signaling (TEAS) Working Group"; contact "WG Web: <https://tools.ietf.org/wg/teas/> WG List: <mailto:teas@ietf.org> Editor: Dhruv Dhody <dhruv.ietf@gmail.com>"; description "This module contains a YANG module to map traffic to Traffic Engineering (TE) paths. Copyright (c) 2021 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC XXXX; see the RFC itself for full legal notices."; revision 2021-10-24 { description "initial version."; reference "RFC XXXX: Traffic Mapping YANG model for Traffic Engineering (TE)"; } grouping traffic-description { description "The traffic description"; leaf id { type string; description "The identifier for Traffic Description"; } choice type { description "The various ways the traffic can be described"; case match-criteria { description "Use the match criteria"; uses ietf-ns:ns-match-criteria; } case acl { description "Reference to ACL"; leaf acl { type leafref { path "/acl:acls/acl:acl/acl:name"; } description "The ACL Name. The action part of the ACL is not used."; reference "RFC8519: YANG Data Model for Network Access Control Lists (ACLs)"; } } case flowspec { description "Based on FlowSpec component type - TODO"; } case other { description "TODO"; } } } grouping te-ref { description "Reference to TE paths"; leaf-list te-tunnel { type te:tunnel-ref; description "Reference to TE Tunnels"; reference "I-D.ietf-teas-yang-te: A YANG Data Model for Traffic Engineering Tunnels and Interfaces"; } list sr-policy { key "policy-color-ref policy-endpoint-ref"; description "SR Policy"; reference "I-D.ietf-spring-sr-policy-yang: YANG Data Model for Segment Routing Policy"; leaf policy-color-ref { type leafref { path "/rt:routing/sr-policy:segment-routing" + "/sr-policy:traffic-engineering/sr-policy:policies" + "/sr-policy:policy/sr-policy:color"; } description "Reference to sr-policy color"; } leaf policy-endpoint-ref { type leafref { path "/rt:routing/sr-policy:segment-routing" + "/sr-policy:traffic-engineering/sr-policy:policies" + "/sr-policy:policy/sr-policy:endpoint"; } description "Reference to sr-policy endpoint"; } } container other { description "To dp - VN, IETF Network Slice, SFC etc"; } } /* Configuration data nodes */ container traffic-map { description "AP configurations"; list maps { key "id"; description "traffic map identifier"; leaf id { type string; description "The identifier for Traffic Maps"; } container traffic { description "The traffic description"; uses traffic-description; } container action { description "The action is limited to identifying the TE resource"; uses te-ref; } container stats { config false; description "Statistics"; leaf matched-packets { type yang:counter64; description "The number of packets that matched the traffic description"; } leaf matched-octets { type yang:counter64; description "The number of octets (byte) that matched the traffic description"; } } } } } <CODE ENDS>¶
IANA is requested to make the following allocation for the URIs in the "ns" subregistry within the "IETF XML Registry" [RFC3688]:¶
-------------------------------------------------------------------- URI: urn:ietf:params:xml:ns:yang:ietf-traffic-map Registrant Contact: The IESG. XML: N/A, the requested URI is an XML namespace. --------------------------------------------------------------------¶
IANA is requested to make the following allocation for the YANG module in the "YANG Module Names" registry [RFC6020]:¶
-------------------------------------------------------------------- name: ietf-traffic-map namespace: urn:ietf:params:xml:ns:yang:ietf-traffic-map prefix: tm reference: RFC XXXX --------------------------------------------------------------------¶
Thanks to Adrian Farrel for the motivation behind this document.¶
TO be added in future revisions.¶