// vi: set smarttab et sw=4 tabstop=4: module pmsi-tunnel { yang-version 1; namespace "urn:opendaylight:params:xml:ns:yang:pmsi-tunnel"; prefix "pmsi-tunnel"; import bgp-types { prefix bgp-t; revision-date 2013-09-19; } import ietf-inet-types { prefix inet; revision-date 2013-07-15; } import network-concepts { prefix netc; revision-date 2013-11-25; } import ietf-yang-types { prefix yang; } organization "AT&T Services, Inc."; contact "Bruce Brandon "; description "This module contains the data model of a BGP attribute called the P-Multicast Service Interface Tunnel (PMSI Tunnel), defined in RFC6514, Section 5. Copyright (c)2016 AT&T Services, Inc. All rights reserved.; This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html"; revision "2016-08-12" { description "Initial revision"; reference "https://tools.ietf.org/html/rfc6514#section-5"; } grouping opaque { leaf opaque-type { mandatory true; type uint8; } leaf opaque-extended-type { type uint16; } leaf opaque { mandatory true; type yang:hex-string; } } grouping p-address-p-multicast-group { leaf p-address { mandatory true; type inet:ip-address; } leaf p-multicast-group { mandatory true; type inet:ip-address; } } grouping pmsi-tunnel { container pmsi-tunnel { presence "PMSI Attribute"; description "P-Multicast Service Interface Tunnel (PMSI Tunnel) attribute"; reference "https://tools.ietf.org/html/rfc6514#section-5"; leaf leaf-information-required { type boolean; mandatory true; } leaf mpls-label { type netc:mpls-label; } choice tunnel-identifier { case rsvp-te-p2mp-lsp { container rsvp-te-p2mp-lps { reference "https://tools.ietf.org/html/rfc4875#section-19.1.1"; leaf p2mp-id { mandatory true; type uint32; } leaf tunnel-id { mandatory true; type uint16; } leaf extended-tunnel-id { mandatory true; type inet:ip-address; } } } case mldp-p2mp-lsp { container mldp-p2mp-lsp { reference "https://tools.ietf.org/html/rfc6388#section-2.2"; leaf address-family { mandatory true; type identityref { base bgp-t:address-family; } } leaf root-node-address { mandatory true; type inet:ip-address; } list opaque-value { uses opaque; } } } case pim-ssm-tree { container pim-ssm-tree { reference "https://tools.ietf.org/html/rfc6514#section-5"; uses p-address-p-multicast-group; } } case pim-sm-tree { container pim-sm-tree { reference "https://tools.ietf.org/html/rfc6514#section-5"; uses p-address-p-multicast-group; } } case bidir-pim-tree { container bidir-pim-tree { reference "https://tools.ietf.org/html/rfc6514#section-5"; uses p-address-p-multicast-group; } } case ingress-replication { container ingress-replication { leaf receiving-endpoint-address { type inet:ip-address; } } } case mldp-mp2mp-lsp { container mldp-mp2mp-lsp { uses opaque; } } } } } }