summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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
-rw-r--r--interface-role/pom.xml22
-rw-r--r--pom.xml1
5 files changed, 131 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;
+ }
+}
+
diff --git a/interface-role/pom.xml b/interface-role/pom.xml
new file mode 100644
index 000000000..bbfb72e18
--- /dev/null
+++ b/interface-role/pom.xml
@@ -0,0 +1,22 @@
+<?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>
+ <artifactId>hc2vpp-parent</artifactId>
+ <groupId>io.fd.hc2vpp.common</groupId>
+ <version>1.17.07-SNAPSHOT</version>
+ <relativePath>../common/hc2vpp-parent</relativePath>
+ </parent>
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <groupId>io.fd.hc2vpp.iface.role</groupId>
+ <artifactId>interface-role-aggregator</artifactId>
+ <packaging>pom</packaging>
+ <version>1.17.07-SNAPSHOT</version>
+
+ <modules>
+ <module>api</module>
+ </modules>
+</project> \ No newline at end of file
diff --git a/pom.xml b/pom.xml
index a58dcd398..fef706b91 100644
--- a/pom.xml
+++ b/pom.xml
@@ -52,5 +52,6 @@
<module>l3</module>
<module>vpp-management</module>
<module>it</module>
+ <module>interface-role</module>
</modules>
</project> \ No newline at end of file