RIPng Component.
Version: 2021-01-11
module huawei-ripng { yang-version 1; namespace "urn:huawei:yang:huawei-ripng"; prefix ripng; import huawei-network-instance { prefix ni; } import huawei-l3vpn { prefix l3vpn; } import huawei-ifm { prefix ifm; } import huawei-routing-policy { prefix rtp; } import huawei-acl { prefix acl; } import huawei-xpl { prefix xpl; } import huawei-pub-type { prefix pub-type; } import ietf-inet-types { prefix inet; } import huawei-extension { prefix ext; } import huawei-ip { prefix ip; } include huawei-ripng-type; 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 "RIPng Component."; revision "2021-01-11" { description "Add a new dependency."; reference "Huawei private."; } revision "2020-06-17" { description "Add leaf units."; reference "Huawei private."; } revision "2020-03-13" { description "Modify the format specification."; reference "Huawei private."; } revision "2020-03-03" { description "Modify the description."; reference "Huawei private."; } revision "2020-01-14" { description "Modify node name."; reference "Huawei private."; } revision "2020-01-03" { description "Add container import route and preference."; reference "Huawei private."; } revision "2019-12-23" { description "Add container interface."; reference "Huawei private."; } revision "2019-11-25" { description "Initial revision."; reference "Huawei private."; } ext:task-name "ripng"; rpc reset-ripng-statistics { ext:node-ref "/ni:network-instance/ni:instances/ni:instance/ripng:ripng/ripng:processs/ripng:process/ripng:statistics"; description "Reset RIPng statistical information."; input { leaf process-id { type uint32 { range "1..4294967295"; } description "Specify the RIPng process which needs to be reset."; } leaf interface { type leafref { path "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:name"; } must "../process-id"; description "Specify the interface on which statistics needs to be cleared."; } leaf neighbor-address { type inet:ipv6-address-no-zone; must "../interface"; description "Specify the neighbor IPv6 address."; } } } // rpc reset-ripng-statistics augment /ni:network-instance/ni:instances/ni:instance { description "RIPng augment to L3VPN."; container ripng { when "../l3vpn:afs/l3vpn:af[l3vpn:type='ipv6-unicast']"; description "Configure RIPng Component."; container processs { description "List of RIPng processes."; list process { key "id"; description "Configure a RIPng process."; leaf id { type uint32 { range "1..4294967295"; } description "Specify a RIPng process ID."; } leaf description { type string { length "1..80"; } description "Specify a description for a RIPng process. The description is used to identify a RIPng process. You can configure a meaningful name, which helps understanding the configuration."; } leaf check-zero { type enable-flag; default "enable"; description "In general, RIPng routers will reject all the RIPngv1 packets containing non-zero bits in the MBZ fields. This configuration is applied only for RIPngv1 packets."; } leaf maximum-load-balancing { ext:dynamic-default; type uint8 { range "1..128"; } description "You can configure the maximum number of equal-cost routes for load balancing. This does not limit the number of equal-cost routes that RIPng can learn. RIPng will store all the received ECMP routes. The default value of the number of equal-cost routes may vary with products and licenses. You can adjust the default value by purchasing a new license. If the value is configured twice, the second one overrides the first one."; } leaf default-cost { type uint8 { range "0..15"; } default "0"; description "The default cost is used when RIPng imports routes from other routing protocols, and no cost is specified through a route-policy or the cost parameter. Triggered update will be sent if the cost of any of the imported route changes due to the default cost configuration."; } container import-routes { description "List of routes which learned from multiple routing protocols can be imported to one RIPng process."; list import-route { key "protocol process-id"; description "Configure the protocol from which routes are imported."; leaf protocol { type import-protocol-type; description "Specify the type of routing protocol imported to RIPng process."; } leaf process-id { type uint32 { range "1..4294967295"; } must "(../protocol!='isis' and ../protocol!='ospfv3' and ../protocol!='ripng' and ../process-id=1) or not(../protocol!='isis' and ../protocol!='ospfv3' and ../protocol!='ripng' or ../protocol='bgp' or ../protocol='direct' or ../protocol='static' or ../protocol='unr')"; description "Specify the process ID of the protocol from which routes are imported. The value can be RIPng OSPFv3 or IS-IS."; } choice policy-type { description "Specify the policy type for import route."; case route-policy { description "Set a route-policy name."; leaf route-policy { type leafref { path "/rtp:routing-policy/rtp:policy-definitions/rtp:policy-definition/rtp:name"; } description "Specify the name of the route policy to be used during route import."; } } // case route-policy case route-filter { description "Set a route policy name."; leaf route-filter { type leafref { path "/xpl:xpl/xpl:route-filters/xpl:route-filter/xpl:name"; } description "Name of a routing Filter The value is a string of 1 to 585 characters."; } } // case route-filter } // choice policy-type choice cost-type { description "Specify the cost used for the imported route."; case cost { description "Specify the cost used for the imported route."; leaf cost { type uint16 { range "0..15"; } description "Specify the cost used for the imported route. The cost and the tag value of the routes imported to RIPng may be specified in the policy. If no cost is specified in the policy, the routes are imported into RIPng with the cost specified in the command. If no cost is specified either in the command or policy, the configured default cost is used. If no tag value is specified in the policy, the tag value specified by the RM module is used. If the route tag specified by the RM module overflows 2 bytes, zero is used as the route tag."; } } // case cost case inherit-cost { description "Retain the original cost of the imported route."; leaf inherit-cost { type enable-flag; default "disable"; description "Retain the original cost of the imported route."; } } // case inherit-cost } // choice cost-type leaf permit-ibpg { type enable-flag; must "../protocol='bgp' and ../../../../../../ni:name='_public_'"; description "IBGP routes will be imported to the RIPng process."; } } // list import-route } // container import-routes container timer { description "Configure a timer for a process."; leaf garbage { type uint32 { range "1..86400"; } units "s"; default "120"; description "When the specified device detects that the route is unreachable,specify the interval for the device to delete a route from the routing table."; } leaf periodic { type uint32 { range "1..86400"; } units "s"; default "30"; description "Specify the periodic timer in seconds. RIPng will send route updates periodically at this configured interval."; } leaf age { type uint32 { range "1..86400"; } units "s"; default "180"; description "Specify the age timer. Routes will be considered unreachable after this interval. In most cases, the age timer is three times the update timer."; } leaf suppress { type uint32 { range "0..86400"; } units "s"; default "0"; description "A route is suppressed after it ages and becomes unreachable. During the suppression time, no route update is accepted to prevent route flapping. The values of these timers should follow the rule: update < age and suppress < garbage-collect. For example, when the update timer is longer than the age timer, the router cannot inform its neighbors of the change in time if a RIPng route changes during the update timer. This configuration should be used carefully as any parameter change can cause route flapping and can increase the convergence time considerably. If the network is quite stable, you can increase the timer values."; } } // container timer container preference { description "Configure a preference value."; leaf value { type uint8 { range "1..255"; } default "100"; description "The configured priority applies to the routes to be delivered to the RM module. If RIP has added a route to the RM module, and then the priority is changed, RIP re-adds it with the new priority. The prerequisites for the priority configuration are as follows: 1. A RIP process has been created. 2. The policy to be applied has been configured."; } choice policy-type { description "Specify the policy type for prefererence."; case route-policy { description "Set a route policy name."; leaf route-policy { type leafref { path "/rtp:routing-policy/rtp:policy-definitions/rtp:policy-definition/rtp:name"; } description "You can set a priority for the routes that match the policy, and the result is displayed in the routing table of the RM module. The prerequisites for the priority configuration are as follows: 1. A RIP process has been created. 2. The policy to be applied has been configured."; } } // case route-policy case route-filter { description "Set a route filter name."; leaf route-filter { type leafref { path "/xpl:xpl/xpl:route-filters/xpl:route-filter/xpl:name"; } description "Name of a routing Filter The value is a string of 1 to 585 characters."; } } // case route-filter } // choice policy-type } // container preference container interfaces { description "List of the interfaces in a RIPng process."; list interface { key "name"; description "Configure a RIPng interface."; leaf name { type leafref { path "/ifm:ifm/ifm:interfaces/ifm:interface/ifm:name"; } must "../../../../../../ni:name=/ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ifm:vrf-name and /ifm:ifm/ifm:interfaces/ifm:interface[ifm:name=current()]/ip:ipv6"; description "Specify the name of the interface on which RIPng is to be configured."; } leaf input { type enable-flag; default "enable"; description "If the input is disabled, then no RIPng packets will be received on that interface regardless of the unicast neighbor and silent configuration on that interface. When input is disabled and then enabled, it will send full table request packets."; } leaf output { type enable-flag; default "enable"; description "If output is disabled, then no RIPng packets will be sent on that interface regardless of the unicast neighbor and silent configuration on that interface. But if the max-route configuration changes, RIPng requests may be sent regardless of the silent configuration on that interface."; } leaf split-horizon { type enable-flag; default "enable"; description "Split horizon prevents a route from being advertised back on the interface from which was learned. Split horizon is not enabled on NBMA or P2MP interfaces because they have multiple neighbors."; } leaf poison-reverse { type enable-flag; default "disable"; description "Poison reverse is disabled by default. Poison reverse can be enabled to advertise routes with infinite metric (16) on the interface from which the routes were learned. When both split horizon and poison reverse is configured, poison reverse will have a higher priority."; } leaf pkt-transmit-interval { type uint16 { range "50..500"; } default "200"; description "Interval at which packets are transmitted."; } leaf pkt-transmit-number { type uint8 { range "25..100"; } default "30"; description "Number of packets that can be sent from an interface each time."; } leaf default-route-type { type default-route; default "none"; description "Configure the router to generate a default route and to advertise the route to its neighbors. If a router generates a default route by itself, it does not receive the default route sent by its neighbor. You can send a default route to RIPng neighbors only if a default route exists in the routing table (provided the default route in routing table was not added by the same RIPng process). In addition, if a router has learned the default route from a neighbor, then upon originating a default route the learned route is deleted."; } leaf default-route-cost { when "not(../default-route-type='none')"; type uint8 { range "0..15"; } default "0"; description "Specify the cost to be used while generating a default route. If a metric out value is applicable on the interface, then the advertised metric value is the sum of the cost and the metric out."; } leaf default-route-tag { when "not(../default-route-type='none')"; type uint16 { range "0..65535"; } default "0"; description "Define a tag value for the default route's identification."; } container metricin { description "Configure the metric configured on a RIPng interface."; leaf value { type uint8 { range "0..15"; } default "0"; description "Metricin is the mechanism to increase the incoming metric of routes learned through RIPng. When RIPng receives a route, the metric value configured on that interface is added before adding it to the RIPng routing table. After the metric is added, if the metric is greater than 16, 16 is used as the metric."; } } // container metricin container metricout { description "Configure the metricout on a RIPng interface."; leaf value { type uint8 { range "1..15"; } default "1"; description "When RIPng advertises a route, the metric value configured on an interface is added before sending the route. After the metric is added, if the value is greater than 16, 16 is used as the metric. When an ACL or IP prefix list is configured in the metricout command, the metric is applied only to those routes that match the ACL or IP prefix list. All other routes are sent with the default cost (1)."; } choice policy-type { description "Mode of the policy used for import route."; case ip-prefix { description "Set a name of the IP prefix list."; leaf ip-prefix { when "../value>1"; type leafref { path "/rtp:routing-policy/rtp:ipv6-prefix-filters/rtp:ipv6-prefix-filter/rtp:name"; } description "Specify the name of the IP prefix list to be configured along with metric out."; } } // case ip-prefix case acl-number { description "Set a number of the basic ACL."; leaf acl-number { when "../value>1"; type leafref { path "/acl:acl/acl:group6s/acl:group6/acl:identity"; } must "/acl:acl/acl:group6s/acl:group6[acl:identity=current()]/acl:type='basic'"; description "Specify the number of the basic ACL to be configured along with metric out."; } } // case acl-number case acl-name { description "Set a name of the basic ACL."; leaf acl-name { when "../value>1"; type leafref { path "/acl:acl/acl:group6s/acl:group6/acl:identity"; } must "/acl:acl/acl:group6s/acl:group6[acl:identity=current()]/acl:type='basic'"; description "Specify the name of the basic ACL to be configured along with metric out. When an ACL or IP prefix list is configured in the metricout command, the metric is applied only to those routes that match the ACL or IP prefix list. All other routes are sent with the default cost (1)."; } } // case acl-name } // choice policy-type } // container metricout container summarys { description "List of summary addresses configured for the interface."; list summary { key "address network-mask"; max-elements 128; description "Configure a summary class."; leaf address { type inet:ipv6-address-no-zone; description "Route summarization improves the scalability and efficiency of routers on large networks and reduces the routing table size. Instead of sending many routes to neighbors, a router sends only the route to the specified summarized address."; } leaf network-mask { type uint8 { range "0..128"; } description "Specify the mask for the summary address."; } leaf avoid-feedback { type enable-flag; default "disable"; description "Prevent summarized routes from being sent back to the interface."; } } // list summary } // container summarys } // list interface } // container interfaces container neighbor-infos { config false; description "List of the information for the unicast neighbor."; list neighbor-info { key "address interface-name"; description "Operational data of the information for the unicast neighbor."; leaf address { type inet:ipv6-address-no-zone; description "The address of a neighbor."; } leaf interface-name { type pub-type:if-name; description "The interface information of a neighbor."; } leaf active-routes-number { type uint32 { range "0..4294967295"; } description "The number of active RIPng routes."; } leaf holddown-routes-number { type uint32 { range "0..4294967295"; } description "The number of holddown routes."; } leaf garbage-routes-number { type uint32 { range "0..4294967295"; } description "The number of garbage routes."; } } // list neighbor-info } // container neighbor-infos container routes { config false; description "List of information about all the routes on the peer."; list route { key "peer-address interface-name destination mask-length nexthop"; description "Operational data of the route on the peer."; leaf peer-address { type inet:ipv6-address-no-zone; description "Neighbor that is connected to the interface."; } leaf interface-name { type pub-type:if-name; description "Interface on which a neighbor was present."; } leaf destination { type inet:ipv6-address-no-zone; description "Destination IP address."; } leaf mask-length { type uint8 { range "0..128"; } description "Mask length of the route."; } leaf nexthop { type inet:ipv6-address-no-zone; description "Next hop of the route."; } leaf cost { type uint8 { range "1..255"; } description "Cost of the route."; } leaf tag { type uint16 { range "0..65535"; } description "Tag of the route."; } leaf flags { type string { length "1..4"; } description "First character to distinguish RIPng routes from TRIP routes and the second character to indicate the route state."; } leaf state-time { type uint32 { range "0..4294967295"; } units "s"; description "Time during which a route remains in a specific state, Unit: second."; } } // list route } // container routes container interface-packets-statisticss { config false; description "List of Updates and packets statistics for interface."; list interface-packets-statistics { key "interface-name"; description "Statistics of Updates and packets statistics for interface."; leaf interface-name { type pub-type:if-name; description "Collect statistics on packets on the interface."; } leaf ip-address { ext:support-filter "true"; type inet:ipv6-address-no-zone; description "IP address of the interface."; } leaf periodic-updates-sent-last-minutes { type uint32 { range "0..4294967295"; } description "Number of periodic Update packets within the last 1 minute that are sent by the interface."; } leaf periodic-updates-sent-last-five-minutes { type uint32 { range "0..4294967295"; } description "Number of periodic Update packets within the last 5 minute that are sent by the interface."; } leaf periodic-updates-sent-total { type uint32 { range "0..4294967295"; } description "Number of total periodic Update packets that are sent by the interface."; } leaf triggered-updates-sent-last-minutes { type uint32 { range "0..4294967295"; } description "Number of triggered Update packets within the last 1 minute that are sent by the interface."; } leaf triggered-updates-sent-last-five-minutes { type uint32 { range "0..4294967295"; } description "Number of triggered Update packets within the last 5 minute that are sent by the interface."; } leaf triggered-updates-sent-total { type uint32 { range "0..4294967295"; } description "Number of total triggered Update packets that are sent by the interface."; } leaf response-packets-sent-last-minutes { type uint32 { range "0..4294967295"; } description "Number of response packets within the last 1 minute that are sent by the interface."; } leaf response-packets-sent-last-five-minutes { type uint32 { range "0..4294967295"; } description "Number of response packets within the last 5 minute that are sent by the interface."; } leaf response-packets-sent-total { type uint32 { range "0..4294967295"; } description "Number of total response packets that are sent by the interface."; } leaf response-packets-received-last-minutes { type uint32 { range "0..4294967295"; } description "Number of response packets within the last 1 minute that are received by the interface."; } leaf response-packets-received-last-five-minutes { type uint32 { range "0..4294967295"; } description "Number of response packets within the last 5 minute that are received by the interface."; } leaf response-packets-received-total { type uint32 { range "0..4294967295"; } description "Number of total response packets that are received by the interface."; } leaf response-packets-ignored-last-minutes { type uint32 { range "0..4294967295"; } description "Number of response packets within the last 1 minute that are ignored by the interface."; } leaf response-packets-ignored-last-five-minutes { type uint32 { range "0..4294967295"; } description "Number of response packets within the last 5 minute that are ignored by the interface."; } leaf response-packets-ignored-total { type uint32 { range "0..4294967295"; } description "Number of total response packets that are ignored by the interface."; } leaf request-packets-sent-last-minutes { type uint32 { range "0..4294967295"; } description "Number of request packets within the last 1 minute that are sent by the interface."; } leaf request-packets-sent-last-five-minutes { type uint32 { range "0..4294967295"; } description "Number of request packets within the last 5 minute that are sent by the interface."; } leaf request-packets-sent-total { type uint32 { range "0..4294967295"; } description "Number of total request packets that are sent by the interface."; } leaf request-packets-received-last-minutes { type uint32 { range "0..4294967295"; } description "Number of request packets within the last 1 minute that are received by the interface."; } leaf request-packets-received-last-five-minutes { type uint32 { range "0..4294967295"; } description "Number of request packets within the last 5 minute that are received by the interface."; } leaf request-packets-received-total { type uint32 { range "0..4294967295"; } description "Number of total request packets that are received by the interface."; } leaf request-packets-ignored-last-minutes { type uint32 { range "0..4294967295"; } description "Number of request packets within the last 1 minute that are ignored by the interface."; } leaf request-packets-ignored-last-five-minutes { type uint32 { range "0..4294967295"; } description "Number of request packets within the last 5 minute that are ignored by the interface."; } leaf request-packets-ignored-total { type uint32 { range "0..4294967295"; } description "Number of total request packets that are ignored by the interface."; } leaf bad-packets-received-last-minutes { type uint32 { range "0..4294967295"; } description "Number of bad packets within the last 1 minute that are received by the interface."; } leaf bad-packets-received-last-five-minutes { type uint32 { range "0..4294967295"; } description "Number of bad packets within the last 5 minute that are received by the interface."; } leaf bad-packets-received-total { type uint32 { range "0..4294967295"; } description "Number of total bad packets that are received by the interface."; } leaf routes-received-last-minutes { type uint32 { range "0..4294967295"; } description "Number of routes within the last 1 minute that are received by the interface."; } leaf routes-received-last-five-minutes { type uint32 { range "0..4294967295"; } description "Number of routes within the last 5 minute that are received by the interface."; } leaf routes-received-total { type uint32 { range "0..4294967295"; } description "Number of total routes that are received by the interface."; } leaf routes-sent-last-minutes { type uint32 { range "0..4294967295"; } description "Number of routes within the last 1 minute that are sent by the interface."; } leaf routes-sent-last-five-minutes { type uint32 { range "0..4294967295"; } description "Number of routes within the last 5 minute that are sent by the interface."; } leaf routes-sent-total { type uint32 { range "0..4294967295"; } description "Number of total routes that are sent by the interface."; } leaf bad-routes-received-last-minutes { type uint32 { range "0..4294967295"; } description "Number of bad routes within the last 1 minute that are received by the interface."; } leaf bad-routes-received-last-five-minutes { type uint32 { range "0..4294967295"; } description "Number of bad routes within the last 5 minute that are received by the interface."; } leaf bad-routes-received-total { type uint32 { range "0..4294967295"; } description "Number of total bad routes that are received by the interface."; } leaf authentication-failed-packets-last-minutes { type uint32 { range "0..4294967295"; } description "Number of packets within the last 1 minute that fail to be authenticated."; } leaf authentication-failed-packets-last-five-minutes { type uint32 { range "0..4294967295"; } description "Number of packets within the last 5 minute that fail to be authenticated."; } leaf authentication-failed-packets-total { type uint32 { range "0..4294967295"; } description "Number of total packets that fail to be authenticated."; } leaf sent-failed-packets-last-minutes { type uint32 { range "0..4294967295"; } description "Number of packets within the last 1 minute that fail to be sent."; } leaf sent-failed-packets-last-five-minutes { type uint32 { range "0..4294967295"; } description "Number of packets within the last 5 minute that fail to be sent."; } leaf sent-failed-packets-total { type uint32 { range "0..4294967295"; } description "Number of total packets that fail to be sent."; } } // list interface-packets-statistics } // container interface-packets-statisticss container statistics { config false; description "Statistics of then major information for the process."; leaf routes-in-database { type uint32 { range "0..4294967295"; } description "Number of routes in the database."; } leaf interfaces-enabled { type uint32 { range "0..4294967295"; } description "Number of the interfaces on which is enabled."; } leaf trigger-updates-sent { type uint32 { range "0..4294967295"; } description "Number of sent triggered updates."; } leaf periodic-updates-sent { type uint32 { range "0..4294967295"; } description "Number of sent periodic updates."; } } // container statistics } // list process } // container processs } // container ripng } } // module huawei-ripng
© 2023 YumaWorks, Inc. All rights reserved.