This module contains a collection of YANG definitions for Cisco IOS-XR ipv4-dhcpd package configuration. This module contains d...
Version: 2020-12-15
module Cisco-IOS-XR-ipv4-dhcpd-cfg { yang-version 1; namespace "http://cisco.com/ns/yang/Cisco-IOS-XR-ipv4-dhcpd-cfg"; prefix ipv4-dhcpd-cfg; import ietf-inet-types { prefix inet; } import ietf-yang-types { prefix yang; } import Cisco-IOS-XR-types { prefix xr; } import cisco-semver { prefix semver; } organization "Cisco Systems, Inc."; contact "Cisco Systems, Inc. Customer Service Postal: 170 West Tasman Drive San Jose, CA 95134 Tel: +1 800 553-NETS E-mail: cs-yang@cisco.com"; description "This module contains a collection of YANG definitions for Cisco IOS-XR ipv4-dhcpd package configuration. This module contains definitions for the following management objects: ipv4-dhcpd: DHCP IPV4 configuration Copyright (c) 2013-2020 by Cisco Systems, Inc. All rights reserved."; revision "2020-12-15" { description "Added interface level remote-id configuration to intake ASCII/Hex values. 2020-08-15 Added insert-bootfile option. 2020-07-20 Added IPoE DHCP CLI to enable option82 in release message. 2020-06-15 Added IPoE DHCP client keep subsIntf on new discover CLI. 2020-06-14 Added IPoE DHCP client reboot interval config. 2020-03-31 Interface vlan-intf session-limit configuration added. 2020-03-26 CNBNG profile cfg added."; } revision "2019-10-18" { description "Interface remote-id configuration made optional."; } revision "2019-05-31" { description "Added interface level remote-id configuration."; } revision "2019-04-05" { description "Establish semantic version baseline."; } revision "2018-10-24" { description "Fixed remote id mask."; } revision "2017-09-30" { description "Ensure propagation of MDA mandatory state to YANG model."; } revision "2017-05-01" { description "Fixing backward compatibility error in module."; } revision "2015-11-09" { description "IOS XR 6.0 revision."; } semver:module-version "1.2.0"; semver:module-version "1.1.0"; semver:module-version "1.0.0"; typedef Ipv4-match-default-mode { type enumeration { enum "server" { value 3; description "Server"; } } description "Ipv4 match default mode"; } typedef Ipv4dhcpd-client-id { type uint32 { range "0..4294967295"; } description "Ipv4dhcpd client id"; } typedef Dhcpv4-match-option { type enumeration { enum "60/60" { value 60; description "Vendor class ID"; } enum "77/77" { value 77; description "77 User class"; } enum "124/124" { value 124; description "Vendor identifying class"; } enum "125/125" { value 125; description "Vendor specific information"; } } description "Dhcpv4 match option"; } typedef Ipv4dhcpd-layer { type enumeration { enum "layer2" { value 2; description "Layer2"; } enum "layer3" { value 3; description "Layer3"; } } description "Ipv4dhcpd layer"; } typedef Dhcpv4-limit-lease1 { type enumeration { enum "interface" { value 1; description "Interface"; } enum "circuit-id" { value 2; description "Circuit ID"; } enum "remote-id" { value 3; description "Remote ID"; } enum "circuit-id-remote-id" { value 4; description "Circuit ID Remote ID"; } } description "Dhcpv4 limit lease1"; } typedef Ipv4dhcpd-relay-giaddr-policy { type enumeration { enum "replace" { value 1; description "Replace"; } enum "drop" { value 2; description "Drop"; } } description "Ipv4dhcpd relay giaddr policy"; } typedef Matchoption { type enumeration { enum "circuitid" { value 1; description "Match circuit id of option 82 Relay-agent specific class"; } enum "remoteid" { value 2; description "Match remote id of option 82 Relay-agent specific class"; } enum "60" { value 60; description "Match option 60 vendor class id"; } enum "77" { value 77; description "Match option 77 user class"; } enum "124" { value 124; description "Match option 124 vendor-identifying vendor class"; } enum "125" { value 125; description "Match option 125 vendor-indentifying vendor-specific info"; } } description "Matchoption"; } typedef Ipv4dhcpd-relay-info-option-remote-id { type enumeration { enum "mac-address" { value 1; description "MacAddress"; } enum "hex" { value 2; description "Hex Format String"; } enum "ascii" { value 3; description "Ascii Format String"; } } description "Ipv4dhcpd relay info option remote id"; } typedef Ipv4dhcpd-giaddr-policy { type enumeration { enum "giaddr-policy-keep" { value 0; description "Giaddr Policy Keep"; } } description "Ipv4dhcpd giaddr policy"; } typedef Lease-limit-value { type enumeration { enum "per-interface" { value 1; description "Insert the limit lease type interface"; } enum "per-circuit-id" { value 2; description "Insert the limit lease type circuit-id"; } enum "per-remote-id" { value 3; description "Insert the limit lease type remote-id"; } } description "Lease limit value"; } typedef Dhcpv4-auth-username { type enumeration { enum "auth-username-mac" { value 1; description "Authentication Username formating mac"; } enum "auth-username-giaddr" { value 2; description "Authentication Username formating giaddr"; } } description "Dhcpv4 auth username"; } typedef Proxy-action { type enumeration { enum "allow" { value 0; description "Allow vendor specific DHCP Discover"; } enum "drop" { value 1; description "Drop vendor specific DHCP Discover"; } enum "relay" { value 2; description "Relay vendor-id specific DHCP packets unaltered"; } } description "Proxy action"; } typedef Ipv4dhcpd-broadcast-flag-policy { type enumeration { enum "ignore" { value 0; description "Ignore"; } enum "check" { value 1; description "check"; } enum "unicast-always" { value 2; description "Unicast always"; } } description "Ipv4dhcpd broadcast flag policy"; } typedef Ipv4-mode-class-mode { type enumeration { enum "server" { value 3; description "Server"; } enum "proxy" { value 4; description "Proxy"; } } description "Ipv4 mode class mode"; } typedef Base-action { type enumeration { enum "allow" { value 0; description "Allow vendor specific DHCP Discover"; } enum "drop" { value 1; description "Drop vendor specific DHCP Discover"; } } description "Base action"; } typedef Dhcpv4-limit-lease { type uint32 { range "1..240000"; } description "Dhcpv4 limit lease"; } typedef Ipv4dhcpd-mode { type enumeration { enum "base" { value 0; description "Base"; } enum "relay" { value 1; description "Relay"; } enum "snoop" { value 2; description "Snoop"; } enum "server" { value 3; description "Server"; } enum "proxy" { value 4; description "Proxy"; } enum "base2" { value 5; description "Base2"; } enum "cnbng" { value 7; description "Cnbng"; } } description "Ipv4dhcpd mode"; } typedef Matchaction { type enumeration { enum "allow" { value 0; description "Allow DHCP Discover"; } enum "drop" { value 1; description "Drop DHCP Discover"; } } description "Matchaction"; } typedef Policy { type enumeration { enum "ignore" { value 0; description "Ignore the broadcast policy"; } enum "check" { value 1; description "Check for broadcast flag"; } enum "unicastalways" { value 2; description "Always Unicast the reply"; } } description "Policy"; } typedef Ipv4dhcpd-relay-info-optionvpn-mode { type enumeration { enum "rfc" { value 0; description "RFC"; } enum "cisco" { value 1; description "Cisco"; } } description "Ipv4dhcpd relay info optionvpn mode"; } typedef Ipv4dhcpd-fmt { type enumeration { enum "no-format" { value 0; description "Not a Format String"; } enum "hex" { value 1; description "Hex Format String"; } enum "ascii" { value 2; description "Ascii Format String"; } enum "extended" { value 3; description "Extended Format String"; } } description "Ipv4dhcpd fmt"; } typedef Ipv4dhcpd-relay-info-option-authenticate { type enumeration { enum "received" { value 0; description "Received"; } enum "inserted" { value 1; description "Inserted"; } } description "Ipv4dhcpd relay info option authenticate"; } typedef Ipv4dhcpd-relay-info-option-policy { type enumeration { enum "replace" { value 0; description "Replace"; } enum "keep" { value 1; description "Keep"; } enum "drop" { value 2; description "Drop"; } enum "encapsulate" { value 3; description "Encapsulate"; } } description "Ipv4dhcpd relay info option policy"; } typedef Ipv4dhcpd-fmt-specifier { type enumeration { enum "physical-chassis" { value 1; description "Physical chassis"; } enum "physical-slot" { value 2; description "Physical slot"; } enum "physical-sub-slot" { value 3; description "Physical sub-slot"; } enum "physical-port" { value 4; description "Physical port"; } enum "physical-sub-port" { value 5; description "Physical sub-port"; } enum "inner-vlan-id" { value 6; description "Inner VLAN ID"; } enum "outer-vlan-id" { value 7; description "Outer VLAN ID"; } enum "l2-interface" { value 8; description "L2 Interface"; } enum "l3-interface" { value 9; description "L3 Interface"; } enum "host-name" { value 10; description "Hostname"; } } description "Ipv4dhcpd fmt specifier"; } typedef Mac-mismatch-action { type enumeration { enum "forward" { value 0; description "Forward"; } enum "drop" { value 1; description "Drop"; } } description "Mac mismatch action"; } grouping OPTION-CODE-TABLE { description "Common node of server, class"; container option-codes { description "Table of OptionCode"; list option-code { key "option-code"; description "DHCP option code"; leaf option-code { type uint32 { range "0..255"; } description "DHCP option code"; } leaf ascii-string { type string; description "ASCII string"; } leaf hex-string { type string; description "Hexadecimal string"; } leaf force-insert { type uint32; description "Set constant integer"; } leaf-list ip-address { type inet:ipv4-address-no-zone; max-elements 8; description "Server's IP address"; } } // list option-code } // container option-codes } // grouping OPTION-CODE-TABLE container ipv4-dhcpd { presence "Indicates a ipv4-dhcpd node is configured."; description "DHCP IPV4 configuration"; container client-reboot-interval { description "Configure IPoE DHCP client reboot interval"; leaf client-reboot-interval { type uint32 { range "10..30"; } description "Client reboot time value"; } leaf max-client-reboot-interval { type uint32 { range "10..300"; } description "Client Max reboot time value"; } } // container client-reboot-interval container vrfs { description "VRF Table"; list vrf { key "vrf-name"; description "VRF table"; container profile { presence "Indicates a profile node is configured."; description "Profile name and mode"; leaf vrf-profile-name { type string; mandatory true; description "Profile name"; } leaf mode { type Ipv4dhcpd-mode; mandatory true; description "Dhcp mode"; } } // container profile leaf vrf-name { type xr:Cisco-ios-xr-string; description "VRF Name"; } } // list vrf } // container vrfs container profiles { description "DHCP IPV4 Profile Table"; list profile { key "profile-name"; description "DHCP IPV4 Profile"; container modes { description "DHCP IPV4 Profile modes"; list mode { key "mode"; description "DHCP IPV4 Profile mode"; container snoop { description "DHCP Snoop profile"; container relay-information-option { description "DHCP Snoop profile"; container remote-id { description "Enter remote-id value"; leaf format-type { type uint32 { range "1..2"; } description "Format type, 1. Hex 2. ASCII"; } leaf remote-id-value { type string; description "Enter remote-id value"; } } // container remote-id leaf insert { type empty; description "Insert Relay Agent Information circuit ID and remote ID suboptions in client request"; } leaf allow-untrusted { type empty; description "Forward untrusted packets"; } leaf policy { type Ipv4dhcpd-relay-info-option-policy; description "Relay information option policy"; } } // container relay-information-option leaf trusted { type empty; description "Trusted sources"; } } // container snoop container base { presence "Indicates a base node is configured."; description "DHCP Base Profile"; container default-profile { description "Enable the default profile"; leaf profile-name { type xr:Cisco-ios-xr-string { length "1..64"; } description "Profile name"; } leaf profile-mode { type uint32; description "none"; } } // container default-profile container match { description "Insert match keyword"; container option-filters { description "Table of Option"; list option-filter { key "matchoption pattern format"; description "Specify match option"; leaf option-action { type Base-action; description "Vendor action"; } leaf matchoption { type uint32; description "Match option 60"; } leaf pattern { type xr:Cisco-ios-xr-string { length "1..64"; } description "Enter hex pattern string"; } leaf format { type uint32; description "Set constant integer"; } } // list option-filter } // container option-filters container def-options { description "Table of Option"; list def-option { key "def-matchoption"; description "Specify match option"; leaf def-matchoption { type uint32; description "Match option 60"; } leaf def-matchaction { type Base-action; mandatory true; description "Vendor action"; } } // list def-option } // container def-options } // container match container base-relay-opt { description "Insert Relay Agent Information circuit ID and remote ID suboptions in client request"; leaf remote-id { type string { length "1..256"; } description "Enter remote-id value"; } leaf authenticate { type uint32; description "Specify Relay Agent Information Option authenticate"; } } // container base-relay-opt container dhcp-to-aaa { description "Enable to provide the list of options need to send to aaa"; container base-option { description "option type"; container list { description "List of options"; leaf option-all { type uint32; description "option all"; } leaf-list option { type uint32 { range "1..255"; } max-elements 12; description "List of options"; } } // container list } // container base-option } // container dhcp-to-aaa container base-match { description "Insert match keyword"; container options { description "Specify match option"; list option { key "opt60 opt60-hex-str format"; description "none"; container option-profile { description "Enter a profile"; leaf profile-name { type xr:Cisco-ios-xr-string { length "1..64"; } description "Profile name"; } leaf profile-mode { type uint32; description "none"; } } // container option-profile leaf opt60 { type uint32; description "none"; } leaf opt60-hex-str { type xr:Cisco-ios-xr-string; description "Enter hex pattern string"; } leaf format { type uint32; description "Set constant integer"; } } // list option } // container options container mode-classes { description "Table of ModeClass"; list mode-class { key "class-name"; description "Specify PPP/IPoE class option"; container profile { description "Enter proxy or server profile"; leaf profile-name { type xr:Cisco-ios-xr-string { length "1..64"; } description "Profile name"; } leaf mode { type Ipv4-mode-class-mode; description "Specify mode"; } } // container profile leaf class-name { type xr:Cisco-ios-xr-string { length "1..64"; } description "Class name"; } } // list mode-class } // container mode-classes } // container base-match container match-default { description "Default match option"; container profile { description "Enter server profile"; leaf profile-name { type xr:Cisco-ios-xr-string { length "1..64"; } description "Profile name"; } leaf default-mode { type Ipv4-match-default-mode; description "Specify mode"; } } // container profile } // container match-default leaf enable { type empty; mandatory true; description "Enable the DHCP IPv4 Base Profile"; } } // container base container server { presence "Indicates a server node is configured."; description "DHCP Server profile"; container server-id-check { description "Validate server ID check"; leaf check { type empty; description "specify server-id-check disable"; } } // container server-id-check container lease-limit { description "Specify limit lease"; leaf lease-limit-value { type Lease-limit-value; description "Configure Lease limit value"; } leaf range { type uint32 { range "1..240000"; } description "Value of limit lease count in Decimal"; } } // container lease-limit container requested-ip-address { description "Validate Requested IP Address"; leaf check { type empty; description "specify requested-ip-address-check disable"; } } // container requested-ip-address container aaa-server { description "Enable aaa dhcp option force-insert"; container dhcp-option { description "Enable aaa dhcp option force-insert"; leaf force-insert { type empty; description "Enable aaa dhcp option force-insert"; } } // container dhcp-option } // container aaa-server container default-routers { description "default routers"; leaf-list default-router { type inet:ipv4-address-no-zone; max-elements 8; description "Router's IP address"; } } // container default-routers container delete-binding-on-discover { description "Delete binding on receiving discover"; leaf disable { type empty; description "Disable delete binding on discover"; } } // container delete-binding-on-discover container net-bios-name-servers { description "NetBIOS name servers"; leaf-list net-bios-name-server { type inet:ipv4-address-no-zone; max-elements 8; description "NetBIOSNameServer's IP address"; } } // container net-bios-name-servers container match { description "Insert match keyword"; container option-defaults { description "Table of OptionDefault"; list option-default { key "matchoption"; description "Specify match option"; leaf matchoption { type Matchoption; description "Match option 60"; } leaf matchaction { type Matchaction; mandatory true; description "Vendor action"; } } // list option-default } // container option-defaults container options { description "Table of Option"; list option { key "matchoption pattern format"; description "Specify match option"; leaf matchoption { type Matchoption; description "Match option 60"; } leaf pattern { type xr:Cisco-ios-xr-string { length "1..64"; } description "Enter hex pattern string"; } leaf format { type uint32; description "Set constant integer"; } leaf matchaction { type Matchaction; mandatory true; description "Vendor action"; } } // list option } // container options } // container match container broadcast-flag { description "None"; leaf policy { type Policy; description "Specify broadcast flag policy"; } } // container broadcast-flag container session { description "Change sessions configuration"; container throttle-type { description "Throttle DHCP sessions based on MAC address"; container mac-throttle { description "Throttle DHCP sessions from any one MAC address"; leaf num-discover { type uint32 { range "1..65535"; } description "Number of discovers at which to throttle"; } leaf num-request { type uint32 { range "1..100"; } units "second"; description "Throttle request period (in secs)"; } leaf num-block { type uint32 { range "1..100"; } units "second"; description "Throttle blocking period (in secs)"; } } // container mac-throttle } // container throttle-type } // container session container classes { description "Table of Class"; list class { key "class-name"; description "Create or enter server profile class"; container default-routers { description "default routers"; leaf-list default-router { type inet:ipv4-address-no-zone; max-elements 8; description "Router's IP address"; } } // container default-routers container net-bios-name-servers { description "NetBIOS name servers"; leaf-list net-bios-name-server { type inet:ipv4-address-no-zone; max-elements 8; description "NetBIOSNameServer's IP address"; } } // container net-bios-name-servers container class-match { description "Insert match keyword"; container class-options { description "Table of Class-Option"; list class-option { key "matchoption"; description "Specify match option"; leaf matchoption { type Matchoption; description "Match options"; } leaf pattern { type string { length "1..64"; } description "Enter hex pattern string"; } leaf bit-mask { type string { length "1..64"; } description "Enter bit mask pattern string"; } } // list class-option } // container class-options leaf l2-interface { type xr:Interface-name; description "Specify match l2-interface"; } leaf vrf { type xr:Cisco-ios-xr-string { length "1..32"; } description "Specify match VRF"; } } // container class-match container lease { description "lease"; leaf infinite { type string; description "Set string"; } leaf days { type uint32 { range "0..365"; } units "day"; description "Days"; } leaf hours { type uint32 { range "0..23"; } units "hour"; description "Hours"; } leaf minutes { type uint32 { range "0..59"; } units "minute"; description "Minutes"; } } // container lease container netbios-node-type { description "NetBIOS node type"; leaf broadcast-node { type string; description "Set string"; } leaf hybrid-node { type string; description "Set string"; } leaf mixed-node { type string; description "Set string"; } leaf peer-to-peer-node { type string; description "Set string"; } leaf hexadecimal { type xr:Hex-integer; description "Hexadecimal number"; } } // container netbios-node-type container dns-servers { description "DNS servers"; leaf-list dns-server { type inet:ipv4-address-no-zone; max-elements 8; description "DNS Server's IP address"; } } // container dns-servers leaf subnet-mask { type inet:ipv4-address-no-zone; description "Configure Subnet Mask"; } leaf pool { type string; description "Specify the pool"; } leaf enable { type empty; description "Enable Create or enter server profile class. Deletion of this object also causes deletion of all associated objects under Class."; } leaf domain-name { type xr:Cisco-ios-xr-string { length "1..256"; } description "Domain name"; } leaf boot-filename { type xr:Cisco-ios-xr-string { length "1..128"; } description "Boot Filename"; } leaf next-server { type inet:ipv4-address-no-zone; description "Configure the tftp-server IP to be used by the client"; } leaf class-name { type xr:Cisco-ios-xr-string { length "1..128"; } description "class name"; } uses OPTION-CODE-TABLE; } // list class } // container classes container relay { description "Specify Relay Agent Information Option configuration"; leaf authenticate { type uint32; description "Specify Relay Agent Information Option authenticate"; } } // container relay container lease { description "lease"; leaf infinite { type string; description "Set string"; } leaf days { type uint32 { range "0..365"; } units "day"; description "Days"; } leaf hours { type uint32 { range "0..23"; } units "hour"; description "Hours"; } leaf minutes { type uint32 { range "0..59"; } units "minute"; description "Minutes"; } } // container lease container netbios-node-type { description "NetBIOS node type"; leaf broadcast-node { type string; description "Set string"; } leaf hybrid-node { type string; description "Set string"; } leaf mixed-node { type string; description "Set string"; } leaf peer-to-peer-node { type string; description "Set string"; } leaf hexadecimal { type xr:Hex-integer; description "Hexadecimal number"; } } // container netbios-node-type container dns-servers { description "DNS servers"; leaf-list dns-server { type inet:ipv4-address-no-zone; max-elements 8; description "DNS Server's IP address"; } } // container dns-servers container dhcp-to-aaa { description "Enable to provide the list of options need to send to aaa"; container option { description "option type"; container list { description "List of options"; leaf option-all { type uint32; description "Set constant integer"; } leaf-list option-number { type uint32; max-elements 12; description "Option number"; } } // container list } // container option } // container dhcp-to-aaa leaf server-allow-move { type empty; description "Allow dhcp subscriber move"; } leaf enable { type empty; mandatory true; description "DHCP IPV4 profile mode enable"; } leaf subnet-mask { type inet:ipv4-address-no-zone; description "Configure Subnet Mask"; } leaf insert-bootfile { type empty; description "Force insert bootfile name"; } leaf pool { type string { length "1..64"; } description "Specify the Pool name"; } leaf domain-name { type xr:Cisco-ios-xr-string { length "1..256"; } description "Domain name"; } leaf secure-arp { type empty; description "Enable Secure Arp"; } leaf arp-instal-skip-stdalone { type empty; description "Skip ARP installation for standalone sessions"; } leaf boot-filename { type xr:Cisco-ios-xr-string { length "1..128"; } description "Boot Filename"; } leaf enable-session-limit { type empty; description "Enable vlan or interface session limit"; } leaf next-server { type inet:ipv4-address-no-zone; description "Configure the tftp-server IP to be used by the client"; } uses OPTION-CODE-TABLE; } // container server container relay { description "DHCP Relay profile"; container gi-addr-policy { presence "Indicates a gi-addr-policy node is configured."; description "GIADDR policy"; leaf policy { type Ipv4dhcpd-relay-giaddr-policy; mandatory true; description "GIADDR policy"; } } // container gi-addr-policy container vrfs { description "VRF Helper Addresses"; list vrf { key "vrf-name"; description "VRF Name"; container helper-addresses { description "Helper Addresses"; list helper-address { key "ip-address"; description "Helper Address"; leaf ip-address { type inet:ipv4-address-no-zone; description "IPV4 Address"; } leaf enable { type empty; description "Enable helper - deprecated"; } leaf gateway-address { type inet:ipv4-address-no-zone; description "GatewayAddress"; } } // list helper-address } // container helper-addresses leaf vrf-name { type xr:Cisco-ios-xr-string; description "VRF Name"; } } // list vrf } // container vrfs container relay-information-option { description "Relay agent information option"; container remote-id { description "Enter remote-id value"; leaf format-type { type uint32 { range "1..2"; } description "Format type, 1. Hex 2. ASCII"; } leaf remote-id-value { type string; description "Enter remote-id value"; } } // container remote-id leaf vpn-mode { type Ipv4dhcpd-relay-info-optionvpn-mode; description "VPN Mode"; } leaf subscriber-id { type string; description "Subscriber ID"; } leaf allow-in-release-msg { type empty; description "handle option82 in release message"; } leaf insert { type empty; description "Insert Relay Agent Information circuit ID and remote ID suboptions in client requests"; } leaf check { type empty; description "Check Relay Agent Information Option in server reply"; } leaf vpn { type empty; description "Insert VPN options"; } leaf allow-untrusted { type empty; description "Forward untrusted packets"; } leaf policy { type Ipv4dhcpd-relay-info-option-policy; description "Relay information option policy"; } } // container relay-information-option container broadcast-policy { presence "Indicates a broadcast-policy node is configured."; description "Broadcast Flag policy"; leaf policy { type Ipv4dhcpd-broadcast-flag-policy; mandatory true; description "Broadcast flag policy"; } } // container broadcast-policy leaf mac-mismatch-action { type Mac-mismatch-action; description "Action to take if L2 header source Mac and dhcp header mac address don't match"; } } // container relay container proxy { presence "Indicates a proxy node is configured."; description "DHCP proxy profile"; container giaddr { presence "Indicates a giaddr node is configured."; description "Specify gateway address policy"; leaf policy { type Ipv4dhcpd-giaddr-policy; mandatory true; description "Gateway address policy"; } } // container giaddr container classes { description "DHCP class table"; list class { key "class-name"; description "DHCP class"; container match { description "Match option"; container option { description "Match option"; leaf option-type { type Dhcpv4-match-option; description "Match option"; } leaf pattern { type string; description "Hex pattern string"; } leaf bit-mask { type string; description "Bit mask pattern"; } } // container option leaf vrf { type string; description "Match VRF name"; } } // container match container vrfs { description "List of VRFs"; list vrf { key "vrf-name"; description "VRF name"; container helper-addresses { description "Helper addresses"; list helper-address { key "server-address"; description "Helper address"; leaf server-address { type inet:ipv4-address-no-zone; description "IPv4 address"; } leaf gateway-address { type inet:ipv4-address-no-zone; mandatory true; description "Gateway address"; } } // list helper-address } // container helper-addresses leaf vrf-name { type xr:Cisco-ios-xr-string; description "VRF name"; } } // list vrf } // container vrfs leaf enable { type empty; mandatory true; description "Enable the DHCP IPV4 proxy class"; } leaf class-name { type xr:Cisco-ios-xr-string; description "Class name"; } } // list class } // container classes container auth-username { presence "Indicates a auth-username node is configured."; description "Authentication Username formating"; leaf arg1 { type Dhcpv4-auth-username; mandatory true; description "Username Formatting first argument "; } leaf arg2 { type Dhcpv4-auth-username; description "Username Formatting second argument "; } } // container auth-username container relay-information { description "Relay agent information option"; leaf option { type empty; description "Insert relay rgent information circuit ID and remote ID suboptions in client requests"; } leaf vpn { type empty; description "Insert VPN options"; } leaf allow-untrusted { type empty; description "Forward untrusted packets"; } leaf circuit-id { type empty; description "Insert Circuit-id sub-option"; } leaf policy { type Ipv4dhcpd-relay-info-option-policy; description "Relay information option policy"; } leaf vpn-mode { type Ipv4dhcpd-relay-info-optionvpn-mode; description "VPN Mode"; } leaf remote-id-xr { type empty; description "Insert Remote-id sub-option"; } leaf remote-id-suppress { type empty; description "Suppress Remote ID"; } leaf check { type empty; description "Check relay agent information option in server reply"; } leaf remote-id { type string; description "Remote ID"; } leaf authenticate { type Ipv4dhcpd-relay-info-option-authenticate; description "Relay information option authenticate"; } } // container relay-information container dhcp-to-aaa { description "Enable to provide the list of options need to send to aaa"; container option { description "option type"; container list { description "List of options"; leaf option-all { type uint32; description "option all"; } leaf-list option { type uint32 { range "1..255"; } max-elements 12; description "List of options"; } } // container list } // container option } // container dhcp-to-aaa container vrfs { description "List of VRFs"; list vrf { key "vrf-name"; description "VRF name"; container helper-addresses { description "Helper addresses"; list helper-address { key "server-address"; description "Helper address"; leaf server-address { type inet:ipv4-address-no-zone; description "IPv4 address"; } leaf gateway-address { type inet:ipv4-address-no-zone; mandatory true; description "Gateway address"; } } // list helper-address } // container helper-addresses leaf vrf-name { type xr:Cisco-ios-xr-string; description "VRF name"; } } // list vrf } // container vrfs container sessions { description "Change sessions configuration"; container proxy-throttle-type { description "Throttle DHCP sessions based on MAC address"; container proxy-mac-throttle { description "Throttle DHCP sessions from any one MAC address"; leaf num-discover { type uint32 { range "1..65535"; } description "Number of discovers at which to throttle"; } leaf num-request { type uint32 { range "1..100"; } units "second"; description "Throttle request period (in secs)"; } leaf num-block { type uint32 { range "1..100"; } units "second"; description "Throttle blocking period (in secs)"; } } // container proxy-mac-throttle } // container proxy-throttle-type } // container sessions container limit-lease { presence "Indicates a limit-lease node is configured."; description "Proxy limit lease"; leaf limit-type { type Dhcpv4-limit-lease1; mandatory true; description "Lease limit type"; } leaf limit-lease-count { type Dhcpv4-limit-lease; mandatory true; description "Limit lease count"; } } // container limit-lease container lease-proxy { description "DHCPv4 lease proxy"; leaf client-lease-time { type uint32 { range "300..4294967295"; } description "Specify client lease proxy time"; } leaf set-server-options { type empty; description "Set DHCP server sent options in lease proxy generating ACK"; } } // container lease-proxy container broadcast-flag { presence "Indicates a broadcast-flag node is configured."; description "Specify broadcast flag"; leaf policy { type Ipv4dhcpd-broadcast-flag-policy; mandatory true; description "Broadcast flag policy"; } } // container broadcast-flag container match { description "Insert match keyword"; container def-options { description "Table of Option"; list def-option { key "def-matchoption"; description "Specify match option"; leaf def-matchoption { type uint32; description "Match option 60"; } leaf def-matchaction { type Proxy-action; mandatory true; description "Vendor action"; } } // list def-option } // container def-options container option-filters { description "Table of Option"; list option-filter { key "matchoption pattern format"; description "Specify match option"; leaf matchoption { type uint32; description "Match option 60"; } leaf pattern { type xr:Cisco-ios-xr-string { length "1..64"; } description "Enter hex pattern string"; } leaf format { type uint32; description "Set constant integer"; } leaf matchaction { type Proxy-action; mandatory true; description "Vendor action"; } } // list option-filter } // container option-filters } // container match leaf handle-discover-in-bound { type empty; description "handle new discover in bound state"; } leaf proxy-allow-move { type empty; description "Allow dhcp subscriber move"; } leaf secure-arp { type empty; description "DHCP IPV4 profile proxy secure-arp enable"; } leaf delayed-authen-proxy { type empty; description "For BNG session, delay the authentication"; } leaf enable { type empty; mandatory true; description "DHCP IPV4 profile mode enable"; } } // container proxy container cnbng { presence "Indicates a cnbng node is configured."; description "DHCP cnbng profile"; leaf enable { type empty; mandatory true; description "DHCP IPV4 profile mode enable"; } } // container cnbng leaf enable { type empty; description "Enable the DHCP IPV4 Profile mode"; } leaf mode { type Ipv4dhcpd-mode; description "DHCP IPV4 Profile mode"; } } // list mode } // container modes leaf profile-name { type xr:Cisco-ios-xr-string; description "Profile Name"; } } // list profile } // container profiles container database { description "Enable DHCP binding database storage to file system"; leaf proxy { type empty; description "Enable DHCP proxy binding database storage to file system"; } leaf server { type empty; description "Enable DHCP server binding database storage to file system"; } leaf snoop { type empty; description "Enable DHCP snoop binding database storage to file system"; } leaf full-write-interval { type uint32 { range "1..1440"; } default "10"; description "Full file write interval (default 10 minutes)"; } leaf incremental-write-interval { type uint32 { range "1..1440"; } default "1"; description "Incremental file write interval (default 1 minutes)"; } } // container database container interfaces { description "DHCP IPV4 Interface Table"; list interface { key "interface-name"; description "DHCP IPV4 Interface"; container proxy-interface { description "DHCP IPv4 proxy information"; container dhcp-circuit-id { presence "Indicates a dhcp-circuit-id node is configured."; description "Circuit ID value"; leaf circuit-id { type string; mandatory true; description "DHCP IPv4 circuit ID value"; } leaf format { type Ipv4dhcpd-fmt; mandatory true; description "Format String"; } leaf argument1 { type Ipv4dhcpd-fmt-specifier; description "Argument"; } leaf argument2 { type Ipv4dhcpd-fmt-specifier; description "Argument"; } leaf argument3 { type Ipv4dhcpd-fmt-specifier; description "Argument"; } leaf argument4 { type Ipv4dhcpd-fmt-specifier; description "Argument"; } leaf argument5 { type Ipv4dhcpd-fmt-specifier; description "Argument"; } leaf argument6 { type Ipv4dhcpd-fmt-specifier; description "Argument"; } leaf argument7 { type Ipv4dhcpd-fmt-specifier; description "Argument"; } leaf argument8 { type Ipv4dhcpd-fmt-specifier; description "Argument"; } leaf argument9 { type Ipv4dhcpd-fmt-specifier; description "Argument"; } leaf argument10 { type Ipv4dhcpd-fmt-specifier; description "Argument"; } leaf argument11 { type Ipv4dhcpd-fmt-specifier; description "Argument"; } leaf argument12 { type Ipv4dhcpd-fmt-specifier; description "Argument"; } leaf argument13 { type Ipv4dhcpd-fmt-specifier; description "Argument"; } leaf argument14 { type Ipv4dhcpd-fmt-specifier; description "Argument"; } leaf argument15 { type Ipv4dhcpd-fmt-specifier; description "Argument"; } leaf argument16 { type Ipv4dhcpd-fmt-specifier; description "Argument"; } } // container dhcp-circuit-id leaf proxy-remote-id { type Ipv4dhcpd-relay-info-option-remote-id; description "Insert option 82 remote-id sub-option"; } leaf profile { type string; description "Interface profile name"; } } // container proxy-interface container base-interface { description "DHCP IPv4 Base profile information"; container base-dhcp-circuit-id { presence "Indicates a base-dhcp-circuit-id node is configured."; description "Circuit ID value"; leaf circuit-id { type string; mandatory true; description "DHCP IPv4 circuit ID value"; } leaf format { type Ipv4dhcpd-fmt; mandatory true; description "Format String"; } leaf argument1 { type Ipv4dhcpd-fmt-specifier; description "Argument"; } leaf argument2 { type Ipv4dhcpd-fmt-specifier; description "Argument"; } leaf argument3 { type Ipv4dhcpd-fmt-specifier; description "Argument"; } leaf argument4 { type Ipv4dhcpd-fmt-specifier; description "Argument"; } leaf argument5 { type Ipv4dhcpd-fmt-specifier; description "Argument"; } leaf argument6 { type Ipv4dhcpd-fmt-specifier; description "Argument"; } leaf argument7 { type Ipv4dhcpd-fmt-specifier; description "Argument"; } leaf argument8 { type Ipv4dhcpd-fmt-specifier; description "Argument"; } leaf argument9 { type Ipv4dhcpd-fmt-specifier; description "Argument"; } leaf argument10 { type Ipv4dhcpd-fmt-specifier; description "Argument"; } leaf argument11 { type Ipv4dhcpd-fmt-specifier; description "Argument"; } leaf argument12 { type Ipv4dhcpd-fmt-specifier; description "Argument"; } leaf argument13 { type Ipv4dhcpd-fmt-specifier; description "Argument"; } leaf argument14 { type Ipv4dhcpd-fmt-specifier; description "Argument"; } leaf argument15 { type Ipv4dhcpd-fmt-specifier; description "Argument"; } leaf argument16 { type Ipv4dhcpd-fmt-specifier; description "Argument"; } } // container base-dhcp-circuit-id leaf profile { type string; description "Interface profile name"; } } // container base-interface container relay-interface { description "DHCP IPv4 relay information"; container relay-dhcp-circuit-id { presence "Indicates a relay-dhcp-circuit-id node is configured."; description "Circuit ID value"; leaf circuit-id { type string; mandatory true; description "DHCP IPv4 circuit ID value"; } leaf format { type Ipv4dhcpd-fmt; mandatory true; description "Format String"; } leaf argument1 { type Ipv4dhcpd-fmt-specifier; description "Argument"; } leaf argument2 { type Ipv4dhcpd-fmt-specifier; description "Argument"; } leaf argument3 { type Ipv4dhcpd-fmt-specifier; description "Argument"; } leaf argument4 { type Ipv4dhcpd-fmt-specifier; description "Argument"; } leaf argument5 { type Ipv4dhcpd-fmt-specifier; description "Argument"; } leaf argument6 { type Ipv4dhcpd-fmt-specifier; description "Argument"; } leaf argument7 { type Ipv4dhcpd-fmt-specifier; description "Argument"; } leaf argument8 { type Ipv4dhcpd-fmt-specifier; description "Argument"; } leaf argument9 { type Ipv4dhcpd-fmt-specifier; description "Argument"; } leaf argument10 { type Ipv4dhcpd-fmt-specifier; description "Argument"; } leaf argument11 { type Ipv4dhcpd-fmt-specifier; description "Argument"; } leaf argument12 { type Ipv4dhcpd-fmt-specifier; description "Argument"; } leaf argument13 { type Ipv4dhcpd-fmt-specifier; description "Argument"; } leaf argument14 { type Ipv4dhcpd-fmt-specifier; description "Argument"; } leaf argument15 { type Ipv4dhcpd-fmt-specifier; description "Argument"; } leaf argument16 { type Ipv4dhcpd-fmt-specifier; description "Argument"; } } // container relay-dhcp-circuit-id leaf relay-remote-id { type Ipv4dhcpd-relay-info-option-remote-id; description "Insert option 82 remote-id sub-option"; } } // container relay-interface container static-mode { description "Static Table Entries containing MAC address to IP address bindings"; container statics { description "Static Table Entries containing MAC address to IP address bindings"; list static { key "mac-address client-id layer"; description "DHCP static binding of Mac address to IP address"; leaf mac-address { type yang:mac-address; description "MACAddress"; } leaf client-id { type Ipv4dhcpd-client-id; description "Client Id"; } leaf layer { type Ipv4dhcpd-layer; description "DHCP IPV4 Static layer"; } leaf static-address { type inet:ipv4-address-no-zone; mandatory true; description "IP address"; } } // list static } // container statics } // container static-mode container cnbng-interface { description "DHCP IPv4 cnbng information"; leaf profile { type string; description "Interface profile name"; } } // container cnbng-interface container profile { presence "Indicates a profile node is configured."; description "Profile name and mode"; leaf profile-name { type string; mandatory true; description "Profile name"; } leaf mode { type Ipv4dhcpd-mode; mandatory true; description "DHCP mode"; } } // container profile container server-interface { description "DHCP IPv4 Server information"; container server-dhcp-circuit-id { presence "Indicates a server-dhcp-circuit-id node is configured."; description "Circuit ID value"; leaf circuit-id { type string; mandatory true; description "DHCP IPv4 circuit ID value"; } leaf format { type Ipv4dhcpd-fmt; mandatory true; description "Format String"; } leaf argument1 { type Ipv4dhcpd-fmt-specifier; description "Argument"; } leaf argument2 { type Ipv4dhcpd-fmt-specifier; description "Argument"; } leaf argument3 { type Ipv4dhcpd-fmt-specifier; description "Argument"; } leaf argument4 { type Ipv4dhcpd-fmt-specifier; description "Argument"; } leaf argument5 { type Ipv4dhcpd-fmt-specifier; description "Argument"; } leaf argument6 { type Ipv4dhcpd-fmt-specifier; description "Argument"; } leaf argument7 { type Ipv4dhcpd-fmt-specifier; description "Argument"; } leaf argument8 { type Ipv4dhcpd-fmt-specifier; description "Argument"; } leaf argument9 { type Ipv4dhcpd-fmt-specifier; description "Argument"; } leaf argument10 { type Ipv4dhcpd-fmt-specifier; description "Argument"; } leaf argument11 { type Ipv4dhcpd-fmt-specifier; description "Argument"; } leaf argument12 { type Ipv4dhcpd-fmt-specifier; description "Argument"; } leaf argument13 { type Ipv4dhcpd-fmt-specifier; description "Argument"; } leaf argument14 { type Ipv4dhcpd-fmt-specifier; description "Argument"; } leaf argument15 { type Ipv4dhcpd-fmt-specifier; description "Argument"; } leaf argument16 { type Ipv4dhcpd-fmt-specifier; description "Argument"; } } // container server-dhcp-circuit-id leaf profile { type string; description "Interface profile name"; } } // container server-interface container snoop-interface { description "DHCP IPv4 snoop information"; container snoop-circuit-id { description "Configure circuit ID for snoop 1. Hex 2. ASCII"; leaf format-type { type uint32 { range "1..2"; } description "Format type, 1. Hex 2. ASCII"; } leaf circuit-id-value { type string; description "Enter circuit-id value"; } } // container snoop-circuit-id } // container snoop-interface leaf interface-name { type xr:Interface-name; description "Interface Name"; } } // list interface } // container interfaces container duplicate-mac-allowed { presence "Indicates a duplicate-mac-allowed node is configured."; description "Allow Duplicate MAC Address"; leaf duplicate-mac { type empty; mandatory true; description "Duplicate mac is allowed"; } leaf exclude-vlan { type empty; description "Exclude vlan"; } leaf include-giaddr { type empty; description "Include giaddr"; } } // container duplicate-mac-allowed container rate-limit { description "Rate limit ingress packets"; leaf num-period { type uint32 { range "1..1000"; } default "200"; description "Rate limiter period in msec (default: 200 msec)"; } leaf num-discover { type uint32 { range "0..1000"; } default "100"; description "Max DISCOVER packets per rate-limiter period (default 100)"; } } // container rate-limit leaf enable { type empty; mandatory true; description "DHCP IPV4 configuration"; } leaf outer-cos { type uint32 { range "0..7"; } description "Configure outer cos values for dhcp packets"; } leaf allow-client-id-change { type empty; description "For BNG session, allow client id change for a client MAC"; } leaf inner-cos { type uint32 { range "0..7"; } description "Configure inner cos values for dhcp packets"; } leaf disable-shadow-binding { type empty; description "Option to disable shadow binding"; } } // container ipv4-dhcpd } // module Cisco-IOS-XR-ipv4-dhcpd-cfg
© 2024 YumaWorks, Inc. All rights reserved.