2 namespace "urn:opendaylight:vpnservice:interfacemgr";
6 import ietf-interfaces {
18 import ietf-inet-types {
20 revision-date "2010-09-24";
23 import opendaylight-inventory {
24 prefix inv; revision-date 2013-08-19;
27 import opendaylight-l2-types { prefix ethertype; revision-date "2013-08-27";}
30 prefix config; revision-date 2013-04-05;
33 revision "2015-03-31" {
34 description "ODL Interface Manager Module";
37 identity odl-interface {
39 base "config:service-type";
40 config:java-class "org.opendaylight.vpnservice.interfacemgr.interfaces.IInterfaceManager";
43 identity stacked-vlan {
44 base if:interface-type;
45 reference "Q-in-Q interface";
49 base if:interface-type;
50 reference "MPLS interface";
53 /* Tunnel (GRE, VxLAN) logical port */
56 base if:interface-type;
57 reference "l3 tunnel interface";
60 identity tunnel-type-base {
61 description "Base identity for all tunnel-types";
64 identity tunnel-type-vxlan {
65 description "Tunnel type for vxlan tunnels";
66 base tunnel-type-base;
69 identity tunnel-type-gre {
70 description "Tunnel type for gre tunnels";
71 base tunnel-type-base;
74 identity tunnel-type-mpls-over-gre {
75 description "Tunnel type for mpls over gre tunnels";
76 base tunnel-type-base;
79 /* base/common properties */
80 augment "/if:interfaces/if:interface" {
82 ext:augment-identifier "base-ids";
84 type inv:node-connector-id;
85 description "can be a physical switch port or virtual switch port e.g. neutron port";
89 augment "/if:interfaces/if:interface" {
90 ext:augment-identifier "parent-refs";
91 leaf datapath-node-identifier {
93 description "can be a physical switch identifier (optional)";
96 leaf parent-interface {
98 description "can be a physical switch port or virtual switch port e.g. neutron port";
102 /* interface type specific properties */
104 /* VLAN logical port */
105 augment "/if:interfaces/if:interface" {
106 ext:augment-identifier "if-l2vlan";
107 when "if:type = 'ianaift:l2vlan'";
109 type ethertype:vlan-id;
113 description "The VLAN mode of the L2Vlan Interface.";
118 "The VLAN mode access.";
120 enum "native-tagged" {
123 "The VLAN mode native-tagged.";
125 enum "native-untagged" {
128 "The VLAN mode native-untagged.";
133 "The VLAN mode trunk.";
135 enum "trunk-member" {
138 "The VLAN mode trunk-member.";
143 "The VLAN mode transparent.";
150 /* Q-in-Q logical port */
151 augment "/if:interfaces/if:interface" {
152 ext:augment-identifier "if-stacked-vlan";
153 when "if:type = 'stacked-vlan'";
154 leaf stacked_vlan-id {
161 augment "/if:interfaces/if:interface" {
162 ext:augment-identifier "if-tunnel";
163 when "if:type = 'ianaift:tunnel'";
169 "represents whether this is an internal or external tunnel.";
172 leaf tunnel-interface-type {
174 base tunnel-type-base;
179 type inet:ip-address;
180 description "Local Endpoint IP address";
183 leaf tunnel-destination {
184 type inet:ip-address;
185 description "Remote Endpoint IP address";
188 leaf tunnel-gateway {
189 type inet:ip-address;
190 description "gateway IP address";
193 leaf monitor-enabled {
198 leaf monitor-interval {
204 augment "/if:interfaces/if:interface" {
206 ext:augment-identifier "if-l3tunnel";
207 when "if:type = 'ianaift:l3tunnel'";
211 base tunnel-type-base;
216 type inet:ip-address;
217 description "Local Endpoint IP address";
221 type inet:ip-address;
222 description "Remote Endpoint IP address";
226 type inet:ip-address;
227 description "gateway IP address";
231 /* MPLS logical port */
232 augment "/if:interfaces/if:interface" {
233 ext:augment-identifier "if-mpls";
234 when "if:type = 'mpls'";
235 leaf-list labelStack {