From 6566d669a58eabfda5b287ce5622e5d105df2bd8 Mon Sep 17 00:00:00 2001 From: David Lamparter Date: Wed, 17 Jul 2019 15:24:28 +0200 Subject: [PATCH] bgpd: add timestamp to bgp_adj_in If we reject a received update in a filter, it never turns into a bgp_path_info but stays in adj_in. For that case, we don't have any timestamp for the update. Currently, this isn't visible anywhere; BMP will make use of this timestamp (and we can add a CLI option if we want.) Signed-off-by: David Lamparter --- bgpd/bgp_advertise.c | 1 + bgpd/bgp_advertise.h | 3 +++ 2 files changed, 4 insertions(+) diff --git a/bgpd/bgp_advertise.c b/bgpd/bgp_advertise.c index 497fb0749e..76a65f7f04 100644 --- a/bgpd/bgp_advertise.c +++ b/bgpd/bgp_advertise.c @@ -194,6 +194,7 @@ void bgp_adj_in_set(struct bgp_node *rn, struct peer *peer, struct attr *attr, adj = XCALLOC(MTYPE_BGP_ADJ_IN, sizeof(struct bgp_adj_in)); adj->peer = peer_lock(peer); /* adj_in peer reference */ adj->attr = bgp_attr_intern(attr); + adj->uptime = bgp_clock(); adj->addpath_rx_id = addpath_id; BGP_ADJ_IN_ADD(rn, adj); bgp_lock_node(rn); diff --git a/bgpd/bgp_advertise.h b/bgpd/bgp_advertise.h index 1b55b6e64b..c983598756 100644 --- a/bgpd/bgp_advertise.h +++ b/bgpd/bgp_advertise.h @@ -101,6 +101,9 @@ struct bgp_adj_in { /* Received attribute. */ struct attr *attr; + /* timestamp (monotime) */ + time_t uptime; + /* Addpath identifier */ uint32_t addpath_rx_id; };