mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-07-27 15:23:39 +00:00
bgpd, yang: fix missing mandatory/default statements on some leafs
The code expects these leafs to always exist. If they are not set, the daemon would crash. CLI always sets them, but we should properly mark them as mandatory/default to prevent them from being missed when using the API. Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
This commit is contained in:
parent
2aa6a67ec3
commit
83a3b0f10f
@ -156,7 +156,6 @@ const struct frr_yang_module_info frr_bgp_route_map_info = {
|
|||||||
.xpath = "/frr-route-map:lib/route-map/entry/match-condition/rmap-match-condition/frr-bgp-route-map:comm-list/comm-list-name",
|
.xpath = "/frr-route-map:lib/route-map/entry/match-condition/rmap-match-condition/frr-bgp-route-map:comm-list/comm-list-name",
|
||||||
.cbs = {
|
.cbs = {
|
||||||
.modify = lib_route_map_entry_match_condition_rmap_match_condition_comm_list_comm_list_name_modify,
|
.modify = lib_route_map_entry_match_condition_rmap_match_condition_comm_list_comm_list_name_modify,
|
||||||
.destroy = lib_route_map_entry_match_condition_rmap_match_condition_comm_list_comm_list_name_destroy,
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -367,14 +366,12 @@ const struct frr_yang_module_info frr_bgp_route_map_info = {
|
|||||||
.xpath = "/frr-route-map:lib/route-map/entry/set-action/rmap-set-action/frr-bgp-route-map:aggregator/aggregator-asn",
|
.xpath = "/frr-route-map:lib/route-map/entry/set-action/rmap-set-action/frr-bgp-route-map:aggregator/aggregator-asn",
|
||||||
.cbs = {
|
.cbs = {
|
||||||
.modify = lib_route_map_entry_set_action_rmap_set_action_aggregator_aggregator_asn_modify,
|
.modify = lib_route_map_entry_set_action_rmap_set_action_aggregator_aggregator_asn_modify,
|
||||||
.destroy = lib_route_map_entry_set_action_rmap_set_action_aggregator_aggregator_asn_destroy,
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.xpath = "/frr-route-map:lib/route-map/entry/set-action/rmap-set-action/frr-bgp-route-map:aggregator/aggregator-address",
|
.xpath = "/frr-route-map:lib/route-map/entry/set-action/rmap-set-action/frr-bgp-route-map:aggregator/aggregator-address",
|
||||||
.cbs = {
|
.cbs = {
|
||||||
.modify = lib_route_map_entry_set_action_rmap_set_action_aggregator_aggregator_address_modify,
|
.modify = lib_route_map_entry_set_action_rmap_set_action_aggregator_aggregator_address_modify,
|
||||||
.destroy = lib_route_map_entry_set_action_rmap_set_action_aggregator_aggregator_address_destroy,
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -403,7 +400,6 @@ const struct frr_yang_module_info frr_bgp_route_map_info = {
|
|||||||
.xpath = "/frr-route-map:lib/route-map/entry/set-action/rmap-set-action/frr-bgp-route-map:extcommunity-lb/lb-type",
|
.xpath = "/frr-route-map:lib/route-map/entry/set-action/rmap-set-action/frr-bgp-route-map:extcommunity-lb/lb-type",
|
||||||
.cbs = {
|
.cbs = {
|
||||||
.modify = lib_route_map_entry_set_action_rmap_set_action_extcommunity_lb_lb_type_modify,
|
.modify = lib_route_map_entry_set_action_rmap_set_action_extcommunity_lb_lb_type_modify,
|
||||||
.destroy = lib_route_map_entry_set_action_rmap_set_action_extcommunity_lb_lb_type_destroy,
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -424,7 +420,6 @@ const struct frr_yang_module_info frr_bgp_route_map_info = {
|
|||||||
.xpath = "/frr-route-map:lib/route-map/entry/set-action/rmap-set-action/frr-bgp-route-map:extcommunity-lb/two-octet-as-specific",
|
.xpath = "/frr-route-map:lib/route-map/entry/set-action/rmap-set-action/frr-bgp-route-map:extcommunity-lb/two-octet-as-specific",
|
||||||
.cbs = {
|
.cbs = {
|
||||||
.modify = lib_route_map_entry_set_action_rmap_set_action_extcommunity_lb_two_octet_as_specific_modify,
|
.modify = lib_route_map_entry_set_action_rmap_set_action_extcommunity_lb_two_octet_as_specific_modify,
|
||||||
.destroy = lib_route_map_entry_set_action_rmap_set_action_extcommunity_lb_two_octet_as_specific_destroy,
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -66,7 +66,6 @@ int lib_route_map_entry_match_condition_rmap_match_condition_comm_list_destroy(
|
|||||||
struct nb_cb_destroy_args *args);
|
struct nb_cb_destroy_args *args);
|
||||||
void lib_route_map_entry_match_condition_rmap_match_condition_comm_list_finish(struct nb_cb_apply_finish_args *args);
|
void lib_route_map_entry_match_condition_rmap_match_condition_comm_list_finish(struct nb_cb_apply_finish_args *args);
|
||||||
int lib_route_map_entry_match_condition_rmap_match_condition_comm_list_comm_list_name_modify(struct nb_cb_modify_args *args);
|
int lib_route_map_entry_match_condition_rmap_match_condition_comm_list_comm_list_name_modify(struct nb_cb_modify_args *args);
|
||||||
int lib_route_map_entry_match_condition_rmap_match_condition_comm_list_comm_list_name_destroy(struct nb_cb_destroy_args *args);
|
|
||||||
int lib_route_map_entry_match_condition_rmap_match_condition_comm_list_comm_list_name_exact_match_modify(struct nb_cb_modify_args *args);
|
int lib_route_map_entry_match_condition_rmap_match_condition_comm_list_comm_list_name_exact_match_modify(struct nb_cb_modify_args *args);
|
||||||
int lib_route_map_entry_match_condition_rmap_match_condition_comm_list_comm_list_name_exact_match_destroy(struct nb_cb_destroy_args *args);
|
int lib_route_map_entry_match_condition_rmap_match_condition_comm_list_comm_list_name_exact_match_destroy(struct nb_cb_destroy_args *args);
|
||||||
int lib_route_map_entry_match_condition_rmap_match_condition_comm_list_comm_list_name_any_modify(
|
int lib_route_map_entry_match_condition_rmap_match_condition_comm_list_comm_list_name_any_modify(
|
||||||
@ -137,9 +136,7 @@ int lib_route_map_entry_set_action_rmap_set_action_aggregator_destroy(
|
|||||||
struct nb_cb_destroy_args *args);
|
struct nb_cb_destroy_args *args);
|
||||||
void lib_route_map_entry_set_action_rmap_set_action_aggregator_finish(struct nb_cb_apply_finish_args *args);
|
void lib_route_map_entry_set_action_rmap_set_action_aggregator_finish(struct nb_cb_apply_finish_args *args);
|
||||||
int lib_route_map_entry_set_action_rmap_set_action_aggregator_aggregator_asn_modify(struct nb_cb_modify_args *args);
|
int lib_route_map_entry_set_action_rmap_set_action_aggregator_aggregator_asn_modify(struct nb_cb_modify_args *args);
|
||||||
int lib_route_map_entry_set_action_rmap_set_action_aggregator_aggregator_asn_destroy(struct nb_cb_destroy_args *args);
|
|
||||||
int lib_route_map_entry_set_action_rmap_set_action_aggregator_aggregator_address_modify(struct nb_cb_modify_args *args);
|
int lib_route_map_entry_set_action_rmap_set_action_aggregator_aggregator_address_modify(struct nb_cb_modify_args *args);
|
||||||
int lib_route_map_entry_set_action_rmap_set_action_aggregator_aggregator_address_destroy(struct nb_cb_destroy_args *args);
|
|
||||||
int lib_route_map_entry_set_action_rmap_set_action_comm_list_num_modify(struct nb_cb_modify_args *args);
|
int lib_route_map_entry_set_action_rmap_set_action_comm_list_num_modify(struct nb_cb_modify_args *args);
|
||||||
int lib_route_map_entry_set_action_rmap_set_action_comm_list_num_destroy(struct nb_cb_destroy_args *args);
|
int lib_route_map_entry_set_action_rmap_set_action_comm_list_num_destroy(struct nb_cb_destroy_args *args);
|
||||||
int lib_route_map_entry_set_action_rmap_set_action_comm_list_num_extended_modify(struct nb_cb_modify_args *args);
|
int lib_route_map_entry_set_action_rmap_set_action_comm_list_num_extended_modify(struct nb_cb_modify_args *args);
|
||||||
@ -152,11 +149,9 @@ int lib_route_map_entry_set_action_rmap_set_action_extcommunity_lb_destroy(
|
|||||||
struct nb_cb_destroy_args *args);
|
struct nb_cb_destroy_args *args);
|
||||||
void lib_route_map_entry_set_action_rmap_set_action_extcommunity_lb_finish(struct nb_cb_apply_finish_args *args);
|
void lib_route_map_entry_set_action_rmap_set_action_extcommunity_lb_finish(struct nb_cb_apply_finish_args *args);
|
||||||
int lib_route_map_entry_set_action_rmap_set_action_extcommunity_lb_lb_type_modify(struct nb_cb_modify_args *args);
|
int lib_route_map_entry_set_action_rmap_set_action_extcommunity_lb_lb_type_modify(struct nb_cb_modify_args *args);
|
||||||
int lib_route_map_entry_set_action_rmap_set_action_extcommunity_lb_lb_type_destroy(struct nb_cb_destroy_args *args);
|
|
||||||
int lib_route_map_entry_set_action_rmap_set_action_extcommunity_lb_bandwidth_modify(struct nb_cb_modify_args *args);
|
int lib_route_map_entry_set_action_rmap_set_action_extcommunity_lb_bandwidth_modify(struct nb_cb_modify_args *args);
|
||||||
int lib_route_map_entry_set_action_rmap_set_action_extcommunity_lb_bandwidth_destroy(struct nb_cb_destroy_args *args);
|
int lib_route_map_entry_set_action_rmap_set_action_extcommunity_lb_bandwidth_destroy(struct nb_cb_destroy_args *args);
|
||||||
int lib_route_map_entry_set_action_rmap_set_action_extcommunity_lb_two_octet_as_specific_modify(struct nb_cb_modify_args *args);
|
int lib_route_map_entry_set_action_rmap_set_action_extcommunity_lb_two_octet_as_specific_modify(struct nb_cb_modify_args *args);
|
||||||
int lib_route_map_entry_set_action_rmap_set_action_extcommunity_lb_two_octet_as_specific_destroy(struct nb_cb_destroy_args *args);
|
|
||||||
int lib_route_map_entry_set_action_rmap_set_action_extcommunity_none_modify(
|
int lib_route_map_entry_set_action_rmap_set_action_extcommunity_none_modify(
|
||||||
struct nb_cb_modify_args *args);
|
struct nb_cb_modify_args *args);
|
||||||
int lib_route_map_entry_set_action_rmap_set_action_extcommunity_none_destroy(
|
int lib_route_map_entry_set_action_rmap_set_action_extcommunity_none_destroy(
|
||||||
|
@ -1232,22 +1232,6 @@ lib_route_map_entry_match_condition_rmap_match_condition_comm_list_comm_list_nam
|
|||||||
return NB_OK;
|
return NB_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
|
||||||
lib_route_map_entry_match_condition_rmap_match_condition_comm_list_comm_list_name_destroy(
|
|
||||||
struct nb_cb_destroy_args *args)
|
|
||||||
{
|
|
||||||
switch (args->event) {
|
|
||||||
case NB_EV_VALIDATE:
|
|
||||||
case NB_EV_PREPARE:
|
|
||||||
case NB_EV_ABORT:
|
|
||||||
case NB_EV_APPLY:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
return NB_OK;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* XPath:
|
* XPath:
|
||||||
* /frr-route-map:lib/route-map/entry/match-condition/rmap-match-condition/frr-bgp-route-map:comm-list/comm-list-name-any
|
* /frr-route-map:lib/route-map/entry/match-condition/rmap-match-condition/frr-bgp-route-map:comm-list/comm-list-name-any
|
||||||
@ -2838,21 +2822,6 @@ lib_route_map_entry_set_action_rmap_set_action_aggregator_aggregator_asn_modify(
|
|||||||
return NB_OK;
|
return NB_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
|
||||||
lib_route_map_entry_set_action_rmap_set_action_aggregator_aggregator_asn_destroy(
|
|
||||||
struct nb_cb_destroy_args *args)
|
|
||||||
{
|
|
||||||
switch (args->event) {
|
|
||||||
case NB_EV_VALIDATE:
|
|
||||||
case NB_EV_PREPARE:
|
|
||||||
case NB_EV_ABORT:
|
|
||||||
case NB_EV_APPLY:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
return NB_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* XPath:
|
* XPath:
|
||||||
* /frr-route-map:lib/route-map/entry/set-action/rmap-set-action/frr-bgp-route-map:aggregator/aggregator-address
|
* /frr-route-map:lib/route-map/entry/set-action/rmap-set-action/frr-bgp-route-map:aggregator/aggregator-address
|
||||||
@ -2872,21 +2841,6 @@ lib_route_map_entry_set_action_rmap_set_action_aggregator_aggregator_address_mod
|
|||||||
return NB_OK;
|
return NB_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
|
||||||
lib_route_map_entry_set_action_rmap_set_action_aggregator_aggregator_address_destroy(
|
|
||||||
struct nb_cb_destroy_args *args)
|
|
||||||
{
|
|
||||||
switch (args->event) {
|
|
||||||
case NB_EV_VALIDATE:
|
|
||||||
case NB_EV_PREPARE:
|
|
||||||
case NB_EV_ABORT:
|
|
||||||
case NB_EV_APPLY:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
return NB_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* XPath:
|
* XPath:
|
||||||
* /frr-route-map:lib/route-map/entry/set-action/rmap-set-action/frr-bgp-route-map:comm-list-name
|
* /frr-route-map:lib/route-map/entry/set-action/rmap-set-action/frr-bgp-route-map:comm-list-name
|
||||||
@ -3031,13 +2985,6 @@ lib_route_map_entry_set_action_rmap_set_action_extcommunity_lb_lb_type_modify(
|
|||||||
return NB_OK;
|
return NB_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
|
||||||
lib_route_map_entry_set_action_rmap_set_action_extcommunity_lb_lb_type_destroy(
|
|
||||||
struct nb_cb_destroy_args *args)
|
|
||||||
{
|
|
||||||
return NB_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* XPath:
|
* XPath:
|
||||||
* /frr-route-map:lib/route-map/entry/set-action/rmap-set-action/frr-bgp-route-map:extcommunity-lb/bandwidth
|
* /frr-route-map:lib/route-map/entry/set-action/rmap-set-action/frr-bgp-route-map:extcommunity-lb/bandwidth
|
||||||
@ -3119,13 +3066,6 @@ lib_route_map_entry_set_action_rmap_set_action_extcommunity_lb_two_octet_as_spec
|
|||||||
return NB_OK;
|
return NB_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
|
||||||
lib_route_map_entry_set_action_rmap_set_action_extcommunity_lb_two_octet_as_specific_destroy(
|
|
||||||
struct nb_cb_destroy_args *args)
|
|
||||||
{
|
|
||||||
return NB_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* XPath:
|
* XPath:
|
||||||
* /frr-route-map:lib/route-map/entry/set-action/rmap-set-action/frr-bgp-route-map:extcommunity-none
|
* /frr-route-map:lib/route-map/entry/set-action/rmap-set-action/frr-bgp-route-map:extcommunity-none
|
||||||
|
@ -379,6 +379,7 @@ identity set-extcommunity-color {
|
|||||||
grouping extcommunity-non-transitive-types {
|
grouping extcommunity-non-transitive-types {
|
||||||
leaf two-octet-as-specific {
|
leaf two-octet-as-specific {
|
||||||
type boolean;
|
type boolean;
|
||||||
|
default false;
|
||||||
description
|
description
|
||||||
"Non-Transitive Two-Octet AS-Specific Extended Community";
|
"Non-Transitive Two-Octet AS-Specific Extended Community";
|
||||||
}
|
}
|
||||||
@ -769,6 +770,7 @@ identity set-extcommunity-color {
|
|||||||
+ "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'frr-bgp-route-map:match-extcommunity')";
|
+ "derived-from-or-self(/frr-route-map:lib/frr-route-map:route-map/frr-route-map:entry/frr-route-map:match-condition/frr-route-map:condition, 'frr-bgp-route-map:match-extcommunity')";
|
||||||
container comm-list {
|
container comm-list {
|
||||||
leaf comm-list-name {
|
leaf comm-list-name {
|
||||||
|
mandatory true;
|
||||||
type bgp-filter:bgp-list-name;
|
type bgp-filter:bgp-list-name;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -872,11 +874,13 @@ identity set-extcommunity-color {
|
|||||||
description
|
description
|
||||||
"Value of the ext-community.";
|
"Value of the ext-community.";
|
||||||
leaf lb-type {
|
leaf lb-type {
|
||||||
|
mandatory true;
|
||||||
type frr-bgp-route-map:extcommunity-lb-type;
|
type frr-bgp-route-map:extcommunity-lb-type;
|
||||||
}
|
}
|
||||||
|
|
||||||
leaf bandwidth {
|
leaf bandwidth {
|
||||||
when "../lb-type = 'explicit-bandwidth'";
|
when "../lb-type = 'explicit-bandwidth'";
|
||||||
|
mandatory true;
|
||||||
type uint16 {
|
type uint16 {
|
||||||
range "1..25600";
|
range "1..25600";
|
||||||
}
|
}
|
||||||
@ -1108,12 +1112,14 @@ identity set-extcommunity-color {
|
|||||||
container aggregator {
|
container aggregator {
|
||||||
leaf aggregator-asn {
|
leaf aggregator-asn {
|
||||||
type asn-type;
|
type asn-type;
|
||||||
|
mandatory true;
|
||||||
description
|
description
|
||||||
"ASN of the aggregator";
|
"ASN of the aggregator";
|
||||||
}
|
}
|
||||||
|
|
||||||
leaf aggregator-address {
|
leaf aggregator-address {
|
||||||
type inet:ipv4-address;
|
type inet:ipv4-address;
|
||||||
|
mandatory true;
|
||||||
description
|
description
|
||||||
"IPv4 address of the aggregator";
|
"IPv4 address of the aggregator";
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user