From f881b98d9b48e7a60c46dffc29009a86dac63233 Mon Sep 17 00:00:00 2001 From: Ondrej Zajicek Date: Tue, 4 Apr 2023 05:20:49 +0200 Subject: [PATCH] BGP: Fix bgp_med handling Missing translation from BGP attribute ID to eattr ID in bgp_unset_attr() broke automatic removal of bgp_med during export to EBGP peers. Thanks to Edward Sun for the bugreport. --- proto/bgp/bgp.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/proto/bgp/bgp.h b/proto/bgp/bgp.h index a36949c2..0461ea28 100644 --- a/proto/bgp/bgp.h +++ b/proto/bgp/bgp.h @@ -587,7 +587,9 @@ bgp_set_attr_data(ea_list **to, struct linpool *pool, uint code, uint flags, voi bgp_set_attr(to, pool, code, flags, (uintptr_t) a); } -#define bgp_unset_attr(to, pool, code) ea_unset_attr(to, pool, 0, code) +static inline void +bgp_unset_attr(ea_list **to, struct linpool *pool, uint code) +{ ea_unset_attr(to, pool, 0, EA_CODE(PROTOCOL_BGP, code)); } int bgp_encode_mp_reach_mrt(struct bgp_write_state *s, eattr *a, byte *buf, uint size);