mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-05-30 22:25:41 +00:00
zebra: add type to nhg_prot_del API for sanity check
Add type to the nhg_proto_del API params for sanity checking that the types of the route sent by the proto matches the type found with the ID. Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
This commit is contained in:
parent
54a701e4c1
commit
aaa42e056f
@ -1746,7 +1746,7 @@ static void zread_nhg_del(ZAPI_HANDLER_ARGS)
|
|||||||
* Delete the received nhg id
|
* Delete the received nhg id
|
||||||
*/
|
*/
|
||||||
|
|
||||||
nhe = zebra_nhg_proto_del(id);
|
nhe = zebra_nhg_proto_del(id, proto);
|
||||||
|
|
||||||
if (nhe) {
|
if (nhe) {
|
||||||
zebra_nhg_decrement_ref(nhe);
|
zebra_nhg_decrement_ref(nhe);
|
||||||
|
@ -2853,7 +2853,7 @@ struct nhg_hash_entry *zebra_nhg_proto_add(uint32_t id, int type,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Delete NHE from upper level proto, caller must decrement ref */
|
/* Delete NHE from upper level proto, caller must decrement ref */
|
||||||
struct nhg_hash_entry *zebra_nhg_proto_del(uint32_t id)
|
struct nhg_hash_entry *zebra_nhg_proto_del(uint32_t id, int type)
|
||||||
{
|
{
|
||||||
struct nhg_hash_entry *nhe;
|
struct nhg_hash_entry *nhe;
|
||||||
|
|
||||||
@ -2866,6 +2866,15 @@ struct nhg_hash_entry *zebra_nhg_proto_del(uint32_t id)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (type != nhe->type) {
|
||||||
|
if (IS_ZEBRA_DEBUG_NHG)
|
||||||
|
zlog_debug(
|
||||||
|
"%s: id %u, type %s mismatch, sent by %s, ignoring",
|
||||||
|
__func__, id, zebra_route_string(nhe->type),
|
||||||
|
zebra_route_string(type));
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
if (CHECK_FLAG(nhe->flags, NEXTHOP_GROUP_PROTO_RELEASED)) {
|
if (CHECK_FLAG(nhe->flags, NEXTHOP_GROUP_PROTO_RELEASED)) {
|
||||||
if (IS_ZEBRA_DEBUG_NHG)
|
if (IS_ZEBRA_DEBUG_NHG)
|
||||||
zlog_debug("%s: id %u, already released", __func__, id);
|
zlog_debug("%s: id %u, already released", __func__, id);
|
||||||
|
@ -294,7 +294,7 @@ struct nhg_hash_entry *zebra_nhg_proto_add(uint32_t id, int type,
|
|||||||
*
|
*
|
||||||
* Caller must decrement ref with zebra_nhg_decrement_ref() when done.
|
* Caller must decrement ref with zebra_nhg_decrement_ref() when done.
|
||||||
*/
|
*/
|
||||||
struct nhg_hash_entry *zebra_nhg_proto_del(uint32_t id);
|
struct nhg_hash_entry *zebra_nhg_proto_del(uint32_t id, int type);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Remove specific by proto NHGs.
|
* Remove specific by proto NHGs.
|
||||||
|
Loading…
Reference in New Issue
Block a user