summaryrefslogtreecommitdiffstats
path: root/interface-role/api
diff options
context:
space:
mode:
authorJan Srnicek <jsrnicek@cisco.com>2017-04-20 16:07:43 +0200
committerMarek Gradzki <mgradzki@cisco.com>2017-04-27 07:50:26 +0000
commitf681f003b874d1c2ce031ed48d7696802a23a190 (patch)
tree962a534a9af54c9d46973d95c682240249b004b6 /interface-role/api
parent1bdb94bca4f7202e5565ab15b9b290a19126b25c (diff)
HC2VPP-128 - interface role specification api
Change-Id: I534e4d67d43006e61b8cb7355460bf440b20476f Signed-off-by: Jan Srnicek <jsrnicek@cisco.com>
Diffstat (limited to 'interface-role/api')
-rw-r--r--interface-role/api/asciidoc/Readme.adoc3
-rw-r--r--interface-role/api/pom.xml27
-rw-r--r--interface-role/api/src/main/yang/interface-role.yang78
3 files changed, 108 insertions, 0 deletions
diff --git a/interface-role/api/asciidoc/Readme.adoc b/interface-role/api/asciidoc/Readme.adoc
new file mode 100644
index 000000000..c2a75a37c
--- /dev/null
+++ b/interface-role/api/asciidoc/Readme.adoc
@@ -0,0 +1,3 @@
+= api
+
+Overview of api \ No newline at end of file
diff --git a/interface-role/api/pom.xml b/interface-role/api/pom.xml
new file mode 100644
index 000000000..16dba94ec
--- /dev/null
+++ b/interface-role/api/pom.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <parent>
+ <groupId>io.fd.hc2vpp.common</groupId>
+ <artifactId>api-parent</artifactId>
+ <version>1.17.07-SNAPSHOT</version>
+ <relativePath>../../common/api-parent</relativePath>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+
+ <groupId>io.fd.hc2vpp.iface.role</groupId>
+ <artifactId>api</artifactId>
+ <version>1.17.07-SNAPSHOT</version>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.opendaylight.mdsal.model</groupId>
+ <artifactId>yang-ext</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.mdsal.model</groupId>
+ <artifactId>ietf-interfaces</artifactId>
+ </dependency>
+ </dependencies>
+</project> \ No newline at end of file
diff --git a/interface-role/api/src/main/yang/interface-role.yang b/interface-role/api/src/main/yang/interface-role.yang
new file mode 100644
index 000000000..72af173b6
--- /dev/null
+++ b/interface-role/api/src/main/yang/interface-role.yang
@@ -0,0 +1,78 @@
+module interface-role {
+
+ yang-version 1;
+ namespace "urn:opendaylight:params:xml:ns:yang:interface:role";
+ prefix "if-role";
+
+ // TODO - update revision number to 17.07 release date
+ revision "2017-03-15" {
+ description "Basic specification of interface roles";
+ }
+
+ import ietf-interfaces {
+ prefix "if";
+ }
+
+ import yang-ext {
+ prefix "ext";
+ }
+
+ identity network-role-base {
+ description "Base identity for network interface roles";
+ }
+
+ identity virtual-domain-interface {
+ base network-role-base;
+ description "Tenant network interface. Interface must be enabled and have ip assigned";
+ }
+
+ identity public-interface {
+ base network-role-base;
+ description "Public interface for external access. Interface must be enabled and have ip assigned";
+ }
+
+ typedef network-role {
+ type identityref {
+ base network-role-base;
+ }
+ description "Base type for network interface roles";
+ }
+
+ grouping interface-role-grouping {
+ container roles {
+ list role {
+ key role-name;
+
+ leaf role-name {
+ type string;
+ description "Unique name for role";
+ mandatory true;
+ }
+
+ leaf role-type {
+ type network-role;
+ description "Specifies type of network role";
+ mandatory true;
+ }
+
+ leaf description {
+ type string;
+ description "Any additional metadata for this assignment of network role";
+ }
+ }
+ }
+ }
+
+ augment /if:interfaces/if:interface {
+ ext:augment-identifier "interface-role-augmentation";
+
+ uses interface-role-grouping;
+ }
+
+ augment /if:interfaces-state/if:interface {
+ ext:augment-identifier "interface-role-state-augmentation";
+
+ uses interface-role-grouping;
+ }
+}
+