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 /* base/common properties */
74 augment "/if:interfaces/if:interface" {
76 ext:augment-identifier "base-ids";
78 type inv:node-connector-id;
79 description "can be a physical switch port or virtual switch port e.g. neutron port";
83 augment "/if:interfaces/if:interface" {
84 ext:augment-identifier "parent-refs";
85 leaf datapath-node-identifier {
87 description "can be a physical switch identifier (optional)";
90 leaf parent-interface {
92 description "can be a physical switch port or virtual switch port e.g. neutron port";
96 /* interface type specific properties */
98 /* VLAN logical port */
99 augment "/if:interfaces/if:interface" {
100 ext:augment-identifier "if-l2vlan";
101 when "if:type = 'ianaift:l2vlan'";
103 type ethertype:vlan-id;
107 description "The VLAN mode of the L2Vlan Interface.";
112 "The VLAN mode access.";
114 enum "native-tagged" {
117 "The VLAN mode native-tagged.";
119 enum "native-untagged" {
122 "The VLAN mode native-untagged.";
127 "The VLAN mode trunk.";
129 enum "trunk-member" {
132 "The VLAN mode trunk-member.";
137 "The VLAN mode transparent.";
143 /* Q-in-Q logical port */
144 augment "/if:interfaces/if:interface" {
145 ext:augment-identifier "if-stacked-vlan";
146 when "if:type = 'stacked-vlan'";
147 leaf stacked_vlan-id {
154 augment "/if:interfaces/if:interface" {
155 ext:augment-identifier "if-tunnel";
156 when "if:type = 'ianaift:tunnel'";
158 leaf tunnel-interface-type {
160 base tunnel-type-base;
165 type inet:ip-address;
166 description "Local Endpoint IP address";
169 leaf tunnel-destination {
170 type inet:ip-address;
171 description "Remote Endpoint IP address";
174 leaf tunnel-gateway {
175 type inet:ip-address;
176 description "gateway IP address";
180 augment "/if:interfaces/if:interface" {
182 ext:augment-identifier "if-l3tunnel";
183 when "if:type = 'ianaift:l3tunnel'";
187 base tunnel-type-base;
192 type inet:ip-address;
193 description "Local Endpoint IP address";
197 type inet:ip-address;
198 description "Remote Endpoint IP address";
202 type inet:ip-address;
203 description "gateway IP address";
206 /* MPLS logical port */
207 augment "/if:interfaces/if:interface" {
208 ext:augment-identifier "if-mpls";
209 when "if:type = 'mpls'";
210 leaf-list labelStack {