]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
BGP: Fix bgp_med handling
authorOndrej Zajicek <santiago@crfreenet.org>
Tue, 4 Apr 2023 03:20:49 +0000 (05:20 +0200)
committerOndrej Zajicek <santiago@crfreenet.org>
Tue, 4 Apr 2023 03:20:49 +0000 (05:20 +0200)
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

index a36949c2a89383b2b25d38485a26973b27332e5d..0461ea28a6e5d266fc8fc68b517c9cd0f37558a5 100644 (file)
@@ -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);