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";
101 list node-identifier {
103 description "an identifier of the dependant underlying configuration protocol";
106 description "A reference to the type of the network node.
107 For example, an ovsdb node will take the format ovsdb:1";
111 description "A reference to a network node. A node can be
112 of type ovsdb,hwvtep or openflow";
117 /* interface type specific properties */
119 /* VLAN logical port */
120 augment "/if:interfaces/if:interface" {
121 ext:augment-identifier "if-l2vlan";
122 when "if:type = 'ianaift:l2vlan'";
124 type ethertype:vlan-id;
128 description "The VLAN mode of the L2Vlan Interface.";
133 "The VLAN mode access.";
135 enum "native-tagged" {
138 "The VLAN mode native-tagged.";
140 enum "native-untagged" {
143 "The VLAN mode native-untagged.";
148 "The VLAN mode trunk.";
150 enum "trunk-member" {
153 "The VLAN mode trunk-member.";
158 "The VLAN mode transparent.";
165 /* Q-in-Q logical port */
166 augment "/if:interfaces/if:interface" {
167 ext:augment-identifier "if-stacked-vlan";
168 when "if:type = 'stacked-vlan'";
169 leaf stacked_vlan-id {
176 augment "/if:interfaces/if:interface" {
177 ext:augment-identifier "if-tunnel";
178 when "if:type = 'ianaift:tunnel'";
184 "represents whether this is an internal or external tunnel.";
187 leaf tunnel-interface-type {
189 base tunnel-type-base;
194 type inet:ip-address;
195 description "Local Endpoint IP address";
198 leaf tunnel-destination {
199 type inet:ip-address;
200 description "Remote Endpoint IP address";
203 leaf tunnel-gateway {
204 type inet:ip-address;
205 description "gateway IP address";
208 leaf monitor-enabled {
213 leaf monitor-interval {
219 augment "/if:interfaces/if:interface" {
221 ext:augment-identifier "if-l3tunnel";
222 when "if:type = 'ianaift:l3tunnel'";
226 base tunnel-type-base;
231 type inet:ip-address;
232 description "Local Endpoint IP address";
236 type inet:ip-address;
237 description "Remote Endpoint IP address";
241 type inet:ip-address;
242 description "gateway IP address";
246 /* MPLS logical port */
247 augment "/if:interfaces/if:interface" {
248 ext:augment-identifier "if-mpls";
249 when "if:type = 'mpls'";
250 leaf-list labelStack {