0
0
mirror of https://gitlab.nic.cz/labs/bird.git synced 2024-12-31 14:11:54 +00:00

show__ospf.yang: Deleting any key leads to Missing key, not deleting any key leads to Duplicate key

This commit is contained in:
Katerina Kubecova 2023-12-04 09:37:26 +01:00
parent ff7f5df4c5
commit 0dccbc81d6
2 changed files with 230 additions and 3 deletions

View File

@ -87,9 +87,9 @@ show_lsa_router_cbor(struct cbor_writer *w, struct ospf_proto *p, struct top_has
else
{
cbor_open_block_with_length(w, 3);
cbor_string_int(w, "network", rtl.id);
cbor_string_int(w, "nif", rtl.nif);
cbor_string_int(w, "metric", rtl.metric);
cbor_string_int(w, "network", rtl.id);
cbor_string_int(w, "nif", rtl.nif);
cbor_string_int(w, "metric", rtl.metric);
}
}
}

227
yang/show_ospf.yang Normal file
View File

@ -0,0 +1,227 @@
module show_ospf {
namespace ".";
prefix "show_ospf";
description "cli show ospf topology format";
grouping distance {
leaf distance {
type union {
type string;
type int32;
}
}
}
grouping metric {
leaf metric {
type int32;
}
}
grouping router {
leaf router {
type int32;
}
}
grouping lsa_router {
container lsa_router {
uses router;
uses distance;
list vlink {
key "vlink";
leaf vlink {
type int32;
}
leaf metric {
type int32;
}
}
list router_metric {
key "router";
uses router;
uses metric;
}
list network {
key "network";
leaf network {
type int32;
}
choice len_nif {
case len {
leaf len {
type int32;
}
}
case nif {
leaf nif {
type int32;
}
}
}
leaf metric {
mandatory false;
type int32;
}
list stubnet {
key "stubnet";
leaf stubnet {
type int32;
}
leaf len {
type int32;
}
uses metric;
}
}
}
}
grouping lsa_network {
container lsa_network {
choice ospf {
case ospf2 {
container ospf2 {
leaf network {
type int32;
}
leaf optx {
type int32;
}
leaf dr {
type int32;
}
}
}
case ospf {
container ospf {
leaf network {
type int32;
}
leaf lsa_id {
type int32;
}
}
}
}
uses distance;
list routers {
key "router";
uses router;
}
}
}
grouping lsa_sum_net {
container lsa_sum_net {
leaf net {
type string;
}
uses metric;
}
}
grouping lsa_sum_rt {
container lsa_sum_rt {
uses router;
uses metric;
}
}
grouping lsa_external {
container lsa_external {
leaf via {
type string;
}
leaf tag {
type int32;
}
leaf lsa_type {
type string;
}
leaf rt_net {
type string;
}
leaf lsa_type {
type int32;
}
uses metric;
}
}
grouping lsa_prefix {
container lsa_prefix {
list prefixes {
leaf stubnet {
type string;
}
uses metric;
}
}
}
container ospf {
leaf error {
mandatory false;
type string;
}
list areas {
leaf area {
type int32;
}
choice lsa_type {
case rt {
uses lsa_router;
}
case net {
uses lsa_network;
}
case sum_net {
uses lsa_sum_net;
}
case sum_rt {
uses lsa_sum_rt;
}
case ext_nssa {
uses lsa_external;
}
case prefix {
uses lsa_prefix;
}
}
}
list asbrs {
container asbr {
leaf other_ABSRs {
type none;
}
uses router;
uses lsa_external;
}
}
}
}