Dynamic Host Configuration Protocol for IPv6.
Version: 2021-09-04
module huawei-dhcpv6 { yang-version 1; namespace "urn:huawei:yang:huawei-dhcpv6"; prefix dhcpv6; import huawei-extension { prefix ext; } import ietf-inet-types { prefix inet; } import huawei-ifm { prefix ifm; } import huawei-ethernet { prefix ethernet; } import huawei-network-instance { prefix ni; } import huawei-l3vpn { prefix l3vpn; } import huawei-pub-type { prefix pub-type; } include huawei-dhcpv6-relay; organization "Huawei Technologies Co., Ltd."; contact "Huawei Industrial Base Bantian, Longgang Shenzhen 518129 People's Republic of China Website: http://www.huawei.com Email: support@huawei.com"; description "Dynamic Host Configuration Protocol for IPv6."; revision "2021-09-04" { description "Add must condition."; reference "Huawei private."; } revision "2020-03-09" { description "Modify description."; reference "Huawei private."; } revision "2020-02-25" { description "Initial revision."; reference "Huawei private."; } ext:task-name "dhcp"; typedef dhcpv6-duid { type enumeration { enum "invalid" { value 0; description "-"; } enum "llt" { value 1; description "Link-layer address plus time."; } enum "ll" { value 2; description "Link-layer address."; } enum "user-defined" { value 3; description "User-defined."; } } description "The type of DHCPv6 DUID."; } typedef remote-id-format { type enumeration { enum "default" { value 0; description "Default format."; } enum "user-defined" { value 1; description "User-defined format."; } } description "The type of DHCPv6 remote-id format."; } container dhcpv6 { description "Configure a Dynamic Host Configuration Protocol for IPv6."; container common { description "Configure basic attributes."; container global { description "Configure DHCPv6 global attributes."; leaf enable { type boolean; default "true"; description "Enable/disable Dynamic Host Configuration Protocol for IPv6."; } leaf duid-format { type dhcpv6-duid; must "(../duid-format = 'user-defined' and ../duid-string) or (../duid-format != 'user-defined')"; default "invalid"; description "DHCPv6 unique identifier format."; } leaf duid-string { when "../duid-format='user-defined'"; type string { length "8..28"; pattern '([^\t]{8,})'; } description "DUID string, in hexadecimal notation."; } leaf rate-limit-enable { type boolean; default "true"; description "Enable/disable DHCPv6 packets rate limit."; } leaf rate-limit { type uint32 { range "1..2000"; } units "pps"; default "512"; description "DHCPv6 packets rate limit value."; } leaf source-ip-adaptive { type boolean; default "false"; description "Enable/disable DHCPv6 source-ip-address format adaptive."; } leaf aging-time { type uint32 { range "1..1440"; } units "min"; default "30"; description "DHCPv6 session CAR aging time."; } leaf active-duid { type string { length "8..28"; pattern '([^\t]{8,})'; } config false; description "DUID string, in hexadecimal notation."; } } // container global container session-car { must "pir-value >= cir-value and pbs-value >= cbs-value"; description "Configure session CAR."; leaf enable { type boolean; default "true"; description "Enable/disable session CAR."; } leaf cir-value { type uint32 { range "0..1000000"; } units "kbit/s"; default "256"; description "Specify the session CAR CIR value."; } leaf cbs-value { type uint32 { range "0..9000000"; } units "Byte"; default "32000"; description "Specify the session CAR CBS value."; } leaf pir-value { type uint32 { range "0..1000000"; } units "kbit/s"; default "512"; description "Specify the session CAR PIR value."; } leaf pbs-value { type uint32 { range "0..9000000"; } units "Byte"; default "64000"; description "Specify the session CAR PBS value."; } } // container session-car container ipsec-peers { description "List of DHCPv6 IPsecs."; list ipsec-peer { must "(peer-address='::' and vpn-name='_public_') or (peer-address!='::')"; key "peer-address vpn-name"; description "Configure DHCPv6 IPsec attributes."; leaf peer-address { type inet:ipv6-address-no-zone; description "Peer address."; } leaf vpn-name { type leafref { path "/ni:network-instance/ni:instances/ni:instance/ni:name"; } must "(/ni:network-instance/ni:instances/ni:instance[ni:name=current()]/l3vpn:afs/l3vpn:af[l3vpn:type='ipv6-unicast'])"; description "VPN name."; } leaf sa-name { type string { length "1..15"; } mandatory true; description "SA name."; } } // list ipsec-peer } // container ipsec-peers } // container common container relay { description "Configure DHCPv6 Relay."; container pd-route { description "Configure DHCPv6 PD route."; leaf export { type boolean; default "false"; description "Enable/disable DHCPv6 export PD route."; } leaf save-file-name { type string { length "12..69"; pattern '(\S+:\S*/dhcp/\S+\.pd)'; } description "Name of the file for saving PD routes. For example, the name can be in the format of cfcard:/dhcp/xxx.pd or home:/dhcp/xxx.pd, where xxx can be any characters."; } leaf write-route-delay { type uint32 { range "1..1440"; } units "min"; default "5"; description "The delay time for saving PD routes."; } leaf write-route-number { type uint32 { range "40960..1310720"; } default "40960"; description "The number for saving PD routes. Only 40960 userinfo table items can be written to a board with memory less than 16 GB, and other boards support 1310720 userinfo table items."; } leaf access-limit { type uint32 { range "40960..655360"; } description "Maximum number of access users."; } leaf file-authentication-mode { type relay-file-authentication-mode; default "check"; description "Set file authentication mode."; } } // container pd-route container server-groups { description "List of DHCPv6 relay server groups."; list server-group { key "name"; max-elements 10; description "Configure a DHCPv6 relay server group."; leaf name { type string { length "1..32"; } description "DHCPv6 relay server group name."; } container server-addresses { description "List of DHCPv6 relay destination servers in a server group."; list server-address { key "server"; max-elements 20; description "Configure a DHCPv6 relay destination server in a server group."; leaf server { type inet:ipv6-address-no-zone; description "DHCPv6 relay destination server address in a server group."; } } // list server-address } // container server-addresses } // list server-group } // container server-groups container global-packet-statistics { config false; description "Statistics of a DHCPv6 relay global packet."; leaf received-from-clients { type uint32; description "Packets received from clients."; } leaf solicit-received { type uint32; description "Solicit packets received from clients."; } leaf request-received { type uint32; description "Request packets received from clients."; } leaf confirm-received { type uint32; description "Confirm packets received from clients."; } leaf renew-received { type uint32; description "Renew packets received from clients."; } leaf rebind-received { type uint32; description "Rebind packets received from clients."; } leaf decline-received { type uint32; description "Decline packets received from clients."; } leaf release-received { type uint32; description "Release packets received from clients."; } leaf inform-received { type uint32; description "Information-request packets received from clients."; } leaf received-from-relay-agents-or-servers { type uint32; description "Packets received from relay agents or servers."; } leaf relay-forward-received { type uint32; description "Relay-forward packets received from relay agents or servers."; } leaf relay-reply-received { type uint32; description "Relay-reply packets received from relay agents or servers."; } leaf sent-to-clients { type uint32; description "Packets sent to clients."; } leaf advertise-send { type uint32; description "Advertise packets sent to clients."; } leaf reply-send { type uint32; description "Relay-reply packets sent to clients."; } leaf reconfig-send { type uint32; description "Reconfigure packets sent to clients."; } leaf sent-to-relay-agents-or-servers { type uint32; description "Packets sent to relay agents or servers."; } leaf relay-forward-send { type uint32; description "Relay-forward packets sent to relay agents or servers."; } leaf relay-reply-send { type uint32; description "Relay-reply packets sent to relay agents or servers."; } leaf bad-packets-received { type uint32; description "Error packets received."; } leaf total-drop-packets { type uint32; description "Total dropped packets."; } leaf drop-packets-for-table-full { type uint32; description "Packets discarded because the table is full."; } leaf drop-packets-for-general-error { type uint32; description "Packets discarded due to general errors."; } leaf drop-packets-for-ipsec-authentication-fail { type uint32; description "Packets discarded due to IPsec authentication failures."; } } // container global-packet-statistics container user-infos { config false; description "List of user informations."; list user-info { key "index"; description "Operational state of user informations."; leaf index { type uint32; description "User index."; } leaf client-duid { ext:support-filter "true"; type string { length "1..256"; } description "Client DUID."; } leaf iaid { type uint32; default "0"; description "Identity association identifier."; } leaf ia-type { type ia-type; description "Identity association type."; } leaf server-duid { ext:support-filter "true"; type string { length "1..256"; } description "Server DUID."; } leaf server-address { ext:support-filter "true"; type inet:ipv6-address-no-zone; description "Server IPv6 address."; } leaf if-name { ext:support-filter "true"; type leafref { path "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:name"; } description "Interface name."; } leaf pe-vlan { type uint16; default "1"; description "PE VLAN ID."; } leaf ce-vlan { type uint16; description "CE VLAN ID."; } leaf vpn-name { ext:support-filter "true"; type leafref { path "/ni:network-instance/ni:instances/ni:instance/ni:name"; } description "VPN name."; } leaf client-mac { ext:support-filter "true"; type pub-type:mac-address; description "Client MAC address."; } leaf rapid-commit { type rapid-commit-flag-type; description "Rapid Commit option."; } leaf transaction-id { type uint32; description "Transaction ID."; } leaf info-transaction-id { type uint32; description "Info transaction ID."; } container iana-infos { description "List of identifying association for non-temporary addresses."; list iana-info { key "ipv6-address"; description "Operational state of identifying association for non-temporary addresses."; leaf ipv6-address { ext:support-filter "true"; type inet:ipv6-address-no-zone; description "IPv6 address."; } leaf server-duid { type string { length "1..256"; } description "Server DUID."; } leaf server-address { type inet:ipv6-address-no-zone; description "Server IPv6 address."; } leaf valid-time { type string { length "0..30"; } description "Valid time."; } leaf lease { type uint32; units "s"; description "Lease time."; } leaf remain-lease { type uint32; units "s"; description "Remaining lease."; } leaf status { type relay-table-status; description "Table status."; } } // list iana-info } // container iana-infos container iapd-infos { description "List of identifying association for prefix delegation."; list iapd-info { key "ipv6-address"; description "Operational state of identifying association for prefix delegation."; leaf ipv6-address { ext:support-filter "true"; type inet:ipv6-address-no-zone; description "IPv6 address."; } leaf prefix { type uint32; description "IPv6 address prefix."; } leaf server-duid { type string { length "1..256"; } description "Server DUID."; } leaf server-address { type inet:ipv6-address-no-zone; description "Server IPv6 address."; } leaf valid-time { type string { length "0..30"; } description "Valid time."; } leaf lease { type uint32; units "s"; description "Lease time."; } leaf remain-lease { type uint32; units "s"; description "Remaining lease."; } leaf status { type relay-table-status; description "Table status."; } } // list iapd-info } // container iapd-infos } // list user-info } // container user-infos } // container relay } // container dhcpv6 } // module huawei-dhcpv6
© 2023 YumaWorks, Inc. All rights reserved.