mirror of
https://gitlab.nic.cz/labs/bird.git
synced 2025-01-15 21:41:56 +00:00
TMP: drop bmp_proto_list
This commit is contained in:
parent
ab1f7f1138
commit
afce92ac77
@ -56,9 +56,6 @@
|
|||||||
#include "nest/iface.h"
|
#include "nest/iface.h"
|
||||||
#include "nest/route.h"
|
#include "nest/route.h"
|
||||||
|
|
||||||
// List of BMP instances
|
|
||||||
static list STATIC_LIST_INIT(bmp_proto_list);
|
|
||||||
|
|
||||||
#define HASH_PEER_KEY(n) n->bgp
|
#define HASH_PEER_KEY(n) n->bgp
|
||||||
#define HASH_PEER_NEXT(n) n->next
|
#define HASH_PEER_NEXT(n) n->next
|
||||||
#define HASH_PEER_EQ(b1,b2) b1 == b2
|
#define HASH_PEER_EQ(b1,b2) b1 == b2
|
||||||
@ -727,26 +724,6 @@ bmp_peer_up(ea_list *bgp,
|
|||||||
DG_UNLOCK(p->p.pool->domain);
|
DG_UNLOCK(p->p.pool->domain);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
|
||||||
bmp_peer_up_jour(int bmp_id, ea_list *bgp,
|
|
||||||
const byte *tx_open_msg, uint tx_open_length,
|
|
||||||
const byte *rx_open_msg, uint rx_open_length)
|
|
||||||
{
|
|
||||||
int need_unlock = 1;
|
|
||||||
if (DG_IS_LOCKED(p->p.pool->domain))
|
|
||||||
need_unlock = 0;
|
|
||||||
else
|
|
||||||
DG_LOCK(p->p.pool->domain);
|
|
||||||
|
|
||||||
struct bmp_proto *p; node *n;
|
|
||||||
WALK_LIST2(p, n, bmp_proto_list, bmp_node)
|
|
||||||
if (p->p.id == bmp_id)
|
|
||||||
bmp_peer_up_(p, bgp, true, tx_open_msg, tx_open_length, rx_open_msg, rx_open_length);
|
|
||||||
|
|
||||||
if (need_unlock)
|
|
||||||
DG_UNLOCK(p->p.pool->domain);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
bmp_peer_init(struct bmp_proto *p, ea_list *bgp_attr)
|
bmp_peer_init(struct bmp_proto *p, ea_list *bgp_attr)
|
||||||
{
|
{
|
||||||
@ -1024,6 +1001,7 @@ bmp_peer_down_(struct bmp_proto *p, const struct bgp_proto *bgp,
|
|||||||
bmp_remove_peer(p, bp);
|
bmp_remove_peer(p, bp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if 0
|
||||||
void
|
void
|
||||||
bmp_peer_down(const struct bgp_proto *bgp,
|
bmp_peer_down(const struct bgp_proto *bgp,
|
||||||
int err_class, int code, int subcode, const byte *data, int length)
|
int err_class, int code, int subcode, const byte *data, int length)
|
||||||
@ -1041,6 +1019,7 @@ bmp_peer_down(const struct bgp_proto *bgp,
|
|||||||
if (need_unlock)
|
if (need_unlock)
|
||||||
DG_UNLOCK(p->p.pool->domain);
|
DG_UNLOCK(p->p.pool->domain);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static void
|
static void
|
||||||
bmp_send_termination_msg(struct bmp_proto *p,
|
bmp_send_termination_msg(struct bmp_proto *p,
|
||||||
@ -1331,8 +1310,12 @@ bmp_postconfig(struct proto_config *CF)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
fc_for_bmp_recipient(void *rec)
|
fc_for_bmp_recipient(void *_p)
|
||||||
{
|
{
|
||||||
|
struct bmp_proto *p = _p;
|
||||||
|
|
||||||
|
ASSERT_DIE(birdloop_inside(p->p.loop));
|
||||||
|
|
||||||
//log("received update, locked %i", locking_stack.service);
|
//log("received update, locked %i", locking_stack.service);
|
||||||
struct lfjour_item *last_up;
|
struct lfjour_item *last_up;
|
||||||
struct proto_pending_update *pupdate;
|
struct proto_pending_update *pupdate;
|
||||||
@ -1355,7 +1338,9 @@ fc_for_bmp_recipient(void *rec)
|
|||||||
const byte *rx_open_msg = ea_get_adata(pupdate->proto_attr, &ea_bgp_remote_open_msg)->data;
|
const byte *rx_open_msg = ea_get_adata(pupdate->proto_attr, &ea_bgp_remote_open_msg)->data;
|
||||||
int l_len = ea_get_int(pupdate->proto_attr, &ea_bgp_remote_open_msg_len, 0);
|
int l_len = ea_get_int(pupdate->proto_attr, &ea_bgp_remote_open_msg_len, 0);
|
||||||
int r_len = ea_get_int(pupdate->proto_attr, &ea_bgp_remote_open_msg_len, 0);
|
int r_len = ea_get_int(pupdate->proto_attr, &ea_bgp_remote_open_msg_len, 0);
|
||||||
bmp_peer_up(proto_state_table->attrs[id], tx_open_msg, l_len, rx_open_msg, r_len);
|
bmp_peer_up_(p, proto_state_table->attrs[id], tx_open_msg, l_len, rx_open_msg, r_len);
|
||||||
|
|
||||||
|
/* !!! or bmp_peer_down_() or ignore if irrelevant */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1364,7 +1349,7 @@ fc_for_bmp_recipient(void *rec)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
create_bmp_recipient(struct proto *P)
|
create_bmp_recipient(struct bmp_proto *p)
|
||||||
{
|
{
|
||||||
struct lfjour_recipient *r = mb_allocz(&root_pool, sizeof(struct lfjour_recipient));
|
struct lfjour_recipient *r = mb_allocz(&root_pool, sizeof(struct lfjour_recipient));
|
||||||
log("recipient %x", r);
|
log("recipient %x", r);
|
||||||
@ -1436,7 +1421,7 @@ bmp_start(struct proto *P)
|
|||||||
tm_start(p->connect_retry_timer, CONNECT_INIT_TIME);
|
tm_start(p->connect_retry_timer, CONNECT_INIT_TIME);
|
||||||
|
|
||||||
log("end of start locked %i", locking_stack.service);
|
log("end of start locked %i", locking_stack.service);
|
||||||
create_bmp_recipient(P);
|
create_bmp_recipient(p);
|
||||||
return PS_START;
|
return PS_START;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -73,6 +73,9 @@ struct bmp_proto {
|
|||||||
list update_msg_queue; // Stores all composed BGP UPDATE MSGs
|
list update_msg_queue; // Stores all composed BGP UPDATE MSGs
|
||||||
bool started; // Flag that stores running status of BMP instance
|
bool started; // Flag that stores running status of BMP instance
|
||||||
int sock_err; // Last socket error code
|
int sock_err; // Last socket error code
|
||||||
|
|
||||||
|
struct lfjour_recipient proto_state_reader; // Reader of protocol states
|
||||||
|
event proto_state_changed;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct bmp_peer {
|
struct bmp_peer {
|
||||||
|
Loading…
Reference in New Issue
Block a user