From 094072e94877a38de8f4a0cd71af82575931b974 Mon Sep 17 00:00:00 2001 From: Y Bharath Date: Sat, 29 Mar 2025 19:31:54 +0530 Subject: [PATCH] yang: Corrected pyang errors in frr-zebra.yang Corrected pyang warnings or errors in frr-zebra.yang Signed-off-by: y-bharath14 --- yang/frr-zebra.yang | 240 ++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 223 insertions(+), 17 deletions(-) diff --git a/yang/frr-zebra.yang b/yang/frr-zebra.yang index 72f3f7072e..4dd8e98ddb 100644 --- a/yang/frr-zebra.yang +++ b/yang/frr-zebra.yang @@ -79,6 +79,9 @@ module frr-zebra { revision 2019-06-01 { description "Initial revision."; + + reference + "FRRouting"; } feature ipv6-router-advertisements { @@ -188,6 +191,8 @@ module frr-zebra { "Multicast PIM-SM."; } } + description + "Type for VTEP flood type."; } /* @@ -317,7 +322,13 @@ module frr-zebra { */ grouping vni-information { + description + "Grouping for VNI information."; + choice type-choice { + description + "Choice between L2 and L3 VNI information."; + case l2 { leaf is-layer2 { type empty; @@ -383,6 +394,9 @@ module frr-zebra { */ grouping vni-l2-detail { + description + "Grouping for VNI L2 details."; + leaf if-index { type uint32; description @@ -402,6 +416,9 @@ module frr-zebra { } list remote-vtep-list { + description + "List of remote VTEPs."; + leaf remote-vtep { type inet:ipv4-address; description @@ -410,6 +427,8 @@ module frr-zebra { leaf vtep-flood { type vni-vtep-flood-type; + description + "VTEP flood type."; } } } @@ -419,6 +438,9 @@ module frr-zebra { */ grouping vni-l3-detail { + description + "Grouping for VNI L3 details."; + leaf svi-interface { type frr-interface:interface-ref; description @@ -459,6 +481,9 @@ module frr-zebra { */ grouping zebra-debugs { + description + "Grouping for Zebra debugging options."; + leaf debug-events { type boolean; description @@ -569,12 +594,19 @@ module frr-zebra { } grouping ribs { + description + "Grouping for RIBs supported by FRR."; + container ribs { config false; description "RIBs supported by FRR."; list rib { key "afi-safi-name table-id"; + + description + "List of RIBs, each with a specific AFI/SAFI name and table ID."; + leaf afi-safi-name { type identityref { base frr-rt:afi-safi-type; @@ -585,13 +617,16 @@ module frr-zebra { leaf table-id { type uint32; - default "254"; description "Routing Table id (default id - 254)."; } list route { key "prefix"; + + description + "List of routes, each with a specific prefix."; + leaf prefix { type inet:ip-prefix; description @@ -600,6 +635,10 @@ module frr-zebra { list route-entry { key "protocol"; + + description + "List of route entries, each owned by a specific protocol."; + leaf protocol { type frr-route-types:frr-route-types; description @@ -647,6 +686,9 @@ module frr-zebra { "Retrieve IPv4 or IPv6 unicast routes."; input { choice ip-type { + description + "Choice between retrieving IPv4 routes and retrieving IPv6 routes."; + case v4 { leaf ipv4 { type empty; @@ -685,6 +727,10 @@ module frr-zebra { } choice vrf-choice { + description + "Choice between retrieving routes in a non-default VRF or | + retrieving routes from all VRFs."; + case single { leaf vrf { type frr-vrf:vrf-ref; @@ -732,6 +778,10 @@ module frr-zebra { } choice detail { + description + "Choice between including detailed information and | + including summary information only."; + case det { leaf include-detail { type empty; @@ -752,11 +802,17 @@ module frr-zebra { // End of input output { choice route-list { + description + "Choice between IPv4 route information and IPv6 route information."; + case v4 { container routes-v4 { description "IPv4 route information."; list route { + description + "List of IPv4 routes."; + uses ip4-route; } } @@ -767,6 +823,9 @@ module frr-zebra { description "IPv6 route information."; list route { + description + "List of IPv6 routes."; + uses ip6-route; } } @@ -783,6 +842,10 @@ module frr-zebra { "Retrieve IPv6 multicast routes."; input { choice vrf-choice { + description + "Choice between retrieving routes in a non-default VRF or | + retrieving routes from all VRFs."; + case single { leaf vrf { type frr-vrf:vrf-ref; @@ -806,6 +869,9 @@ module frr-zebra { description "IPv6 mcast route information."; list route { + description + "List of IPv6 routes."; + uses ip6-route; } } @@ -820,6 +886,10 @@ module frr-zebra { // Note: no input clause. output { list vrf-list { + description + "List of VRF information including name, user configuration status, | + VRF ID, and VRF type."; + leaf name { type frr-vrf:vrf-ref; description @@ -839,6 +909,10 @@ module frr-zebra { } choice vrf-type { + description + "Choice between specifying the VRF as inactive, associated with a net namespace, | + or associated with a table ID."; + case inactive { leaf is-inactive { type empty; @@ -875,6 +949,10 @@ module frr-zebra { // Note: no input clause. output { list vrf-vni-list { + description + "List of VRF VNI information including VRF name, EVPN VNI, VxLAN interface name, | + SVI interface name, router MAC address, and state."; + leaf vrf-name { type frr-vrf:vrf-ref; description @@ -971,6 +1049,10 @@ module frr-zebra { } choice dad-freeze-choice { + description + "Choice between setting duplicate address detection | + freeze to permanent or specifying a timer."; + case freeze-permanent { leaf dad-freeze-perm { type empty; @@ -994,10 +1076,16 @@ module frr-zebra { // End get-evpn-info rpc get-vni-info { + description + "Retrieve information about EVPN VNIs."; + // If no vni is specified, retrieve global list. input { choice vni-choice { default "all-vnis"; + description + "Choice between retrieving information about all VNIs or a specific EVPN VNI."; + case all-vnis { leaf all-vnis { type empty; @@ -1029,6 +1117,9 @@ module frr-zebra { uses vni-information; choice detail-choice { + description + "Choice between detailed L2 or L3 information."; + case l2 { description "Detailed L2 information."; @@ -1053,6 +1144,10 @@ module frr-zebra { input { choice vni-choice { default "all-vnis"; + description + "Choice between retrieving information about all VNIs or | + a specific EVPN VNI and a single RMAC address."; + case all-vnis { leaf all-vnis { type empty; @@ -1079,6 +1174,10 @@ module frr-zebra { output { list rmac-info-list { + description + "List of RMAC information including RMAC address, remote VTEP IP address, | + refcount, and associated IP prefixes."; + leaf rmac { type yang:mac-address; description @@ -1098,6 +1197,9 @@ module frr-zebra { } list prefix-list { + description + "List of IP prefixes associated with the RMAC."; + leaf prefix-item { type inet:ip-prefix; description @@ -1116,6 +1218,10 @@ module frr-zebra { input { choice vni-choice { default "all-vnis"; + description + "Choice between retrieving information about all VNIs or | + a specific EVPN VNI and a single host IP address."; + case all-vnis { leaf all-vnis { type empty; @@ -1142,6 +1248,9 @@ module frr-zebra { output { list nh-info-list { + description + "List of nexthop information including IP address, MAC address, and refcount."; + leaf ip-addr { type inet:ip-address; description @@ -1161,6 +1270,9 @@ module frr-zebra { } list prefix-list { + description + "List of IP prefixes associated with the RMAC."; + leaf prefix-item { type inet:ip-prefix; description @@ -1178,6 +1290,11 @@ module frr-zebra { "Clear duplicate address detection state for one or all VNIs."; input { choice clear-dup-choice { + description + "Choice between clearing all VNIs or | + clearing state for a single EVPN VNI | + and a specific MAC or IP address."; + case all-case { leaf all-vnis { type empty; @@ -1225,6 +1342,11 @@ module frr-zebra { input { choice all-choice { default "all-vni"; + description + "Choice between retrieving information for all VNIs or | + including detailed results, a single VTEP address, or | + showing duplicate addresses."; + case all-vni { leaf all-vnis { type empty; @@ -1233,6 +1355,10 @@ module frr-zebra { } choice all-choices { + description + "Choice between including detailed results, a single VTEP address, | + or showing duplicate addresses."; + case detail-case { leaf all-detail { type empty; @@ -1267,6 +1393,10 @@ module frr-zebra { } choice single-choices { + description + "Choice between including detailed results, a specific MAC address, | + a single VTEP address, or showing duplicate addresses."; + case detail-case { leaf single-detail { type empty; @@ -1305,6 +1435,9 @@ module frr-zebra { // End of input section output { list mac-list { + description + "List of MAC addresses."; + leaf mac-addr { type yang:mac-address; description @@ -1348,6 +1481,9 @@ module frr-zebra { } container dup-detect-started { + description + "Container for duplicate detection process start time and count."; + leaf dup-detect-start { type unix-timestamp; description @@ -1386,6 +1522,9 @@ module frr-zebra { } list neighbor-list { + description + "List of neighbor addresses."; + leaf neighbor-addr { type inet:ip-address; description @@ -1406,6 +1545,9 @@ module frr-zebra { } choice local-rem-choice { + description + "Choice between local interface and VLAN or remote VTEP IP address."; + case local-case { leaf intf { type frr-interface:interface-ref; @@ -1440,6 +1582,8 @@ module frr-zebra { input { choice all-choice { default "all-vni"; + description + "Choice between retrieving information for all VNIs or including detailed results or showing duplicates."; case all-vni { leaf all-vnis { type empty; @@ -1448,6 +1592,9 @@ module frr-zebra { } choice all-choices { + description + "Choice between including detailed results or showing duplicates."; + case detail-case { leaf all-detail { type empty; @@ -1474,6 +1621,9 @@ module frr-zebra { } choice single-choices { + description + "Choice between single VTEP, neighbor address, or show duplicates."; + case vtep-case { leaf single-vtep { type inet:ipv4-address; @@ -1504,6 +1654,9 @@ module frr-zebra { // End input section output { list vni-list { + description + "List of VNI containers."; + container vni-container { description "Information for one VNI."; @@ -1535,6 +1688,9 @@ module frr-zebra { } choice local-remote-choice { + description + "Choice between local and remote entries."; + case local-case { leaf is-local { type empty; @@ -1596,6 +1752,9 @@ module frr-zebra { // End get-evpn-arp-cache rpc get-pbr-ipset { + description + "RPC to retrieve PBR IP set."; + input { leaf name { type string { @@ -1608,6 +1767,9 @@ module frr-zebra { output { list ipset-list { + description + "List of IP sets."; + leaf name { type string { length "1..32"; @@ -1621,24 +1783,26 @@ module frr-zebra { enum "net-net" { value 1; description - ""; + "Network to network IP set type."; } enum "net-port-net" { value 2; description - ""; + "Network to port to network IP set type."; } enum "net-port" { value 3; description - ""; + "Network to port IP set type."; } enum "net" { value 4; description - ""; + "Network IP set type."; } } + description + "Type of IP set."; } leaf src-prefix { @@ -1714,6 +1878,9 @@ module frr-zebra { } container ipset-stats { + description + "Container for IP set statistics."; + leaf is-unique { type empty; description @@ -1739,6 +1906,9 @@ module frr-zebra { // End get-pbr-ipset rpc get-pbr-iptable { + description + "RPC to retrieve PBR iptables."; + input { leaf name { type string { @@ -1751,6 +1921,9 @@ module frr-zebra { output { list iptable-list { + description + "List of iptables entries."; + leaf name { type string { length "1..32"; @@ -1828,6 +2001,9 @@ module frr-zebra { } container dscp-info { + description + "Container for dscp information."; + leaf dscp-value { type uint32; description @@ -1842,6 +2018,9 @@ module frr-zebra { } container fragment-info { + description + "Container for fragment information."; + leaf fragment-val { type uint32; description @@ -1856,16 +2035,19 @@ module frr-zebra { } container iptable-stats { + description + "Container for iptables statistics."; + leaf packet-counter { type uint64; description - ""; + "Number of packets processed by iptables."; } leaf bytes-counter { type uint64; description - ""; + "Number of packets processed by iptables."; } } @@ -1894,6 +2076,9 @@ module frr-zebra { */ rpc get-debugs { + description + "RPC to retrieve debug information."; + output { uses zebra-debugs; } @@ -1905,6 +2090,9 @@ module frr-zebra { description "Extends interface model with Zebra-related parameters."; container zebra { + description + "Container for Zebra-related information."; + list ipv4-addrs { key "ip prefix-length"; description @@ -2079,18 +2267,21 @@ module frr-zebra { description "Legacy mode. Only support standard admin-group (RFC3630/5305/5329)"; leaf legacy-admin-group { - description "Admin-Group value"; type uint32; + description "Admin-Group value"; } } case affinity { container affinities { + description + "Container for affinity information."; + leaf-list affinity { type frr-affinity-map:affinity-map-ref; - max-elements "256"; must '../../affinity-mode != "standard" or /frr-affinity-map:lib/frr-affinity-map:affinity-maps/frr-affinity-map:affinity-map[frr-affinity-map:name=current()]/frr-affinity-map:value < 32' { error-message "Affinity bit-position must be less than 32 when used with standard affinity mode"; } + max-elements "256"; description "Array of Attribute Names"; } @@ -2098,9 +2289,6 @@ module frr-zebra { } } leaf affinity-mode { - description - "Affinity mode"; - default "extended"; type enumeration { enum extended { value 0; @@ -2118,9 +2306,11 @@ module frr-zebra { "Standard and extended Admin-Group"; } } + default "extended"; + description + "Affinity mode"; } container neighbor { - description "Remote ASBR information (RFC 5316 & RFC 5392)"; presence "Activates neighbor information on this interface."; leaf remote-as { type inet:as-number; @@ -2134,6 +2324,8 @@ module frr-zebra { description "IPv4 Remote ASBR ID (RFC 5316 & RFC 5392)"; } + description + "Remote ASBR information (RFC 5316 & RFC 5392)"; } leaf delay { type uint32 { @@ -2143,8 +2335,6 @@ module frr-zebra { "Average Unidirectional Link Delay"; } container min-max-delay { - description - "Min/Max Unidirectional Link Delay"; presence "Activates min/max delay."; leaf delay-min { type uint32 { @@ -2168,6 +2358,8 @@ module frr-zebra { description "Max Delay"; } + description + "Min/Max Unidirectional Link Delay"; } leaf delay-variation { type uint32 { @@ -2192,6 +2384,9 @@ module frr-zebra { choice esi-choice { description "ESI type"; container type-0 { + description + "Container for type-0 information."; + leaf esi { type yang:hex-string { length "29"; @@ -2201,6 +2396,9 @@ module frr-zebra { } } container type-3 { + description + "Container for type-3 information."; + leaf system-mac { type yang:mac-address; description @@ -2680,6 +2878,8 @@ module frr-zebra { leaf vni-id { type vni-id-type; + description + "A VNI id."; } leaf remote-vtep { @@ -2805,10 +3005,10 @@ module frr-zebra { } leaf end { type uint32; - mandatory true; must ". >= ../start" { error-message "End table must be greater than or equal to start table"; } + mandatory true; description "The last table to use."; } @@ -2832,6 +3032,9 @@ module frr-zebra { } augment "/frr-vrf:lib/frr-vrf:vrf/frr-zebra:zebra/ribs/rib/route/route-entry/nexthop-group/nexthop" { + description + "Augments the nexthop with operational data."; + uses frr-nh:frr-nexthop-operational; } @@ -2843,10 +3046,10 @@ module frr-zebra { description "Data model for the Zebra daemon."; leaf max-multipath { - config false; type uint16 { range "1..65535"; } + config false; description "The maximum number of nexthops for a route. At this point it is unlikely that a multipath number will ever get larger then @@ -2939,6 +3142,9 @@ module frr-zebra { * Debug options */ container debugs { + description + "This container contains debug information for the zebra daemon."; + uses zebra-debugs; } /* End of debugs */ -- 2.39.5