2 namespace "urn:opendaylight:vpnservice:interfacemgr";
6 import ietf-interfaces {
18 import ietf-inet-types {
22 import opendaylight-inventory {
23 prefix inv; revision-date 2013-08-19;
27 prefix config; revision-date 2013-04-05;
30 revision "2015-03-31" {
31 description "ODL Interface Manager Module";
34 identity odl-interface {
36 base "config:service-type";
37 config:java-class "org.opendaylight.vpnservice.interfacemgr.interfaces.IInterfaceManager";
40 identity stacked-vlan {
41 base if:interface-type;
42 reference "Q-in-Q interface";
46 base if:interface-type;
47 reference "MPLS interface";
52 base if:interface-type;
54 "l3 tunnel interface";
57 /* Tunnel (GRE, VxLAN) logical port */
58 identity tunnel-type-base {
59 description "Base identity for all tunnel-types";
62 identity tunnel-type-vxlan {
63 description "Tunnel type for vxlan tunnels";
64 base tunnel-type-base;
67 identity tunnel-type-gre {
68 description "Tunnel type for gre tunnels";
69 base tunnel-type-base;
72 /* base/common properties */
73 augment "/if:interfaces/if:interface" {
75 ext:augment-identifier "base-ids";
77 type inv:node-connector-id;
78 description "can be a physical switch port or virtual switch port e.g. neutron port";
82 augment "/if:interfaces/if:interface" {
83 ext:augment-identifier "parent-refs";
84 leaf datapath-node-identifier {
86 description "can be a physical switch identifier (optional)";
89 leaf parent-interface {
91 description "can be a physical switch port or virtual switch port e.g. neutron port";
95 /* interface type specific properties */
97 /* VLAN logical port */
98 augment "/if:interfaces/if:interface" {
99 ext:augment-identifier "if-l2vlan";
100 when "if:type = 'ianaift:l2vlan'";
108 /* Q-in-Q logical port */
109 augment "/if:interfaces/if:interface" {
110 ext:augment-identifier "if-stacked-vlan";
111 when "if:type = 'stacked-vlan'";
112 leaf stacked_vlan-id {
119 augment "/if:interfaces/if:interface" {
120 ext:augment-identifier "if-tunnel";
121 when "if:type = 'ianaift:tunnel'";
123 leaf tunnel-interface-type {
125 base tunnel-type-base;
130 type inet:ip-address;
131 description "Local Endpoint IP address";
134 leaf tunnel-destination {
135 type inet:ip-address;
136 description "Remote Endpoint IP address";
139 leaf tunnel-gateway {
140 type inet:ip-address;
141 description "gateway IP address";
145 augment "/if:interfaces/if:interface" {
147 ext:augment-identifier "if-l3tunnel";
148 when "if:type = 'ianaift:l3tunnel'";
152 base tunnel-type-base;
156 type inet:ip-address;
157 description "Local Endpoint IP address";
161 type inet:ip-address;
162 description "Remote Endpoint IP address";
166 type inet:ip-address;
167 description "gateway IP address";
170 /* MPLS logical port */
171 augment "/if:interfaces/if:interface" {
172 ext:augment-identifier "if-mpls";
173 when "if:type = 'mpls'";
174 leaf-list labelStack {