summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarek Gradzki <mgradzki@cisco.com>2017-02-09 14:33:52 +0100
committerMarek Gradzki <mgradzki@cisco.com>2017-02-10 14:50:17 +0100
commitb83a4a9d291991b07034c0889694eda247e9c8cd (patch)
treef8f0573c80d2ccbef35b72e84ca9ff32bea5cf63
parent3c310e16d44083b03a64a78295b3295c8a0465bc (diff)
HC2VPP-53: YANG model for DHCP Relay
Change-Id: Ia6dd23a731b1889f5b69ff1761604c29ff84f03c Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
-rw-r--r--dhcp/dhcp-api/asciidoc/Readme.adoc14
-rw-r--r--dhcp/dhcp-api/pom.xml51
-rw-r--r--dhcp/dhcp-api/src/main/yang/dhcp.yang89
-rw-r--r--dhcp/pom.xml53
-rw-r--r--pom.xml1
5 files changed, 208 insertions, 0 deletions
diff --git a/dhcp/dhcp-api/asciidoc/Readme.adoc b/dhcp/dhcp-api/asciidoc/Readme.adoc
new file mode 100644
index 000000000..12e3bcd56
--- /dev/null
+++ b/dhcp/dhcp-api/asciidoc/Readme.adoc
@@ -0,0 +1,14 @@
+= dhcp-api
+
+Provides YANG model that defines DHCP configuration for VPP.
+
+Currently only DHCP relay configuration is supported.
+
+Operational data model is not supported
+(there is no binary API for reading DHCP configuration).
+
+== Notes on model
+* DHCP relay configuration is based on dhcp_proxy_config_2 message API:
+ https://git.fd.io/vpp/tree/src/vnet/dhcp/dhcp.api#n48
+* More info regarding functionality provided by VPP can be found
+ at https://docs.fd.io/vpp/17.04/clicmd_src_vnet_dhcp.html#clicmd_set_dhcp_proxy
diff --git a/dhcp/dhcp-api/pom.xml b/dhcp/dhcp-api/pom.xml
new file mode 100644
index 000000000..bbeb988f3
--- /dev/null
+++ b/dhcp/dhcp-api/pom.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (c) 2017 Cisco and/or its affiliates.
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at:
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+--><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.honeycomb.common</groupId>
+ <artifactId>api-parent</artifactId>
+ <version>1.17.04-SNAPSHOT</version>
+ </parent>
+
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>io.fd.hc2vpp.dhcp</groupId>
+ <artifactId>dhcp-api</artifactId>
+ <name>dhcp-api</name>
+ <version>1.17.04-SNAPSHOT</version>
+ <packaging>bundle</packaging>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.opendaylight.mdsal.model</groupId>
+ <artifactId>iana-if-type-2014-05-08</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.mdsal.model</groupId>
+ <artifactId>ietf-yang-types-20130715</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.mdsal.model</groupId>
+ <artifactId>ietf-interfaces</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.mdsal.model</groupId>
+ <artifactId>ietf-inet-types-2013-07-15</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.mdsal.model</groupId>
+ <artifactId>yang-ext</artifactId>
+ </dependency>
+ </dependencies>
+</project>
diff --git a/dhcp/dhcp-api/src/main/yang/dhcp.yang b/dhcp/dhcp-api/src/main/yang/dhcp.yang
new file mode 100644
index 000000000..281c5049a
--- /dev/null
+++ b/dhcp/dhcp-api/src/main/yang/dhcp.yang
@@ -0,0 +1,89 @@
+module dhcp {
+
+ yang-version 1;
+ namespace "urn:opendaylight:params:xml:ns:yang:vpp:dhcp";
+ prefix "dhcp";
+
+ description
+ "This YANG module defines the generic configuration and
+ operational data for dhcp in VPP";
+
+ revision "2017-03-15" {
+ description
+ "Initial revision of dhcp model";
+ }
+
+ import ietf-inet-types {
+ prefix inet;
+ }
+
+ identity address-family {
+ description
+ "Base identity from which identities describing address
+ families are derived.";
+ }
+
+ identity ipv4 {
+ base address-family;
+ description
+ "This identity represents IPv4 address family.";
+ }
+
+ identity ipv6 {
+ base address-family;
+ description
+ "This identity represents IPv6 address family.";
+ }
+
+ typedef address-type {
+ type identityref {
+ base address-family;
+ }
+ }
+
+ grouping relay-attributes {
+ leaf server-address {
+ type inet:ip-address-no-zone;
+ mandatory true;
+ description
+ "IP address of the server DHCP packets will be forwarded to.";
+ }
+ leaf server-vrf-id {
+ type uint32;
+ default 0;
+ description
+ "Used to send DHCP messages to the server";
+ }
+ leaf gateway-address {
+ type inet:ip-address-no-zone;
+ mandatory true;
+ description
+ "IP address of the relay agent.";
+ }
+ leaf insert-circuit-id {
+ type boolean;
+ default true;
+ }
+ }
+
+ grouping dhcp-attributes {
+ container relays {
+ list relay {
+ key "address-type rx-vrf-id";
+ leaf address-type {
+ type address-type;
+ }
+ leaf rx-vrf-id {
+ type uint32;
+ description
+ "Used to receive DHCP messages from clients.";
+ }
+ uses relay-attributes;
+ }
+ }
+ }
+
+ container dhcp {
+ uses dhcp-attributes;
+ }
+} \ No newline at end of file
diff --git a/dhcp/pom.xml b/dhcp/pom.xml
new file mode 100644
index 000000000..d6e565265
--- /dev/null
+++ b/dhcp/pom.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (c) 2017 Cisco and/or its affiliates.
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at:
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+--><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">
+
+ <groupId>io.fd.hc2vpp.dhcp</groupId>
+
+ <parent>
+ <artifactId>hc2vpp-aggregator</artifactId>
+ <groupId>io.fd.hc2vpp</groupId>
+ <version>1.17.04-SNAPSHOT</version>
+ </parent>
+ <artifactId>dhcp-aggregator</artifactId>
+ <version>1.17.04-SNAPSHOT</version>
+ <name>dhcp-aggregator</name>
+ <packaging>pom</packaging>
+ <modelVersion>4.0.0</modelVersion>
+
+ <modules>
+ <module>dhcp-api</module>
+ </modules>
+
+ <!-- DO NOT install or deploy the repo root pom as it's only needed to initiate a build -->
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-deploy-plugin</artifactId>
+ <configuration>
+ <skip>true</skip>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-install-plugin</artifactId>
+ <configuration>
+ <skip>true</skip>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/pom.xml b/pom.xml
index 434eefca3..b7e4f7099 100644
--- a/pom.xml
+++ b/pom.xml
@@ -45,5 +45,6 @@
<module>release-notes</module>
<module>vpp-integration</module>
<module>acl</module>
+ <module>dhcp</module>
</modules>
</project> \ No newline at end of file