diff options
-rw-r--r-- | dhcp/dhcp-api/asciidoc/Readme.adoc | 14 | ||||
-rw-r--r-- | dhcp/dhcp-api/pom.xml | 51 | ||||
-rw-r--r-- | dhcp/dhcp-api/src/main/yang/dhcp.yang | 89 | ||||
-rw-r--r-- | dhcp/pom.xml | 53 | ||||
-rw-r--r-- | pom.xml | 1 |
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> @@ -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 |