>> “Also, I had thought the RFC was reasonably clear on this point:“
That’s under route monitoring. Time is part of the common header.
Timestamp: The time when the encapsulated routes were received
(one may also think of this as the time when they were installed
in the Adj-RIB-In), expressed in seconds and microseconds since
midnight (zero hour), January 1, 1970 (UTC). If zero, the time is
unavailable. Precision of the timestamp is implementation-
dependent.
Problem is that the RFC didn’t really clarify the other messages well for time.
If the sender is going to send timestamps based on received updates, then it
MUST honor that for all messages, such as PEER_UP, PEER_DOWN, route mirroning,
etc.
State-compression is effected by BMP header timestamp with packed NRLIs. They
will need to be broken out due to timestamp of when last changed.
Not all BMP senders are not respecting the statement about “received time” and
instead are sending timestamps based on the BMP send time of the message.
The other problem that we are running into is the BMP sender clock is not in
sync with the BMP receivers. Either it’s a different clock source or something
else. Regardless, it causes things to be out of sync, especially when
monitoring BGP churn/excessive updates/bad neighbors/etc. Might be good to
clarify a bit more that the time transmitted in BMP header shouldn’t really be
used for churn/update floods/… Instead, BMP receiver should be expected to add
a timestamp that can be used for that.
--Tim
On 9/22/22, 11:19 AM, "GROW" <[email protected]> wrote:
> On Sep 21, 2022, at 10:29 AM, Maximilian Wilhelm <[email protected]> wrote:
>
> Hey folks,
>
> I think having the original timestamp of when a route was learned is
> valueable, even if theP BM session is set up later, or has flapped and
> is reestablished etc. This was it's always possible to determine when
> a given prefix/path was learned. If you want to have the time the
> informatione was learned via BMP it's also possible to use the current
> time then to store it into a TSDB. So following the principle of always
> keeping the most options I think we should make sure the timestamp always
> represents the one where the BGP UPDATE happened. As most (if not all?)
> routers already store that time / a route age, that information should
> already be available.
Also, I had thought the RFC was reasonably clear on this point:
If the implementation is able to provide information about when
routes were received, it MAY provide such information in the BMP
Timestamp field. Otherwise, the BMP Timestamp field MUST be set to
0, indicating that time is not available.
"when routes were received".
But it's also clear about the MAY.
Time highlights below that part of the issue is that with the level of
flexibility the field provides that it can make data from different routers
incomparable.
> Anno domini 2022 Tim Evens (tievens) scripsit:
>
>> Timestamp is another item we need to clarify in 7854bis. Some BMP senders
>> send timestamps based on the actual received BGP update. This may be days,
>> weeks, etc. old from the time that the message is sent to BMP receiver. It
>> has been a bit confusing for people to see timestamps that are old when they
>> just received a RIB dump.
The field in BMP is for the BGP time carried in the BMP protocol. The state
described above is meta-data about a BMP receiver having received a given BGP
route.
>> OpenBMP/PSQL maintains two timestamps, one is the DB insert time and the
>> other is the BMP received timestamp. For folks that are working with time
>> series DBs to track/insert/maintain records using time, they may drop
>> messages because they believe they are too old when in fact they are new.
>> Basically, for those that are using timeseries DBs, they may have to use a
>> new BMP received timestamp instead of the BMP header timestamp.
For timeseries purposes, it depends on what you're doing timeseries upon.
If you're looking for route stability, the freshness of your BMP message is
less interesting than the sending router's timestamp for when it got the route.
If you're looking for churn at an arbitrary epoch after you've synched your
feeds, then the BMP message receive time may be preferable.
That said, given that the timestamps carried in BMP aren't guaranteed to mean
the same things from implementation to implementation, normalizing the time can
be a challenge.
-- Jeff
_______________________________________________
GROW mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/grow
_______________________________________________
GROW mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/grow