2 namespace "urn:opendaylight:genius:interfacemanager";
6 import ietf-interfaces {
18 import ietf-inet-types {
20 revision-date "2013-07-15";
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 "2016-04-06" {
34 description "ODL Interface Manager Module";
37 identity odl-interface {
38 base "config:service-type";
39 config:java-class "org.opendaylight.genius.interfacemanager.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-vxlan-gpe {
69 description "Tunnel type for vxlan-gpe";
70 base tunnel-type-base;
73 identity tunnel-type-gre {
74 description "Tunnel type for gre tunnels";
75 base tunnel-type-base;
78 identity tunnel-type-mpls-over-gre {
79 description "Tunnel type for mpls over gre tunnels";
80 base tunnel-type-base;
83 identity tunnel-monitoring-type-base {
84 description "Base identity for all tunnel-monitoring-types";
87 identity tunnel-monitoring-type-lldp {
88 description "Tunnel monitoring using lldp";
89 base tunnel-monitoring-type-base;
92 identity tunnel-monitoring-type-bfd {
93 description "Tunnel monitoring using bfd support on OVS";
94 base tunnel-monitoring-type-base;
97 grouping monitor-params {
98 leaf monitor-enabled {
103 leaf monitor-interval {
108 leaf monitor-protocol {
110 base tunnel-monitoring-type-base;
112 default tunnel-monitoring-type-bfd;
115 list monitor-config {
116 key "monitor-config-key";
117 leaf monitor-config-key {
120 leaf monitor-config-value {
126 /* base/common properties */
127 augment "/if:interfaces/if:interface" {
129 ext:augment-identifier "base-ids";
131 type inv:node-connector-id;
132 description "can be a physical switch port or virtual switch port e.g. neutron port";
136 augment "/if:interfaces/if:interface" {
137 ext:augment-identifier "parent-refs";
138 leaf datapath-node-identifier {
140 description "can be a physical switch identifier (optional)";
143 leaf parent-interface {
145 description "can be a physical switch port or virtual switch port e.g. neutron port";
148 list node-identifier {
150 description "an identifier of the dependant underlying configuration protocol";
153 description "can be ovsdb configuration protocol";
157 description "can be hwvtep configuration protocol";
162 /* interface type specific properties */
164 /* VLAN logical port */
165 augment "/if:interfaces/if:interface" {
166 ext:augment-identifier "if-l2vlan";
167 when "if:type = 'ianaift:l2vlan'";
169 type ethertype:vlan-id;
173 description "The VLAN mode of the L2Vlan Interface.";
178 "The VLAN mode access.";
180 enum "native-tagged" {
183 "The VLAN mode native-tagged.";
185 enum "native-untagged" {
188 "The VLAN mode native-untagged.";
193 "The VLAN mode trunk.";
195 enum "trunk-member" {
198 "The VLAN mode trunk-member.";
203 "The VLAN mode transparent.";
210 /* Q-in-Q logical port */
211 augment "/if:interfaces/if:interface" {
212 ext:augment-identifier "if-stacked-vlan";
213 when "if:type = 'stacked-vlan'";
214 leaf stacked_vlan-id {
221 augment "/if:interfaces/if:interface" {
222 ext:augment-identifier "if-tunnel";
223 when "if:type = 'ianaift:tunnel'";
229 "represents whether this is an internal or external tunnel.";
232 leaf tunnel-interface-type {
234 base tunnel-type-base;
239 type inet:ip-address;
240 description "Local Endpoint IP address";
243 leaf tunnel-destination {
244 type inet:ip-address;
245 description "Remote Endpoint IP address";
248 leaf tunnel-gateway {
249 type inet:ip-address;
250 description "gateway IP address";
256 augment "/if:interfaces/if:interface" {
258 ext:augment-identifier "if-l3tunnel";
259 when "if:type = 'ianaift:l3tunnel'";
263 base tunnel-type-base;
268 type inet:ip-address;
269 description "Local Endpoint IP address";
273 type inet:ip-address;
274 description "Remote Endpoint IP address";
278 type inet:ip-address;
279 description "gateway IP address";
283 /* MPLS logical port */
284 augment "/if:interfaces/if:interface" {
285 ext:augment-identifier "if-mpls";
286 when "if:type = 'mpls'";
287 leaf-list labelStack {