From: zyxwvu Shi Date: Mon, 8 Feb 2021 12:09:02 +0000 (+0800) Subject: bgpd: Do not compare attr again. X-Git-Tag: base_8.0~413^2 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=aeadbd9e1931ef560a74e79561dff3f0108eeb7d;p=mirror%2Ffrr.git bgpd: Do not compare attr again. `same_attr` has been computed and `hook_call(bgp_process)` (calling BMP module) would not change it. We could reuse the value to filter same attribute updates, avoiding an extra comparison. Signed-off-by: zyxwvu Shi --- diff --git a/bgpd/bgp_route.c b/bgpd/bgp_route.c index 0ac9a42dc5..7f05dcc167 100644 --- a/bgpd/bgp_route.c +++ b/bgpd/bgp_route.c @@ -3799,7 +3799,7 @@ int bgp_update(struct peer *peer, const struct prefix *p, uint32_t addpath_id, /* Same attribute comes in. */ if (!CHECK_FLAG(pi->flags, BGP_PATH_REMOVED) - && attrhash_cmp(pi->attr, attr_new) + && same_attr && (!has_valid_label || memcmp(&(bgp_path_info_extra_get(pi))->label, label, num_labels * sizeof(mpls_label_t))