]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
BGP: LLGR Staleness optimization dropped.
authorMaria Matejka <mq@ucw.cz>
Wed, 29 Mar 2023 16:55:46 +0000 (18:55 +0200)
committerMaria Matejka <mq@ucw.cz>
Tue, 4 Apr 2023 15:00:58 +0000 (17:00 +0200)
This brought unnecessary complexity into the decision procedures while the
performance aspects weren't worth it. It just saved one ea_list traversal
when many others are also done.

proto/bgp/attrs.c
proto/bgp/bgp.h

index a0d2f4d64282e63f32242b5695df80b0f513896c..8dc5ac3e046b832812b1237b30cb40a1329e962f 100644 (file)
@@ -2280,24 +2280,8 @@ bgp_get_neighbor(rte *r)
 static inline int
 rte_stale(rte *r)
 {
-  if (r->pflags & BGP_REF_STALE)
-    return 1;
-
-  if (r->pflags & BGP_REF_NOT_STALE)
-    return 0;
-
-  /* If staleness is unknown, compute and cache it */
   eattr *a = ea_find(r->attrs, BGP_EA_ID(BA_COMMUNITY));
-  if (a && int_set_contains(a->u.ptr, BGP_COMM_LLGR_STALE))
-  {
-    r->pflags |= BGP_REF_STALE;
-    return 1;
-  }
-  else
-  {
-    r->pflags |= BGP_REF_NOT_STALE;
-    return 0;
-  }
+  return a && int_set_contains(a->u.ptr, BGP_COMM_LLGR_STALE);
 }
 
 int
@@ -2702,8 +2686,6 @@ bgp_rte_modify_stale(struct rt_export_request *req, const net_addr *n, struct rt
     /* Mark the route as LLGR */
     rte e0 = *r;
     bgp_set_attr_ptr(&e0.attrs, BA_COMMUNITY, flags, int_set_add(tmp_linpool, ad, BGP_COMM_LLGR_STALE));
-    e0.pflags &= ~BGP_REF_NOT_STALE;
-    e0.pflags |= BGP_REF_STALE;
 
     /* We need to update the route but keep it stale. */
     ASSERT_DIE(irh->stale_set == irh->stale_valid + 1);
index acd46f00fc84d7429ed02148a8974116054afd8e..b1167820c86a2e24d2c06e4bdfddfd0938d183b4 100644 (file)
@@ -220,8 +220,6 @@ struct bgp_channel_config {
 
 /* rte->pflags */
 #define BGP_REF_SUPPRESSED     0x1     /* Used for deterministic MED comparison */
-#define BGP_REF_STALE          0x2     /* Route is LLGR_STATE */
-#define BGP_REF_NOT_STALE      0x4     /* Route is NOT LLGR_STATE */
 
 struct bgp_af_caps {
   u32 afi;