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.";
149 /* Q-in-Q logical port */
150 augment "/if:interfaces/if:interface" {
151 ext:augment-identifier "if-stacked-vlan";
152 when "if:type = 'stacked-vlan'";
153 leaf stacked_vlan-id {
160 augment "/if:interfaces/if:interface" {
161 ext:augment-identifier "if-tunnel";
162 when "if:type = 'ianaift:tunnel'";
168 "represents whether this is an internal or external tunnel.";
171 leaf tunnel-interface-type {
173 base tunnel-type-base;
178 type inet:ip-address;
179 description "Local Endpoint IP address";
182 leaf tunnel-destination {
183 type inet:ip-address;
184 description "Remote Endpoint IP address";
187 leaf tunnel-gateway {
188 type inet:ip-address;
189 description "gateway IP address";
192 leaf monitor-enabled {
197 leaf monitor-interval {
203 augment "/if:interfaces/if:interface" {
205 ext:augment-identifier "if-l3tunnel";
206 when "if:type = 'ianaift:l3tunnel'";
210 base tunnel-type-base;
215 type inet:ip-address;
216 description "Local Endpoint IP address";
220 type inet:ip-address;
221 description "Remote Endpoint IP address";
225 type inet:ip-address;
226 description "gateway IP address";
230 /* MPLS logical port */
231 augment "/if:interfaces/if:interface" {
232 ext:augment-identifier "if-mpls";
233 when "if:type = 'mpls'";
234 leaf-list labelStack {