diff options
Diffstat (limited to 'proto')
-rw-r--r-- | proto/bgp/config.Y | 16 | ||||
-rw-r--r-- | proto/ospf/config.Y | 7 | ||||
-rw-r--r-- | proto/pipe/config.Y | 2 | ||||
-rw-r--r-- | proto/radv/radv.c | 2 | ||||
-rw-r--r-- | proto/rip/rip.c | 2 | ||||
-rw-r--r-- | proto/rpki/rpki.c | 2 |
6 files changed, 18 insertions, 13 deletions
diff --git a/proto/bgp/config.Y b/proto/bgp/config.Y index 6ce0f1aa..4e819eb7 100644 --- a/proto/bgp/config.Y +++ b/proto/bgp/config.Y @@ -158,12 +158,16 @@ bgp_channel_start: bgp_afi if (!desc) cf_error("Unknown AFI/SAFI"); - this_channel = channel_config_new(&channel_bgp, desc->net, this_proto); - BGP_CC->c.name = desc->name; - BGP_CC->c.ra_mode = RA_UNDEF; - BGP_CC->afi = $1; - BGP_CC->desc = desc; - BGP_CC->gr_able = 0xff; /* undefined */ + this_channel = channel_config_get(&channel_bgp, desc->name, desc->net, this_proto); + + /* New channel */ + if (!BGP_CC->desc) + { + BGP_CC->c.ra_mode = RA_UNDEF; + BGP_CC->afi = $1; + BGP_CC->desc = desc; + BGP_CC->gr_able = 0xff; /* undefined */ + } }; bgp_channel_item: diff --git a/proto/ospf/config.Y b/proto/ospf/config.Y index ce409a3a..005f4381 100644 --- a/proto/ospf/config.Y +++ b/proto/ospf/config.Y @@ -84,8 +84,8 @@ ospf_proto_finish(void) /* Define default channel */ if (EMPTY_LIST(this_proto->channels)) { - this_proto->net_type = ospf_cfg_is_v2() ? NET_IP4 : NET_IP6; - channel_config_new(NULL, this_proto->net_type, this_proto); + uint net_type = this_proto->net_type = ospf_cfg_is_v2() ? NET_IP4 : NET_IP6; + channel_config_new(NULL, net_label[net_type], net_type, this_proto); } /* Propagate global instance ID to interfaces */ @@ -238,7 +238,8 @@ ospf_af_mc: /* We redefine proto_channel to add multicast flag */ ospf_channel_start: net_type ospf_af_mc { - $$ = this_channel = channel_config_new(NULL, $1, this_proto); + /* TODO: change name for multicast channels */ + $$ = this_channel = channel_config_get(NULL, net_label[$1], $1, this_proto); /* Save the multicast flag */ if (this_channel == proto_cf_main_channel(this_proto)) diff --git a/proto/pipe/config.Y b/proto/pipe/config.Y index f51ee575..4f96fdcb 100644 --- a/proto/pipe/config.Y +++ b/proto/pipe/config.Y @@ -25,7 +25,7 @@ CF_ADDTO(proto, pipe_proto '}' { this_channel = NULL; } ) pipe_proto_start: proto_start PIPE { this_proto = proto_config_new(&proto_pipe, $1); - this_channel = channel_config_new(NULL, 0, this_proto); + this_channel = channel_config_new(NULL, NULL, 0, this_proto); this_channel->in_filter = FILTER_ACCEPT; this_channel->out_filter = FILTER_ACCEPT; }; diff --git a/proto/radv/radv.c b/proto/radv/radv.c index 0a2a3e78..8a79dfaf 100644 --- a/proto/radv/radv.c +++ b/proto/radv/radv.c @@ -569,7 +569,7 @@ radv_postconfig(struct proto_config *CF) /* Define default channel */ if (EMPTY_LIST(CF->channels)) - channel_config_new(NULL, NET_IP6, CF); + channel_config_new(NULL, net_label[NET_IP6], NET_IP6, CF); } static struct proto * diff --git a/proto/rip/rip.c b/proto/rip/rip.c index a3eeaf17..85e37cea 100644 --- a/proto/rip/rip.c +++ b/proto/rip/rip.c @@ -1078,7 +1078,7 @@ rip_postconfig(struct proto_config *CF) /* Define default channel */ if (EMPTY_LIST(CF->channels)) - channel_config_new(NULL, CF->net_type, CF); + channel_config_new(NULL, net_label[CF->net_type], CF->net_type, CF); } static struct proto * diff --git a/proto/rpki/rpki.c b/proto/rpki/rpki.c index 3145399b..74860071 100644 --- a/proto/rpki/rpki.c +++ b/proto/rpki/rpki.c @@ -901,7 +901,7 @@ rpki_postconfig(struct proto_config *CF) { /* Define default channel */ if (EMPTY_LIST(CF->channels)) - channel_config_new(NULL, CF->net_type, CF); + channel_config_new(NULL, net_label[CF->net_type], CF->net_type, CF); } static void |