Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
207 changes: 207 additions & 0 deletions ietf-mpls-te-types.yang
Original file line number Diff line number Diff line change
@@ -0,0 +1,207 @@
module ietf-mpls-te-types {
yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-mpls-te-types";

prefix "mte-types";

import ietf-routing-types {
prefix "rt-types";

}

import ietf-te-packet-types {
prefix "te-packet-types";
reference
"RFC 8776: Common YANG Data Types for Traffic Engineering";
}

organization
"Internet Engineering Task Force (IETF) TEAS WG";
contact
"WG Web: <https://datatracker.ietf.org/wg/teas/>
WG List: <mailto:teas@ietf.org>

Editor: Italo Busi
<mailto:italo.busi@huawei.com>

Editor: Haomian Zheng
<mailto:zhenghaomian@huawei.com>

Editor: Aihua Guo
<mailto:aihuaguo.ietf@gmail.com>

Editor: Xufeng Liu
<mailto:xufeng.liu.ietf@gmail.com>";

description
"This module defines technology-specific MPLS-TE types
data model.

Copyright (c) 2020 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
(http://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 2020-07-13 {
description
"Initial Version";
reference
"draft-busizheng-teas-yang-te-mpls-topology";
}

/*
* Identities (to be moved to te-packet-types?)
*/

identity bandwidth-profile-type {
description
"Bandwidth Profile Types";
}

identity mef-10-bwp {
base bandwidth-profile-type;
description
"MEF 10 Bandwidth Profile";
}

identity rfc-2697-bwp {
base bandwidth-profile-type;
description
"RFC 2697 Bandwidth Profile";
}

identity rfc-2698-bwp {
base bandwidth-profile-type;
description
"RFC 2698 Bandwidth Profile";
}

identity rfc-4115-bwp {
base bandwidth-profile-type;
description
"RFC 4115 Bandwidth Profile";
}

/*
* Type Definitions (MPLS-TE)
*/

typedef load-balancing-type {
type enumeration {
enum per-flow {
description
"The load-balancing algorithm ensures that packets
characterized as the same flow (e.g. based on IP 5-tuple)
that egress on a LAG or a bundled TE link are forwarded
on the same component link.

Packets for different flows within the same LSP can be
forwarded on different component links.";
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How about:
The load-balancing algorithm ensures that packets characterized as the same flow (e.g. based on IP 5-tuple) that egress on a LAG or a bundled TE link are forwarded on the same component link.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See 6565ce7

}
enum per-top-label {
description
"The load-balancing algorithm ensures incoming MPLS
packets with the same top MPLS label and that egress on
a on a LAG or bundled TE link are forwarded on the same
component link.



Packets for different flows within the same LSP are
forwarded on the same component link.";
}
}
description
"The type of load balancing used on bundled links.";
} // typedef load-balancing-type

/*
* Groupings (to be moved to te-packet-types?)
*/

grouping te-packet-path-bandwidth {
description
"Path bandwidth for Packet. ";
leaf bandwidth-profile-name{
type string;
description "Name of Bandwidth Profile.";
}
leaf bandwidth-profile-type {
type identityref {
base bandwidth-profile-type;
}
description "Type of Bandwidth Profile.";
}

leaf CIR {
type uint64;
description
"Committed Information Rate in Kbps";
}

leaf EIR {
type uint64;
/*
Need to indicate that EIR is not supported by RFC 2697

must
'../bw-profile-type = "etht-types:mef-10-bwp" or ' +
'../bw-profile-type = "etht-types:rfc-2698-bwp" or ' +
'../bw-profile-type = "etht-types:rfc-4115-bwp"'

must
'../bw-profile-type != "etht-types:rfc-2697-bwp"'
*/
description
"Excess Information Rate in Kbps
In case of RFC 2698, PIR = CIR + EIR";
}

leaf CBS {
type uint64;
description
"Committed Burst Size in in KBytes";
}

leaf EBS {
type uint64;
description
"Excess Burst Size in KBytes.
In case of RFC 2698, PBS = CBS + EBS";
}
}

grouping te-packet-link-bandwidth {
description
"Link Bandwidth for Packet. ";
leaf packet-bandwidth {
type te-packet-types:bandwidth-kbps;
description
"Available bandwith value expressed in kilobits per
second";
}
}

/*
* Groupings (MPLS-TE)
*/

grouping te-mpls-label-hop {
description
"MPLS-TE Label Hop.";

leaf mpls-label {
type rt-types:mpls-label;
description
"MPLS Label.";
}
} // grouping te-mpls-label-hop
}
75 changes: 52 additions & 23 deletions ietf-mpls-te.tree
Original file line number Diff line number Diff line change
Expand Up @@ -68,27 +68,30 @@ module: ietf-te-mpls
| +--rw load-share? uint32
| +--rw policy-class? uint8
+--rw bandwidth-mpls
+--rw specification-type?
| te-packet-types:te-bandwidth-requested-type
+--rw set-bandwidth? te-packet-types:bandwidth-kbps
+--rw class-type? te-types:te-ds-class
+--ro state
| +--ro signaled-bandwidth? te-packet-types:bandwidth-kbps
+--rw auto-bandwidth
+--rw enabled? boolean
+--rw min-bw? te-packet-types:bandwidth-kbps
+--rw max-bw? te-packet-types:bandwidth-kbps
+--rw adjust-interval? uint32
+--rw adjust-threshold? rt-types:percentage
+--rw overflow
| +--rw enabled? boolean
| +--rw overflow-threshold? rt-types:percentage
| +--rw trigger-event-count? uint16
+--rw underflow
+--rw enabled? boolean
+--rw underflow-threshold? rt-types:percentage
+--rw trigger-event-count? uint16
augment /te:te/te:tunnels/te:tunnel/te:primary-paths/te:primary-path:
| +--rw specification-type?
| | te-packet-types:te-bandwidth-requested-type
| +--rw set-bandwidth? te-packet-types:bandwidth-kbps
| +--rw class-type? te-types:te-ds-class
| +--ro state
| | +--ro signaled-bandwidth? te-packet-types:bandwidth-kbps
| +--rw auto-bandwidth
| +--rw enabled? boolean
| +--rw min-bw? te-packet-types:bandwidth-kbps
| +--rw max-bw? te-packet-types:bandwidth-kbps
| +--rw adjust-interval? uint32
| +--rw adjust-threshold? rt-types:percentage
| +--rw overflow
| | +--rw enabled? boolean
| | +--rw overflow-threshold? rt-types:percentage
| | +--rw trigger-event-count? uint16
| +--rw underflow
| +--rw enabled? boolean
| +--rw underflow-threshold? rt-types:percentage
| +--rw trigger-event-count? uint16
+--rw load-balancing-type? mte-types:load-balancing-type
+--rw uhp-required? empty
augment /te:te/te:tunnels/te:tunnel/te:primary-paths
/te:primary-path:
+--rw static-lsp-name? mpls-static:static-lsp-ref
augment /te:te/te:tunnels/te:tunnel/te:secondary-paths
/te:secondary-path:
Expand All @@ -102,8 +105,8 @@ module: ietf-te-mpls
+--rw class-type? te-types:te-ds-class
+--ro state
+--ro signaled-bandwidth? te-packet-types:bandwidth-kbps
augment /te:te/te:tunnels/te:tunnel/te:primary-paths/te:primary-path
/te:lsps/te:lsp:
augment /te:te/te:tunnels/te:tunnel/te:primary-paths
/te:primary-path/te:lsps/te:lsp:
+--ro performance-metrics-one-way
| +--ro one-way-delay? uint32
| +--ro one-way-delay-normality?
Expand Down Expand Up @@ -148,3 +151,29 @@ module: ietf-te-mpls
+--ro two-way-packet-loss? decimal64
+--ro two-way-packet-loss-normality?
te-types:performance-metrics-normality
augment /te:te/te:tunnels/te:tunnel/te:primary-paths
/te:primary-path/te:computed-paths-properties
/te:computed-path-properties/te:path-properties
/te:path-route-objects/te:path-route-object/te:type
/te:label/te:label-hop/te:te-label/te:technology:
+--:(mpls)
+--ro mpls-label? rt-types:mpls-label
augment /te:te/te:tunnels/te:tunnel/te:primary-paths
/te:primary-path/te:lsps/te:lsp/te:path-properties
/te:path-route-objects/te:path-route-object/te:type
/te:label/te:label-hop/te:te-label/te:technology:
+--:(mpls)
+--ro mpls-label? rt-types:mpls-label
augment /te:te/te:tunnels/te:tunnel/te:secondary-paths
/te:secondary-path/te:computed-paths-properties
/te:computed-path-properties/te:path-properties
/te:path-route-objects/te:path-route-object/te:type
/te:label/te:label-hop/te:te-label/te:technology:
+--:(mpls)
+--ro mpls-label? rt-types:mpls-label
augment /te:te/te:tunnels/te:tunnel/te:secondary-paths
/te:secondary-path/te:lsps/te:lsp/te:path-properties
/te:path-route-objects/te:path-route-object/te:type
/te:label/te:label-hop/te:te-label/te:technology:
+--:(mpls)
+--ro mpls-label? rt-types:mpls-label
Loading