mirror of
https://gitlab.nic.cz/labs/bird.git
synced 2024-12-22 01:31:55 +00:00
Nest: Rename channel class
This commit is contained in:
parent
adc2fd4825
commit
c8835cc193
30
nest/proto.c
30
nest/proto.c
@ -159,10 +159,10 @@ proto_find_channel_by_name(struct proto *p, const char *n)
|
||||
struct channel *
|
||||
proto_add_channel(struct proto *p, struct channel_config *cf)
|
||||
{
|
||||
struct channel *c = mb_allocz(proto_pool, cf->channel->channel_size);
|
||||
struct channel *c = mb_allocz(proto_pool, cf->class->channel_size);
|
||||
|
||||
c->name = cf->name;
|
||||
c->channel = cf->channel;
|
||||
c->class = cf->class;
|
||||
c->proto = p;
|
||||
c->table = cf->table->table;
|
||||
|
||||
@ -186,9 +186,12 @@ proto_add_channel(struct proto *p, struct channel_config *cf)
|
||||
c->last_state_change = current_time();
|
||||
c->reloadable = 1;
|
||||
|
||||
c->config = cf;
|
||||
cf->channel = c;
|
||||
|
||||
init_list(&c->roa_subscriptions);
|
||||
|
||||
CALL(c->channel->init, c, cf);
|
||||
CALL(c->class->init, c, cf);
|
||||
|
||||
add_tail(&p->channels, &c->n);
|
||||
|
||||
@ -202,6 +205,9 @@ proto_remove_channel(struct proto *p UNUSED, struct channel *c)
|
||||
{
|
||||
ASSERT(c->channel_state == CS_DOWN);
|
||||
|
||||
c->config->channel = NULL;
|
||||
c->config = NULL;
|
||||
|
||||
CD(c, "Removed", c->name);
|
||||
|
||||
rem_node(&c->n);
|
||||
@ -399,7 +405,7 @@ channel_roa_subscribe_filter(struct channel *c, int dir)
|
||||
|
||||
#ifdef CONFIG_BGP
|
||||
/* No automatic reload for BGP channels without in_table / out_table */
|
||||
if (c->channel == &channel_bgp)
|
||||
if (c->class == &channel_bgp)
|
||||
valid = dir ? !!c->in_table : !!c->out_table;
|
||||
#endif
|
||||
|
||||
@ -558,7 +564,7 @@ channel_do_start(struct channel *c)
|
||||
channel_reset_limit(&c->in_limit);
|
||||
channel_reset_limit(&c->out_limit);
|
||||
|
||||
CALL(c->channel->start, c);
|
||||
CALL(c->class->start, c);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -582,7 +588,7 @@ channel_do_flush(struct channel *c)
|
||||
if (c->gr_lock)
|
||||
channel_graceful_restart_unlock(c);
|
||||
|
||||
CALL(c->channel->shutdown, c);
|
||||
CALL(c->class->shutdown, c);
|
||||
|
||||
/* This have to be done in here, as channel pool is freed before channel_do_down() */
|
||||
bmap_free(&c->export_map);
|
||||
@ -614,7 +620,7 @@ channel_do_down(struct channel *c)
|
||||
|
||||
/* The in_table and out_table are going to be freed by freeing their resource pools. */
|
||||
|
||||
CALL(c->channel->cleanup, c);
|
||||
CALL(c->class->cleanup, c);
|
||||
|
||||
/* Schedule protocol shutddown */
|
||||
if (proto_is_done(c->proto))
|
||||
@ -776,7 +782,7 @@ channel_config_new(const struct channel_class *cc, const char *name, uint net_ty
|
||||
|
||||
cf = cfg_allocz(cc->config_size);
|
||||
cf->name = name;
|
||||
cf->channel = cc;
|
||||
cf->class = cc;
|
||||
cf->parent = proto;
|
||||
cf->table = tab;
|
||||
cf->out_filter = FILTER_REJECT;
|
||||
@ -816,12 +822,12 @@ channel_config_get(const struct channel_class *cc, const char *name, uint net_ty
|
||||
struct channel_config *
|
||||
channel_copy_config(struct channel_config *src, struct proto_config *proto)
|
||||
{
|
||||
struct channel_config *dst = cfg_alloc(src->channel->config_size);
|
||||
struct channel_config *dst = cfg_alloc(src->class->config_size);
|
||||
|
||||
memcpy(dst, src, src->channel->config_size);
|
||||
memcpy(dst, src, src->class->config_size);
|
||||
memset(&dst->n, 0, sizeof(node));
|
||||
add_tail(&proto->channels, &dst->n);
|
||||
CALL(src->channel->copy_config, dst, src);
|
||||
CALL(src->class->copy_config, dst, src);
|
||||
|
||||
return dst;
|
||||
}
|
||||
@ -867,7 +873,7 @@ channel_reconfigure(struct channel *c, struct channel_config *cf)
|
||||
channel_verify_limits(c);
|
||||
|
||||
/* Execute channel-specific reconfigure hook */
|
||||
if (c->channel->reconfigure && !c->channel->reconfigure(c, cf, &import_changed, &export_changed))
|
||||
if (c->class->reconfigure && !c->class->reconfigure(c, cf, &import_changed, &export_changed))
|
||||
return 0;
|
||||
|
||||
/* If the channel is not open, it has no routes and we cannot reload it anyways */
|
||||
|
@ -487,7 +487,8 @@ extern const struct channel_class channel_bgp;
|
||||
struct channel_config {
|
||||
node n;
|
||||
const char *name;
|
||||
const struct channel_class *channel;
|
||||
const struct channel_class *class;
|
||||
struct channel *channel;
|
||||
|
||||
struct proto_config *parent; /* Where channel is defined (proto or template) */
|
||||
struct rtable_config *table; /* Table we're attached to */
|
||||
@ -513,8 +514,9 @@ struct channel {
|
||||
node table_node; /* Node in table->channels */
|
||||
|
||||
const char *name; /* Channel name (may be NULL) */
|
||||
const struct channel_class *channel;
|
||||
const struct channel_class *class;
|
||||
struct proto *proto;
|
||||
struct channel_config *config;
|
||||
|
||||
struct rtable *table;
|
||||
const struct filter *in_filter; /* Input filter */
|
||||
|
@ -1741,7 +1741,7 @@ bgp_preexport(struct channel *C, rte *e)
|
||||
struct bgp_channel *c = (struct bgp_channel *) C;
|
||||
|
||||
/* Ignore non-BGP channels */
|
||||
if (C->channel != &channel_bgp)
|
||||
if (C->class != &channel_bgp)
|
||||
return -1;
|
||||
|
||||
/* Reject our routes */
|
||||
@ -1942,7 +1942,7 @@ bgp_rt_notify(struct proto *P, struct channel *C, net *n, rte *new, rte *old)
|
||||
u32 path;
|
||||
|
||||
/* Ignore non-BGP channels */
|
||||
if (C->channel != &channel_bgp)
|
||||
if (C->class != &channel_bgp)
|
||||
return;
|
||||
|
||||
if (new)
|
||||
|
@ -1440,7 +1440,7 @@ bgp_reload_routes(struct channel *C)
|
||||
}
|
||||
|
||||
/* Ignore non-BGP channels */
|
||||
if (C->channel != &channel_bgp)
|
||||
if (C->class != &channel_bgp)
|
||||
return;
|
||||
|
||||
ASSERT(p->conn && (p->route_refresh || c->c.in_table));
|
||||
@ -1458,7 +1458,7 @@ bgp_feed_begin(struct channel *C, int initial)
|
||||
struct bgp_channel *c = (void *) C;
|
||||
|
||||
/* Ignore non-BGP channels */
|
||||
if (C->channel != &channel_bgp)
|
||||
if (C->class != &channel_bgp)
|
||||
return;
|
||||
|
||||
/* This should not happen */
|
||||
@ -1487,7 +1487,7 @@ bgp_feed_end(struct channel *C)
|
||||
struct bgp_channel *c = (void *) C;
|
||||
|
||||
/* Ignore non-BGP channels */
|
||||
if (C->channel != &channel_bgp)
|
||||
if (C->class != &channel_bgp)
|
||||
return;
|
||||
|
||||
/* This should not happen */
|
||||
@ -2682,7 +2682,7 @@ bgp_show_proto_info(struct proto *P)
|
||||
{
|
||||
channel_show_info(&c->c);
|
||||
|
||||
if (c->c.channel != &channel_bgp)
|
||||
if (c->c.class != &channel_bgp)
|
||||
continue;
|
||||
|
||||
if (p->gr_active_num)
|
||||
|
@ -513,8 +513,8 @@ struct bgp_parse_state {
|
||||
#define BGP_RX_BUFFER_EXT_SIZE 65535
|
||||
#define BGP_TX_BUFFER_EXT_SIZE 65535
|
||||
|
||||
#define BGP_CF_WALK_CHANNELS(P,C) WALK_LIST(C, P->c.channels) if (C->c.channel == &channel_bgp)
|
||||
#define BGP_WALK_CHANNELS(P,C) WALK_LIST(C, P->p.channels) if (C->c.channel == &channel_bgp)
|
||||
#define BGP_CF_WALK_CHANNELS(P,C) WALK_LIST(C, P->c.channels) if (C->c.class == &channel_bgp)
|
||||
#define BGP_WALK_CHANNELS(P,C) WALK_LIST(C, P->p.channels) if (C->c.class == &channel_bgp)
|
||||
|
||||
#define BGP_MSG_HDR_MARKER_SIZE 16
|
||||
#define BGP_MSG_HDR_MARKER_POS 0
|
||||
|
@ -140,7 +140,7 @@ pipe_configure_channels(struct pipe_proto *p, struct pipe_config *cf)
|
||||
|
||||
struct channel_config pri_cf = {
|
||||
.name = "pri",
|
||||
.channel = cc->channel,
|
||||
.class = cc->class,
|
||||
.table = cc->table,
|
||||
.out_filter = cc->out_filter,
|
||||
.in_limit = cc->in_limit,
|
||||
@ -151,7 +151,7 @@ pipe_configure_channels(struct pipe_proto *p, struct pipe_config *cf)
|
||||
|
||||
struct channel_config sec_cf = {
|
||||
.name = "sec",
|
||||
.channel = cc->channel,
|
||||
.class = cc->class,
|
||||
.table = cf->peer,
|
||||
.out_filter = cc->in_filter,
|
||||
.in_limit = cc->out_limit,
|
||||
|
Loading…
Reference in New Issue
Block a user