2 * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
12 namespace "urn:opendaylight:groupbasedpolicy:iovisor";
15 import yang-ext {prefix ext; revision-date "2013-07-09";}
16 import ietf-inet-types { prefix inet; revision-date 2013-07-15; }
17 import endpoint { prefix endpoint; }
18 import gbp-common { prefix gbp-common; }
21 "This module defines the group-based policy iovisor renderer model.";
23 revision "2015-10-30" {
28 typedef iovisor-module-id {
30 * TODO Either convert this to URI or allow String but expect name:port where name will
31 * resolved into ip:port (see iovisor-module grouping)
33 description "Uniquely identifies the IOVisor module";
37 grouping iovisor-module {
39 * TODO Convert this to leafs of IP(v4|v6) and port - easier to validate
40 * For now assuming format "ip:port"
44 description "IOVisor module uniform resource identifier.";
48 container iovisor-module-instances {
49 description "IOVisor module inventory.";
55 list iovisor-module-instance {
58 description "This is a list of IOVisor modules.";
61 type iovisor-module-id;
68 container iovisor-resolved-endpoints {
69 description "IOvisor validated Endpoints";
71 list iovisor-resolved-endpoint {
72 key "l3-context ip-address";
77 container iovisor-modules-by-tenant-by-endpointgroup-id {
79 list iovisor-module-by-tenant-by-endpointgroup-id {
80 key "tenant-id endpointgroup-id";
82 type gbp-common:tenant-id;
84 leaf endpointgroup-id {
85 type gbp-common:endpoint-group-id;
87 list iovisor-module-instance-id {
90 type iovisor-module-id;
96 container iovisor-resolved-endpoints-by-tenant-by-endpointgroup-id {
98 list iovisor-resolved-endpoint-by-tenant-by-endpointgroup-id {
99 key "tenant-id endpointgroup-id";
101 type gbp-common:tenant-id;
103 leaf endpointgroup-id {
104 type gbp-common:endpoint-group-id;
106 list iovisor-endpoint {
107 key "l3-context ip-address";
108 uses endpoint:l3-key;
113 augment "/endpoint:endpoints/endpoint:endpoint-l3" {
114 description "Augmentation adding the IOVisor module location";
115 ext:augment-identifier "iovisor-module-augmentation";
119 augment "/endpoint:register-endpoint/endpoint:input" {
120 description "Augmentation adding the IOVisor module location";
121 ext:augment-identifier "iovisor-module-augmentation-input";