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;
26 import opendaylight-l2-types { prefix ethertype; revision-date "2013-08-27";}
29 prefix config; revision-date 2013-04-05;
32 revision "2015-03-31" {
33 description "ODL Interface Manager Module";
36 identity odl-interface {
38 base "config:service-type";
39 config:java-class "org.opendaylight.vpnservice.interfacemgr.interfaces.IInterfaceManager";
42 identity stacked-vlan {
43 base if:interface-type;
44 reference "Q-in-Q interface";
48 base if:interface-type;
49 reference "MPLS interface";
52 /* Tunnel (GRE, VxLAN) logical port */
55 base if:interface-type;
56 reference "l3 tunnel interface";
59 identity tunnel-type-base {
60 description "Base identity for all tunnel-types";
63 identity tunnel-type-vxlan {
64 description "Tunnel type for vxlan tunnels";
65 base tunnel-type-base;
68 identity tunnel-type-gre {
69 description "Tunnel type for gre tunnels";
70 base tunnel-type-base;
73 identity tunnel-type-mpls-over-gre {
74 description "Tunnel type for mpls over gre tunnels";
75 base tunnel-type-base;
78 /* base/common properties */
79 augment "/if:interfaces/if:interface" {
81 ext:augment-identifier "base-ids";
83 type inv:node-connector-id;
84 description "can be a physical switch port or virtual switch port e.g. neutron port";
88 augment "/if:interfaces/if:interface" {
89 ext:augment-identifier "parent-refs";
90 leaf datapath-node-identifier {
92 description "can be a physical switch identifier (optional)";
95 leaf parent-interface {
97 description "can be a physical switch port or virtual switch port e.g. neutron port";
101 /* interface type specific properties */
103 /* VLAN logical port */
104 augment "/if:interfaces/if:interface" {
105 ext:augment-identifier "if-l2vlan";
106 when "if:type = 'ianaift:l2vlan'";
108 type ethertype:vlan-id;
112 description "The VLAN mode of the L2Vlan Interface.";
117 "The VLAN mode access.";
119 enum "native-tagged" {
122 "The VLAN mode native-tagged.";
124 enum "native-untagged" {
127 "The VLAN mode native-untagged.";
132 "The VLAN mode trunk.";
134 enum "trunk-member" {
137 "The VLAN mode trunk-member.";
142 "The VLAN mode transparent.";
148 /* Q-in-Q logical port */
149 augment "/if:interfaces/if:interface" {
150 ext:augment-identifier "if-stacked-vlan";
151 when "if:type = 'stacked-vlan'";
152 leaf stacked_vlan-id {
159 augment "/if:interfaces/if:interface" {
160 ext:augment-identifier "if-tunnel";
161 when "if:type = 'ianaift:tunnel'";
167 "represents whether this is an internal or external tunnel.";
170 leaf tunnel-interface-type {
172 base tunnel-type-base;
177 type inet:ip-address;
178 description "Local Endpoint IP address";
181 leaf tunnel-destination {
182 type inet:ip-address;
183 description "Remote Endpoint IP address";
186 leaf tunnel-gateway {
187 type inet:ip-address;
188 description "gateway IP address";
192 augment "/if:interfaces/if:interface" {
194 ext:augment-identifier "if-l3tunnel";
195 when "if:type = 'ianaift:l3tunnel'";
199 base tunnel-type-base;
204 type inet:ip-address;
205 description "Local Endpoint IP address";
209 type inet:ip-address;
210 description "Remote Endpoint IP address";
214 type inet:ip-address;
215 description "gateway IP address";
218 /* MPLS logical port */
219 augment "/if:interfaces/if:interface" {
220 ext:augment-identifier "if-mpls";
221 when "if:type = 'mpls'";
222 leaf-list labelStack {