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
24 changes: 24 additions & 0 deletions ietf-te-p2mp.tree
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
module: ietf-te-p2mp
+--rw te!
Copy link
Owner

Choose a reason for hiding this comment

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

please augment existing 'te' container

+--rw tunnels
Copy link
Owner

Choose a reason for hiding this comment

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

let's add container tunnels-p2mp

+--rw tunnel-p2mp* [name]
+--ro operational-state? identityref
Copy link
Owner

@tsaad-dev tsaad-dev Sep 4, 2020

Choose a reason for hiding this comment

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

BUM (e1, e2, e3)
OPTION#1 (p2mp)
-> p2mp-tunnel=foo (p2mp)

OPTION#2 (IR)
-> p2p-tunnel-foo1 (IR)
-> p2p-tunnel-foo2 (IR)
-> p2p-tunnel-foo3 (IR)

name
p2mp-id
XXX: review if others apply
switch mode:
case subLSP-list:
XX
case subLSP-list-refs:
list SourceToLeafs or SubLSPs
leafref to p2p tunnel

+--rw name string
+--rw p2mp-id? uint32
+--rw identifier? uint16
+--rw description? string
+--rw encoding? identityref
+--rw switching-type? identityref
+--rw provisioning-state? identityref
Copy link
Owner

Choose a reason for hiding this comment

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

check if this is operational-state?

Copy link
Owner

Choose a reason for hiding this comment

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

 |     +--ro operational-state?                  identityref
 |     +--rw name                                string
 |     +--rw identifier?                         uint32
 |     +--rw description?                        string
 |     +--rw encoding?                           identityref
 |     +--rw switching-type?                     identityref
 |     +--rw admin-state?                        identityref
 |     +--rw reoptimize-timer?                   uint16

+--rw preference? uint8
+--rw reoptimize-timer? uint16
+--rw source? te-types:te-node-id
+--rw src-tp-id? yang:hex-string
+--rw destinations* [destination dst-tp-id]
| +--rw destination te-types:te-node-id
Copy link
Owner

Choose a reason for hiding this comment

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

add per destination leafs:

  • admin-state
  • oper-state
  • name and description

| +--rw dst-tp-id yang:hex-string
Copy link
Owner

Choose a reason for hiding this comment

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

add a leafref to a p2p tunnel

Copy link
Owner

Choose a reason for hiding this comment

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

Tree1 = D1-Path1, D2-Path1, D3-Path1
Tree2 = D1-Path2, D2-Path2, D3-Path2
Tree1 protected by Tree2

OPTION#1:
synchronize-path-preference
destinations
D1
Path1 preference 1 protected by Path2
Path2 preference 2
D2
Path1 preference 1 protected by Path2
Path2 preference 2
D3
Path1 preference 1 protected by Path2
Path2 preference 2

OPTION#2:
destinations
Tree1 is protected by Tree2
Path1-D1, Path1-D2, Path1-D3
Tree2
Path2-D1, Path2-D2, Path3-D3
...

