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 "can be ovsdb configuration protocol";
110 description "can be hwvtep configuration protocol";
115 /* interface type specific properties */
117 /* VLAN logical port */
118 augment "/if:interfaces/if:interface" {
119 ext:augment-identifier "if-l2vlan";
120 when "if:type = 'ianaift:l2vlan'";
122 type ethertype:vlan-id;
126 description "The VLAN mode of the L2Vlan Interface.";
131 "The VLAN mode access.";
133 enum "native-tagged" {
136 "The VLAN mode native-tagged.";
138 enum "native-untagged" {
141 "The VLAN mode native-untagged.";
146 "The VLAN mode trunk.";
148 enum "trunk-member" {
151 "The VLAN mode trunk-member.";
156 "The VLAN mode transparent.";
163 /* Q-in-Q logical port */
164 augment "/if:interfaces/if:interface" {
165 ext:augment-identifier "if-stacked-vlan";
166 when "if:type = 'stacked-vlan'";
167 leaf stacked_vlan-id {
174 augment "/if:interfaces/if:interface" {
175 ext:augment-identifier "if-tunnel";
176 when "if:type = 'ianaift:tunnel'";
182 "represents whether this is an internal or external tunnel.";
185 leaf tunnel-interface-type {
187 base tunnel-type-base;
192 type inet:ip-address;
193 description "Local Endpoint IP address";
196 leaf tunnel-destination {
197 type inet:ip-address;
198 description "Remote Endpoint IP address";
201 leaf tunnel-gateway {
202 type inet:ip-address;
203 description "gateway IP address";
206 leaf monitor-enabled {
211 leaf monitor-interval {
217 augment "/if:interfaces/if:interface" {
219 ext:augment-identifier "if-l3tunnel";
220 when "if:type = 'ianaift:l3tunnel'";
224 base tunnel-type-base;
229 type inet:ip-address;
230 description "Local Endpoint IP address";
234 type inet:ip-address;
235 description "Remote Endpoint IP address";
239 type inet:ip-address;
240 description "gateway IP address";
244 /* MPLS logical port */
245 augment "/if:interfaces/if:interface" {
246 ext:augment-identifier "if-mpls";
247 when "if:type = 'mpls'";
248 leaf-list labelStack {