blob: 7fd770000ce7cf06271d2b61ec4b10349ced5216 [file] [log] [blame]
module ietf-sd-onos-service-types {
namespace "urn:ietf:params:xml:ns:yang:ietf-sd-onos-service-types";
prefix service-types ;
import ietf-inet-types {prefix inet; }
import ietf-sd-onos-common-types {prefix types;}
organization "";
contact "";
description
"Defines basic service types for L3VPN service.";
revision "2015-12-16" {
reference "";
}
typedef exp {
type enumeration {
enum BE {
value 0 ;
description "BE." ;
}
enum AF1 {
value 1 ;
description "AF1." ;
}
enum AF2 {
value 2 ;
description "AF2." ;
}
enum AF3 {
value 3 ;
description "AF3." ;
}
enum AF4 {
value 4 ;
description "AF4." ;
}
enum EF {
value 5 ;
description "EF." ;
}
enum CS6 {
value 6 ;
description "CS6." ;
}
enum CS7 {
value 7 ;
description "CS7." ;
}
}
default CS7;
description
"exp parameter.";
}
typedef pw-role{
type enumeration {
enum normal{
value 0 ;
description "normal." ;
}
enum master {
value 1 ;
description "master." ;
}
enum slave {
value 2 ;
description "slave." ;
}
enum DNI-PW {
value 3 ;
description "DNI PW." ;
}
}
default normal;
description
"The role of the PW.";
}
grouping qos-if-car {
description "qos parameter." ;
list qos-if-car {
key "direction";
description "cars qos policy." ;
leaf direction {
type enumeration {
enum inbound{
value 0 ;
description "inbound." ;
}
enum outbound {
value 1 ;
description "outbound." ;
}
}
description "qos for interface car" ;
}
leaf cir {
type int32;
description "forward CIR. unit:Kbps" ;
}
leaf pir {
type int32;
description "forward PIR. unit:Kbps" ;
}
leaf cbs {
type int32;
description "forward CBS. unit:Kbps" ;
}
leaf pbs {
type int32;
description "forward PBS. unit:Kbps" ;
}
}
}
grouping protect-policy {
description "The protect policy of the VPN" ;
leaf protect-type {
type enumeration {
enum unprotected {
value 0 ;
description "unprotected." ;
}
enum protected {
value 1 ;
description "protection." ;
}
}
default unprotected ;
description "protection type" ;
}
leaf revertive-type {
type enumeration {
enum no-revertive {
value 0 ;
description "unprotected." ;
}
enum revertive {
value 1 ;
description "protection." ;
}
}
description "revertive mode" ;
}
leaf wtr {
type uint32;
default 300;
description "WTR.unit:s" ;
}
}
grouping oam-policy {
description "The oam policy of the vpn service." ;
leaf detect-type {
type enumeration {
enum undetect {
value 0 ;
description "unprotected." ;
}
enum APS {
value 1 ;
description "protection." ;
}
enum BFD {
value 2 ;
description "unprotected." ;
}
}
description "detect type" ;
}
container bfd-detect-para {
description "bfd detect parameters." ;
leaf ingress-discriminator {
type int32;
description "ingress-discriminator" ;
}
leaf egress-discriminator {
type int32;
description "egress-discriminator" ;
}
leaf tx-interval {
type int32;
description "tx-interval" ;
}
leaf rx-interval {
type int32;
description "rx-interval" ;
}
leaf detect-interval {
type int32;
description "detect-interval" ;
}
}
}
grouping ac {
description "Access information." ;
leaf id{
type string;
mandatory true;
description "ac id." ;
}
leaf name{
type string;
config false;
description "ac name." ;
}
leaf ne-id {
type string ;
mandatory true;
description "ne id." ;
}
leaf ltp-id {
type string ;
mandatory true;
description "ltp id." ;
}
leaf admin-status {
type types:admin-status;
description "Administration status." ;
}
leaf operate-status {
type types:operate-status;
description "Operation status." ;
}
container l2-access {
description "link layer access information of ac." ;
uses l2-access;
}
leaf role {
type enumeration {
enum master {
value 0 ;
description "master." ;
}
enum slave {
value 1 ;
description "slave." ;
}
enum hub {
value 2 ;
description "slave." ;
}
enum spoke {
value 3 ;
description "slave." ;
}
}
default master;
description "role of snc lsp." ;
}
container qos-policy {
description "The qos policy of the vpn service." ;
container qos-if-cars {
description "qos policy if car." ;
list qos-if-car {
//key "direction";
uses qos-if-car;
description "List of qos parameters." ;
}
}
}
}
grouping l3-ac {
description "Access information of l3vpn." ;
list access-circuit {
key "id";
description "list of access circuit." ;
uses ac;
container connection {
description "connection information of ac." ;
uses connection;
}
}
}
grouping l2-access {
description "Access information of l2vpn." ;
leaf access-type{
type enumeration {
enum Port {
value 0 ;
description "master." ;
}
enum Dot1Q {
value 1 ;
description "slave." ;
}
enum QinQ {
value 2 ;
description "master." ;
}
}
mandatory true;
description "The access type of the vpn service." ;
}
leaf dot1q-vlan-bitmap {
type string;
mandatory true;
description "Dot1Q Vlan Bitmap." ;
}
leaf qinq-svlan-bitmap {
type string;
mandatory true;
description "QinQ svlan Bitmap." ;
}
leaf qinq-cvlan-bitmap {
type string;
mandatory true;
description "QinQ cvlan Bitmap." ;
}
leaf access-action {
type enumeration {
enum Keep {
value 0 ;
description "keep." ;
}
enum Push {
value 1 ;
description "push." ;
}
enum Pop {
value 2 ;
description "pop." ;
}
enum Swap {
value 3 ;
description "swap." ;
}
}
mandatory true;
description "access type." ;
}
leaf action-vlan-id {
type int32 {
range "1..4094";
}
description "action vlan id." ;
}
}
grouping connection {
description "Describe the connection of the vpn service." ;
leaf ip-address {
type inet:ip-address ;
description "ip address of access circuit's connection." ;
}
leaf mask-length {
type int32 {
range "1..32";
}
description "mask length of ip address." ;
}
leaf protocols {
type enumeration {
enum static {
value 0 ;
description "static." ;
}
enum ospf {
value 1 ;
description "ospf." ;
}
enum isis {
value 2 ;
description "bgp" ;
}
enum bgp {
value 3 ;
description "bgp" ;
}
}
description "protocols between PE and CE." ;
}
container static-routes {
description "Defines the static routes." ;
list static-route {
key "ip-prefix mask-length";
description "List of static route." ;
leaf ip-prefix {
type inet:ipv4-address;
description "ip prefix" ;
}
leaf mask-length {
type uint32 {
range "1..32";
}
description "mast length" ;
}
leaf next-hop {
type inet:ipv4-address ;
description "next hop" ;
}
leaf preference {
type uint32 {
range "1..65535";
}
description "preference of the route." ;
}
}
}
}
grouping pw{
description "PW definition ";
leaf id {
type string ;
description "ID of pw." ;
}
uses encaplate-type-grouping;
leaf ingress-ne-id {
type string ;
description "ingress ne id." ;
}
leaf egress-ne-id {
type string ;
description "egress ne id." ;
}
leaf ctrl-word-support {
type enumeration {
enum not-support {
value 0 ;
description "pw doesn't support control word" ;
}
enum support {
value 1 ;
description "pw supports control word" ;
}
}
default support;
description "ctrl word support. 0 : not support, 1 : support" ;
}
leaf sn-support {
type enumeration {
enum not-support {
value 0 ;
description "pw doesn't support control word" ;
}
enum support {
value 1 ;
description "pw supports control word" ;
}
}
default not-support;
description "serial number support. 0 : not support, 1 : support" ;
}
leaf vccv-type {
type enumeration {
enum not-support {
value 0 ;
description "pw doesn't support vccv" ;
}
enum CWD {
value 1 ;
description "pw supports vccv" ;
}
enum Label-alert {
value 2 ;
description "pw supports vccv" ;
}
enum TTL {
value 3 ;
description "pw supports vccv" ;
}
enum CWD&Label-alert {
value 4 ;
description "pw supports vccv" ;
}
enum CWD&TTL {
value 5 ;
description "pw supports vccv" ;
}
enum Label-alert&TTL {
value 6 ;
description "pw supports vccv" ;
}
enum CWD&Label-alert&TTL {
value 7 ;
description "pw supports vccv" ;
}
}
default not-support;
description "vccv type" ;
}
leaf conn-ack-type {
type enumeration {
enum not-support {
value 0 ;
description "pw doesn't support connection ack" ;
}
enum support {
value 1 ;
description "pw supports connection ack" ;
}
}
default not-support;
description "Connectivity test type" ;
}
container tunnels {
description "Define tunnels." ;
list tunnel{
key "tunnel-id";
description "The list of tunnel id." ;
uses tunnel;
}
}
}
grouping tunnel {
description "Reusable entity of tunnel." ;
leaf tunnel-id {
type string ;
description "ID of tunnel." ;
}
}
grouping encaplate-type-grouping {
description "encaplate type" ;
leaf encaplate-type {
type enumeration {
enum NONE {
value 0 ;
description "none." ;
}
enum fr-dlci-martini {
value 1 ;
description "fr-dlci-martini." ;
}
enum atm-aal5-sdu {
value 2 ;
description "atm-aal5-sdu." ;
}
enum atm-transparent {
value 3 ;
description "atm-transparent." ;
}
enum ethernet-vlan {
value 4 ;
description "ethernet-vlan." ;
}
enum ethernet {
value 5 ;
description "ethernet ." ;
}
enum hdlc {
value 6 ;
description " hdlc." ;
}
enum ppp {
value 7 ;
description "ppp." ;
}
enum cep-mpls {
value 8 ;
description " cep-mpls." ;
}
enum atm-ntol {
value 9 ;
description "atm-ntol." ;
}
enum atm-nto1-vpc {
value 10 ;
description "atm-nto1-vpc." ;
}
enum ip-layer2 {
value 11 ;
description " ip-layer2." ;
}
enum atm-1to1-vcc {
value 12 ;
description "atm-1to1-vcc." ;
}
enum atm-1to1-vpc {
value 13 ;
description "atm-1to1-vpc." ;
}
enum atm-aal5-pdu {
value 14 ;
description "atm-aal5-pdu." ;
}
enum fr-port {
value 15 ;
description "fr-port." ;
}
enum cep-packet {
value 16 ;
description "cep-packet." ;
}
enum e1 {
value 17 ;
description "e1." ;
}
enum t1 {
value 18 ;
description "t1." ;
}
enum e3 {
value 19 ;
description "e3." ;
}
enum t3 {
value 20 ;
description " t3." ;
}
enum cesopsn-basic {
value 21 ;
description "cesopsn-basic." ;
}
enum tdmoip-aal1 {
value 22 ;
description "tdmoip-aal1." ;
}
enum cesopsn-tdm {
value 23 ;
description "cesopsn-tdm." ;
}
enum tdmoip-aal2 {
value 24 ;
description "tdmoip-aal2." ;
}
enum fr-dlci {
value 25 ;
description "fr-dlci." ;
}
}
description "encaplate type." ;
}
}
grouping pw-trail{
description "pw trail information." ;
leaf id {
type string ;
description "ID of pw-trail." ;
}
leaf role {
type pw-role;
description "role of pw-trail." ;
}
container pw-lists {
description "List of pw information." ;
list pw-list {
key id;
description "List of pw information." ;
uses pw ;
}
}
}
grouping tunnel-service {
description "Reusable entity of tunnel service." ;
leaf signaling-type {
type enumeration {
enum RSVP-TE {
value 0 ;
description "RSVP-TE" ;
}
enum LDP {
value 1 ;
description "LDP" ;
}
enum GRE {
value 2 ;
description "GRE" ;
}
enum SR-BE {
value 3 ;
description "SR-BE" ;
}
enum SR-TE {
value 4 ;
description "SR-TE" ;
}
}
default RSVP-TE;
description "signaling type." ;
}
leaf tunnel-mode {
type enumeration {
enum Nto1 {
value 0 ;
description "multi service one tunnel" ;
}
enum 1to1 {
value 1 ;
description "oner service one tunnel" ;
}
}
default Nto1;
description "service to tunnel mode." ;
}
container protect-policy {
description "Protect policy." ;
uses protect-policy;
}
container oam-policy {
description "oam policy." ;
uses oam-policy;
}
leaf latency {
type int32;
description "tunnel latency requirement." ;
}
}
grouping service-path {
description "Service path of l3vpn." ;
list service-path{
key "service-id source-ne-id source-ac-id destination-ne-id destination-ac-id";
description
"The list of service path.";
leaf service-id {
type string ;
description "l2vpn or l3vpn service id." ;
}
leaf source-ne-id {
type string ;
description "source ne id." ;
}
leaf source-ac-id {
type string ;
description "source ltp id." ;
}
leaf destination-ne-id {
type string ;
description "destination ne id." ;
}
leaf destination-ac-id {
type string ;
description "destination ltp id." ;
}
container path-lists{
description "The path list of service path." ;
list path-list {
key "path-layer path-role";
description "The path list of service path." ;
leaf path-layer {
type enumeration {
enum PW {
value 0 ;
description "pw path." ;
}
enum BGP-LSP {
value 1 ;
description "BGP-LSP Path." ;
}
enum LSP {
value 2 ;
description "LSP Path." ;
}
}
description "path type. 0 : PW, 1 : BGP-LSP, 2 : PW" ;
}
leaf path-role {
type enumeration {
enum Primary {
value 0 ;
description "master path." ;
}
enum Backup {
value 1 ;
description "backup path." ;
}
enum Active {
value 2 ;
description "active path." ;
}
}
description "path role.. 0 : master, 1 : backup, 2 :
Bypass." ;
}
container paths {
description "path definition." ;
list path {
key "ne-id";
description "Network element id list." ;
leaf ne-id {
type string;
description "Network element id." ;
}
leaf ingress-ltp-id {
type string;
description "ingress ltd id." ;
}
leaf backward-peer-id {
type string;
description "backward peer id." ;
}
leaf egress-ltp-id {
type string;
description "egress ltd id." ;
}
leaf forward-peer-id {
type string;
description "forward peer id." ;
}
}
}
}
}
}
}
}