+--rw p2mp-primary-paths
+--rw p2mp-primary-path* [name]
+--rw s2l-paths* [name]
| +--rw name string
+--rw name string
268 changes: 268 additions & 0 deletions ietf-te-p2mp.yang
Original file line number Diff line number Diff line change
@@ -0,0 +1,268 @@
module ietf-te-p2mp {
yang-version 1.1;
/* Replace prefix with IANA when assigned */
prefix "te-p2mp";
/* Replace namespace with IANA when assigned */
namespace "urn:ietf:params:xml:ns:yang:ietf-te-p2mp";

/* Import TE types module */
import ietf-te-types {
prefix te-types;
reference
"RFC 8776: Common YANG Data Types for Traffic Engineering";
}

/* Import TE module */
import ietf-te {
prefix te;
reference
"draft-ietf-teas-yang-te: A YANG Data Model for Traffic
Engineering Tunnels and Interfaces";
}

import ietf-inet-types {
prefix inet;
reference "RFC6991: Common YANG Data Types";
}

import ietf-yang-types {
prefix "yang";
reference "RFC6991: Common YANG Data Types";
}

organization
"IETF Traffic Engineering Architecture and Signaling (TEAS)
Working Group";

contact
"WG Web: <http://tools.ietf.org/wg/teas/>
WG List: <mailto:teas@ietf.org>

Editor: Oscar Gonzalez de Dios
<mailto:oscar.gonzalezdedios@telefonica.com>";


description
"YANG data module for point-to-multi-point TE configuration,
state, and RPCs.
The model fully conforms to the Network Management
Datastore Architecture (NMDA).

Copyright (c) 2019 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.";

// RFC Ed.: replace XXXX with actual RFC number and remove this
// note.

// RFC Ed.: update the date below with the date of RFC publication
// and remove this note.


revision "2020-09-18" {
description "First draft.";
reference
"draft: A YANG Data Model for taffic Engineering point-to-multipoint Tunnels";
}

/* groupings */

/* TE tunnels container data */
grouping p2mp-tunnels-grouping {
description
"Tunnels TE configuration data grouping";
container p2mp-tunnels {
description
"Tunnels TE configuration data container";

list tunnel-p2mp {
key "name";
description "P2MP TE tunnels list.";
uses tunnel-p2mp-properties;
//uses tunnel-actions;
//uses tunnel-protection-actions;
}
}
}


/**
* TE tunnel generic groupings
*/
grouping p2mp-primary-path-properties {
description
"TE p2mp tunnel primary path properties grouping";
uses p2mp-path-properties;
leaf name {
type string;
description "TE path name";
}
//uses path-constraints-common;
//uses p2p-path-properties-state;
}

grouping p2mp-path-properties {
description
"TE tunnel path properties configuration grouping";
list s2l-paths {
key "name";
description "Source to Leaf paths list.";
uses s2l-path-properties;
//uses tunnel-actions;
//uses tunnel-protection-actions;
}
}

grouping s2l-path-properties {
description
"source-to-leaf (S2L) sub-LSP path properties configuration grouping";
leaf name {
type string;
description "Source to leaf sub-lsp path name";
}
}



/* P2MP Tunnels properties */
grouping tunnel-p2mp-properties {
description
"Top level grouping for p2mp tunnel properties.";
leaf operational-state {
type identityref {
base te-types:tunnel-state-type;
}
default te-types:tunnel-state-up;
config 'false';
description "TE tunnel administrative state.";
}
uses tunnel-p2mp-config;

container p2mp-primary-paths {
description "Set of P2MP primary paths container";
list p2mp-primary-path {
key "name";
description
"List of primary paths for this P2MP tunnel.";
uses p2mp-primary-path-properties;
}
}
}


grouping tunnel-p2mp-config {
description
"Configuration parameters relating to TE tunnel";
leaf name {
type string;
description "P2MP TE tunnel name.";
}
leaf p2mp-id {
type uint32;
description
"P2MP Identifier.";
reference "RFC4875 section 19.1.1.";
}
leaf identifier {
type uint16;
description
"TE tunnel Identifier.";
reference "RFC4875";
}
leaf description {
type string;
default 'None';
description
"Textual description for this TE P2MP tunnel";
}
leaf encoding {
type identityref {
base te-types:lsp-encoding-types;
}
default te-types:lsp-encoding-packet;
description "LSP encoding type";
reference "RFC3945";
}
leaf switching-type {
type identityref {
base te-types:switching-capabilities;
}
default te-types:switching-psc1;
description "LSP switching type";
reference "RFC3945";
}
leaf provisioning-state {
type identityref {
base te-types:tunnel-state-type;
}
default te-types:tunnel-state-up;
description "TE tunnel administrative state.";
}
leaf preference {
type uint8 {
range "1..255";
}
default 100;
description
"Specifies a preference for this tunnel.
A lower number signifies a better preference";
}
leaf reoptimize-timer {
type uint16;
units seconds;
description
"frequency of reoptimization of a traffic engineered LSP";
}
leaf source {
type te-types:te-node-id;
description "TE tunnel source node ID.";
}
leaf src-tp-id {
type yang:hex-string;
default '00:00:00:00';
description
"TE tunnel source termination point identifier.";
}
list destinations {
key "destination dst-tp-id";
description "destinations list.";
leaf destination {
type te-types:te-node-id;
description "TE tunnel destination node ID";
}
leaf dst-tp-id {
type yang:hex-string;
description
"TE tunnel destination termination point identifier.";
}
}



//uses tunnel-p2p-associations-properties;
//uses protection-restoration-properties;
//uses te-types:tunnel-constraints;
//uses p2p-dependency-tunnels-properties;
//uses hierarchical-link-properties;
}


/*** End of P2MP TE global groupings ***/


augment "/te:te" {
description
"TE global container.";
/* P2MP Configuration Data */
uses p2mp-tunnels-grouping;
}

}