aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/yang/openconfig/openconfig-relay-agent.yang
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/yang/openconfig/openconfig-relay-agent.yang')
-rw-r--r--src/plugins/yang/openconfig/openconfig-relay-agent.yang815
1 files changed, 815 insertions, 0 deletions
diff --git a/src/plugins/yang/openconfig/openconfig-relay-agent.yang b/src/plugins/yang/openconfig/openconfig-relay-agent.yang
new file mode 100644
index 0000000..c0a2637
--- /dev/null
+++ b/src/plugins/yang/openconfig/openconfig-relay-agent.yang
@@ -0,0 +1,815 @@
+module openconfig-relay-agent {
+
+ yang-version "1";
+
+ // namespace
+ namespace "http://openconfig.net/yang/relay-agent";
+
+ prefix "oc-relay";
+
+ // import some basic types
+ import ietf-inet-types { prefix inet; }
+ import ietf-yang-types { prefix yang; }
+ import openconfig-interfaces { prefix oc-if; }
+ import openconfig-extensions { prefix oc-ext; }
+
+
+ // meta
+ organization "OpenConfig working group";
+
+ contact
+ "OpenConfig working group
+ www.openconfig.net";
+
+ description
+ "This module describes a model for configuration and operational
+ state related to relay agents typically used for DHCP and BOOTP
+ packets. The supports both DHCP and DHCPv6 and device-wide and
+ per-interface settings.";
+
+ oc-ext:openconfig-version "0.1.0";
+
+ revision "2016-05-16" {
+ description
+ "Initial public release";
+ reference "0.1.0";
+ }
+
+
+ // grouping statements
+
+ grouping agent-information-ipv4-common-config {
+ description
+ "Common configuration data for DHCP relay option";
+
+ leaf enable {
+ type boolean;
+ default false;
+ description
+ "Enable sending the DHCP option for Relay Agent information
+ -- option 82.";
+ reference
+ "RFC 3046 - DHCP Relay Agent Information Option";
+ }
+ }
+
+ grouping agent-information-ipv4-common-state {
+ description
+ "Common operational state data for DHCP relay option";
+
+ }
+
+ grouping agent-information-ipv4-global-top {
+ description
+ "Top-level grouping for agent information data at global level";
+
+ container agent-information-option {
+ description
+ "Top-level container for relay agent information option
+ data";
+
+ container config {
+ description
+ "Configuration data for the relay agent information
+ option";
+
+ uses agent-information-ipv4-common-config;
+ }
+
+ container state {
+
+ config false;
+
+ description
+ "Operational state data for agent information at global
+ level";
+
+ uses agent-information-ipv4-common-config;
+ uses agent-information-ipv4-common-state;
+ }
+ }
+ }
+
+ grouping agent-information-ipv4-interface-config {
+ description
+ "Configuration data for DCHP relay option on interfaces";
+
+ leaf circuit-id {
+ type string;
+ description
+ "Encodes an agent-local identifier of the circuit from which
+ a DHCP client-to-server packet was received. It is intended
+ for use by agents in relaying DHCP responses back to the
+ proper circuit. The circuit id is an opaque value";
+ reference
+ "RFC 3046 - DHCP Relay Agent Information Option";
+ }
+
+ leaf remote-id {
+ type string;
+ description
+ "Provides a mechanism to identify the remote host end of
+ the circuit. The remote-id should be thought of as an
+ opaque value, but must be globally unique.";
+ reference
+ "RFC 3046 - DHCP Relay Agent Information Option";
+ }
+ }
+
+ grouping agent-information-ipv4-interface-state {
+ description
+ "Operational state data for DHCP relay option on interfaces";
+
+ leaf sent-circuit-id {
+ type string;
+ description
+ "Reports the circuit-id sent by the system to the DHCP
+ server.";
+ }
+
+ leaf sent-remote-id {
+ type string;
+ description
+ "Reports the remote-id value sent by the system to the DHCP
+ server";
+ }
+ }
+
+ grouping agent-information-ipv4-interface-top {
+ description
+ "Top-level grouping for relay agent information option data";
+
+ container agent-information-option {
+ description
+ "Top-level container for relay agent information option
+ data";
+
+ container config {
+ description
+ "Configuration data for the relay agent information
+ option";
+
+ uses agent-information-ipv4-common-config;
+ uses agent-information-ipv4-interface-config;
+ }
+
+ container state {
+
+ config false;
+
+ description
+ "Operational state data ";
+
+ uses agent-information-ipv4-common-config;
+ uses agent-information-ipv4-interface-config;
+ uses agent-information-ipv4-common-state;
+ uses agent-information-ipv4-interface-state;
+ }
+ }
+ }
+
+ grouping agent-options-ipv6-common-config {
+ description
+ "Configuration data for DHCPv6 options";
+
+ leaf enable-interface-id {
+ type boolean;
+ default false;
+ description
+ "Enables DHCPv6 OPTION_INTERFACE_ID (18) to identify the
+ interface on which the client message was received.";
+ reference
+ "IETF RFC 3315 - Dynamic Host Configuration Protocol for
+ IPv6 (DHCPv6)";
+ }
+
+ leaf enable-remote-id {
+ type boolean;
+ default false;
+ description
+ "Sets DHCPv6 OPTION_REMOTE_ID (37). This option is the
+ DHCPv6 equivalent for the IPv4 (DHCPv4) Relay Agent Option's
+ Remote-ID suboption as specified in RFC 3046. The remote-id
+ field may be used to encode a user name, remote IP address,
+ interface/port identifier, etc.";
+ reference
+ "IETF RFC 4649 - Dynamic Host Configuration Protocol for
+ IPv6 (DHCPv6) Relay Agent Remote-ID Option";
+ }
+ }
+
+ grouping agent-options-ipv6-common-state {
+ description
+ "Operational state data for DHCPv6 options";
+ }
+
+ grouping agent-options-ipv6-interface-config {
+ description
+ "Configuration data for DHCPv6 options";
+
+ leaf interface-id {
+ type string;
+ description
+ "Sets DHCPv6 OPTION_INTERFACE_ID (18) to identify the
+ interface on which the client message was received.";
+ reference
+ "IETF RFC 3315 - Dynamic Host Configuration Protocol for
+ IPv6 (DHCPv6)";
+ }
+
+ leaf remote-id {
+ type string;
+ description
+ "Sets DHCPv6 OPTION_REMOTE_ID (37). This option is the
+ DHCPv6 equivalent for the IPv4 (DHCPv4) Relay Agent Option's
+ Remote-ID suboption as specified in RFC 3046. The remote-id
+ field may be used to encode a user name, remote IP address,
+ interface/port identifier, etc.";
+ reference
+ "IETF RFC 4649 - Dynamic Host Configuration Protocol for
+ IPv6 (DHCPv6) Relay Agent Remote-ID Option";
+ }
+ }
+
+ grouping agent-options-ipv6-interface-state {
+ description
+ "Operational state data for DHCPv6 options";
+
+ leaf sent-interface-id {
+ type string;
+ description
+ "Reflects the DHCPv6 OPTION_INTERFACE_ID (18) sent to the
+ server by the system.";
+ reference
+ "IETF RFC 3315 - Dynamic Host Configuration Protocol for
+ IPv6 (DHCPv6)";
+ }
+
+ leaf sent-remote-id {
+ type string;
+ description
+ "Reflects the DHCPv6 OPTION_REMOTE_ID (37) sent to the
+ server by the system.";
+ reference
+ "IETF RFC 4649 - Dynamic Host Configuration Protocol for
+ IPv6 (DHCPv6) Relay Agent Remote-ID Option";
+ }
+ }
+
+ grouping agent-options-ipv6-global-top {
+ description
+ "Top-level grouping for DHCPv6 options on interfaces";
+
+ container options {
+ description
+ "Top-level container for DHCPv6 agent options on interfaces";
+
+ container config {
+ description
+ "Configuration data ";
+
+ uses agent-options-ipv6-common-config;
+ }
+
+ container state {
+
+ config false;
+
+ description
+ "Operational state data for DHCPv6 agent option on an
+ interface";
+
+ uses agent-options-ipv6-common-config;
+ uses agent-options-ipv6-common-state;
+ }
+ }
+ }
+
+ grouping agent-options-ipv6-interface-top {
+ description
+ "Top-level grouping for DHCPv6 options on interfaces";
+
+ container options {
+ description
+ "Top-level container for DHCPv6 agent options on interfaces";
+
+ container config {
+ description
+ "Configuration data ";
+
+ uses agent-options-ipv6-common-config;
+ uses agent-options-ipv6-interface-config;
+ }
+
+ container state {
+
+ config false;
+
+ description
+ "Operational state data for DHCPv6 agent option on an
+ interface";
+
+ uses agent-options-ipv6-common-config;
+ uses agent-options-ipv6-interface-config;
+ uses agent-options-ipv6-common-state;
+ uses agent-options-ipv6-interface-state;
+ }
+ }
+ }
+
+ grouping relay-agent-common-config {
+ description
+ "Configuration data for global level relay agent options,
+ common across address families";
+
+ leaf enable-relay-agent {
+ type boolean;
+ default false;
+ description
+ "Enables DHCP/BOOTP relay agent on all interfaces";
+ }
+ }
+
+ grouping relay-agent-common-state {
+ description
+ "Operational state data for global level relay agent, common
+ across address families";
+ }
+
+ grouping relay-agent-ipv4-config {
+ description
+ "Configuration data for DHCPv4 relay agents";
+
+ uses relay-agent-common-config;
+ }
+
+ grouping relay-agent-ipv4-state {
+ description
+ "Configuration data for DHCPv4 relay agents";
+
+ uses relay-agent-common-state;
+ }
+
+
+ grouping relay-agent-ipv4-top {
+ description
+ "Top-level grouping for global relay agent data";
+
+ container dhcp {
+ description
+ "Top-level container for global relay agent data";
+
+ container config {
+ description
+ "Configuration data for global DHCPv4";
+
+ uses relay-agent-ipv4-config;
+ }
+
+ container state {
+
+ config false;
+
+ description
+ "Operational state data global DHCPv4";
+
+ uses relay-agent-ipv4-config;
+ uses relay-agent-ipv4-state;
+ }
+
+ uses agent-information-ipv4-global-top;
+ uses relay-agent-ipv4-interfaces-top;
+ }
+ }
+
+ grouping relay-agent-ipv6-config {
+ description
+ "Configuration data for DHCPv6 relay agents";
+
+ uses relay-agent-common-config;
+ }
+
+ grouping relay-agent-ipv6-state {
+ description
+ "Configuration data for DHCPv6 relay agents";
+
+ uses relay-agent-common-state;
+ }
+
+ grouping relay-agent-ipv6-top {
+ description
+ "Top-level grouping for global relay agent data";
+
+ container dhcpv6 {
+ description
+ "Top-level container for global relay agent data";
+
+ container config {
+ description
+ "Configuration data for global DHCPv6";
+
+ uses relay-agent-ipv6-config;
+ }
+
+ container state {
+
+ config false;
+
+ description
+ "Operational state data global DHCPv6";
+
+ uses relay-agent-ipv6-config;
+ uses relay-agent-ipv6-state;
+ }
+
+ uses agent-options-ipv6-global-top;
+ uses relay-agent-ipv6-interfaces-top;
+ }
+ }
+
+
+ grouping relay-agent-common-stats {
+ description
+ "Common DHCP / BOOTP message statistics for
+ DHCPv4 and DHCPv6";
+
+
+ leaf total-dropped {
+ type yang:counter64;
+ description
+ "Total number of DHCP packets dropped by the relay agent";
+ }
+
+ leaf invalid-opcode {
+ type yang:counter64;
+ description
+ "Number of DHCP packets dropped due to an invalid opcode";
+ }
+
+ leaf invalid-options {
+ type yang:counter64;
+ description
+ "Number of DHCP packets dropped due to an invalid option";
+ }
+ }
+
+ grouping relay-agent-ipv4-stats {
+ description
+ "DHCPv4 relay agent message statistics";
+
+ leaf bootrequest-received {
+ type yang:counter64;
+ description
+ "BOOTREQUEST messages received by the relay agent";
+ }
+
+ leaf dhcp-decline-received {
+ type yang:counter64;
+ description
+ "DHCP DECLINE messages received by the relay agent";
+ }
+
+ leaf dhcp-discover-received {
+ type yang:counter64;
+ description
+ "DHCP DISCOVER messages received by the relay agent";
+ }
+
+ leaf dhcp-inform-received {
+ type yang:counter64;
+ description
+ "DHCP INFORM messages received by the relay agent";
+ }
+
+ leaf dhcp-release-received {
+ type yang:counter64;
+ description
+ "DHCP RELEASE messages received by the relay agent";
+ }
+
+ leaf dhcp-request-received {
+ type yang:counter64;
+ description
+ "DHCP REQUEST messages received by the relay agent";
+ }
+
+ leaf bootrequest-sent {
+ type yang:counter64;
+ description
+ "BOOTREQUEST messages forwarded by the relay agent";
+ }
+
+ leaf bootreply-sent {
+ type yang:counter64;
+ description
+ "BOOTREPLY messages forwarded by the relay agent";
+ }
+
+ leaf dhcp-offer-sent {
+ type yang:counter64;
+ description
+ "DHCP OFFER messages sent by the relay agent";
+ }
+
+ leaf dhcp-ack-sent {
+ type yang:counter64;
+ description
+ "DHCP ACK messages sent by the relay agent";
+ }
+
+ leaf dhcp-nack-sent {
+ type yang:counter64;
+ description
+ "DHCP NACK messages sent by the relay agent";
+ }
+ }
+
+ grouping relay-agent-ipv6-stats {
+ description
+ "DHCPv4 relay agent message statistics";
+
+ leaf dhcpv6-solicit-received {
+ type yang:counter64;
+ description
+ "Number of DHCPv6 SOLICIT messages received from clients
+ by the relay agent";
+ }
+
+ leaf dhcpv6-decline-received {
+ type yang:counter64;
+ description
+ "Number of DHCPv6 DECLINE messages received from
+ clients by the relay agent";
+ }
+
+ leaf dhcpv6-request-received {
+ type yang:counter64;
+ description
+ "Number of DHCPv6 request messages received from clients
+ by the relay agent";
+ }
+
+ leaf dhcpv6-release-received {
+ type yang:counter64;
+ description
+ "Number of DHCPv6 release messages received from clients
+ by the relay agent";
+ }
+
+ leaf dhcpv6-confirm-received {
+ type yang:counter64;
+ description
+ "Number of DHCPv6 confirm messages received from clients
+ by the relay agent";
+ }
+
+ leaf dhcpv6-rebind-received {
+ type yang:counter64;
+ description
+ "Number of DHCPv6 rebind messages received from clients
+ by the relay agent";
+ }
+
+ leaf dhcpv6-info-request-received {
+ type yang:counter64;
+ description
+ "Number of DHCPv6 information requests messages received from
+ clients by the relay agent";
+ }
+
+ leaf dhcpv6-relay-reply-received {
+ type yang:counter64;
+ description
+ "Number of DHCPv6 relay reply messages received from servers
+ by the relay agent";
+ }
+
+ leaf dhcpv6-adverstise-sent {
+ type yang:counter64;
+ description
+ "Number of DHCPv6 adverstise messages sent to clients by
+ the relay agent";
+ }
+
+ leaf dhcpv6-reply-sent {
+ type yang:counter64;
+ description
+ "Number of DHCPv6 reply messages sent to clients by
+ the relay agent";
+ }
+
+ leaf dhcpv6-reconfigure-sent {
+ type yang:counter64;
+ description
+ "Number of DHCPv6 reconfigure messages sent to clients by
+ the relay agent";
+ }
+
+ leaf dhcpv6-relay-forw-sent {
+ type yang:counter64;
+ description
+ "Number of DHCPv6 relay-forward messages sent to servers
+ by the relay agent";
+ }
+
+ }
+
+ grouping relay-agent-ipv4-interfaces-config {
+ description
+ "Configuration data for interfaces enabled for relaying";
+
+ leaf id {
+ type oc-if:interface-id;
+ description
+ "Name of the interface on which relay agent is active";
+ }
+
+ leaf enable {
+ type boolean;
+ description
+ "Enables the relay agent on the referenced interface.
+ At least one helper address should also be configured
+ for forwarding requested.";
+ }
+
+ leaf-list helper-address {
+ type inet:ip-address;
+ description
+ "List of IPv4 or IPv6 addresses of DHCP servers to which the
+ relay agent should forward DHCPv4 requests. The relay agent is
+ expected to forward DHCPv4/BOOTP requests to all listed
+ server addresses when DHCPv4 relaying is enabled globally, or
+ on the interface.";
+ }
+ }
+
+ grouping relay-agent-ipv4-interfaces-state {
+ description
+ "Operational state data for interfaces enabled for relaying";
+
+ container counters {
+ description
+ "Counters and statistics for relay agent operation.";
+
+ uses relay-agent-common-stats;
+ uses relay-agent-ipv4-stats;
+ }
+ }
+
+ grouping relay-agent-ipv4-interfaces-top {
+ description
+ "Top-level grouping for DHCPv4 relays on interfaces";
+
+ container interfaces {
+ description
+ "Enclosing container for the list of interface references.";
+
+ list interface {
+ key "id";
+ description
+ "List of interfaces on which the relay agent is
+ configured.";
+
+ leaf id {
+ type leafref {
+ path "../config/id";
+ }
+ description
+ "Reference to the interface list key";
+ }
+
+ container config {
+ description
+ "Configuration data for relay agent interfaces.";
+
+ uses relay-agent-ipv4-interfaces-config;
+ }
+
+ container state {
+
+ config false;
+
+ description
+ "Operational state data for relay agent interfaces.";
+
+ uses relay-agent-ipv4-interfaces-config;
+ uses relay-agent-ipv4-interfaces-state;
+ }
+
+ uses oc-if:interface-ref;
+ uses agent-information-ipv4-interface-top;
+ }
+ }
+ }
+
+ grouping relay-agent-ipv6-interfaces-config {
+ description
+ "Configuration data for interfaces enabled for relaying";
+
+ leaf id {
+ type oc-if:interface-id;
+ description
+ "Name of the interface on which relay agent is active";
+ }
+
+ leaf enable {
+ type boolean;
+ description
+ "Enables the relay agent on the referenced interface.
+ At least one helper address should also be configured
+ for forwarding requested.";
+ }
+
+ leaf-list helper-address {
+ type inet:ipv6-address;
+ description
+ "List of IPv6 addresses of DHCP servers to which the
+ relay agent should forward DHCPv6 requests. The relay agent
+ is expected to forward DHCPv4/BOOTP requests to all listed
+ server addresses when DHCPv6 relaying is enabled globally, or
+ on the interface.";
+ }
+ }
+
+ grouping relay-agent-ipv6-interfaces-state {
+ description
+ "Operational state data for interfaces enabled for relaying";
+
+ container counters {
+ description
+ "Counters and statistics for relay agent operation.";
+
+ uses relay-agent-common-stats;
+ uses relay-agent-ipv6-stats;
+ }
+ }
+
+ grouping relay-agent-ipv6-interfaces-top {
+ description
+ "Top-level grouping for DHCPv4 relays on interfaces";
+
+ container interfaces {
+ description
+ "Enclosing container for the list of interface references.";
+
+ list interface {
+ key "id";
+ description
+ "List of interfaces on which the relay agent is
+ configured.";
+
+ leaf id {
+ type leafref {
+ path "../config/id";
+ }
+ description
+ "Reference to the interface list key";
+ }
+
+ container config {
+ description
+ "Configuration data for relay agent interfaces.";
+
+ uses relay-agent-ipv6-interfaces-config;
+ }
+
+ container state {
+
+ config false;
+
+ description
+ "Operational state data for relay agent interfaces.";
+
+ uses relay-agent-ipv6-interfaces-config;
+ uses relay-agent-ipv6-interfaces-state;
+ }
+
+ uses oc-if:interface-ref;
+ uses agent-options-ipv6-interface-top;
+ }
+ }
+ }
+
+ grouping relay-agent-top {
+ description
+ "Top-level container for relay agent configuration and opstate
+ data.";
+
+ container relay-agent {
+ description
+ "Top level container for relay-agent configuration and
+ operational state data";
+
+ uses relay-agent-ipv4-top;
+ uses relay-agent-ipv6-top;
+ }
+ }
+
+ // data definition statements
+
+ uses relay-agent-top;
+
+ // augment statements
+
+
+} \ No newline at end of file