1
0
mirror of https://gitlab.labs.nic.cz/labs/bird.git synced 2024-05-11 16:54:54 +00:00

BGP refeed and reload with Adj-RIB-In/Out is done without route refresh

This commit is contained in:
Maria Matejka
2022-10-11 19:26:31 +02:00
parent c1cb2dc31c
commit fdacb89a53
3 changed files with 20 additions and 0 deletions

View File

@@ -1464,6 +1464,12 @@ bgp_feed_begin(struct channel *C, int initial)
if (initial && p->cf->gr_mode)
c->feed_state = BFS_LOADING;
if (!initial && C->out_table)
{
c->feed_out_table = 1;
return;
}
/* It is refeed and both sides support enhanced route refresh */
if (!initial && p->enhanced_refresh)
{
@@ -1482,6 +1488,12 @@ bgp_feed_end(struct channel *C)
struct bgp_proto *p = (void *) C->proto;
struct bgp_channel *c = (void *) C;
if (c->feed_out_table)
{
c->feed_out_table = 0;
return;
}
/* This should not happen */
if (!p->conn)
return;

View File

@@ -383,6 +383,8 @@ struct bgp_channel {
u8 feed_state; /* Feed state (TX) for EoR, RR packets, see BFS_* */
u8 load_state; /* Load state (RX) for EoR, RR packets, see BFS_* */
u8 feed_out_table; /* Refeed into out_table */
};
struct bgp_prefix {