forked from Mirror/frr
lib: Remove System routes from ip protocol route map choices
Do not allow system routes to be selected for ip protocol Signed-off-by: Donald Sharp <sharpd@nvidia.com>
This commit is contained in:
parent
190906aaf1
commit
fb8e399e4f
|
@ -1133,10 +1133,8 @@ kernel.
|
||||||
- any,
|
- any,
|
||||||
- babel,
|
- babel,
|
||||||
- bgp,
|
- bgp,
|
||||||
- connected,
|
|
||||||
- eigrp,
|
- eigrp,
|
||||||
- isis,
|
- isis,
|
||||||
- kernel,
|
|
||||||
- nhrp,
|
- nhrp,
|
||||||
- openfabric,
|
- openfabric,
|
||||||
- ospf,
|
- ospf,
|
||||||
|
|
|
@ -127,9 +127,12 @@ printf "#define SHOW_ROUTE_V6_HEADER \\\n%s\n", codelist(@protosv6);
|
||||||
print "\n";
|
print "\n";
|
||||||
|
|
||||||
sub collect {
|
sub collect {
|
||||||
my ($daemon, $ipv4, $ipv6, $any) = @_;
|
my ($daemon, $ipv4, $ipv6, $any, $ip_prot) = @_;
|
||||||
my (@names, @help) = ((), ());
|
my (@names, @help) = ((), ());
|
||||||
for my $p (@protos) {
|
for my $p (@protos) {
|
||||||
|
next if ($ip_prot == 1 && $daemon eq "zebra" && $protodetail{$p}->{"cname"} eq "kernel");
|
||||||
|
next if ($ip_prot == 1 && $daemon eq "zebra" && $protodetail{$p}->{"cname"} eq "connected");
|
||||||
|
next if ($ip_prot == 1 && $daemon eq "zebra" && $protodetail{$p}->{"cname"} eq "local");
|
||||||
next if ($protodetail{$p}->{"daemon"} eq $daemon && $daemon ne "zebra");
|
next if ($protodetail{$p}->{"daemon"} eq $daemon && $daemon ne "zebra");
|
||||||
next if ($protodetail{$p}->{"restrict2"} ne "" &&
|
next if ($protodetail{$p}->{"restrict2"} ne "" &&
|
||||||
$protodetail{$p}->{"restrict2"} ne $daemon);
|
$protodetail{$p}->{"restrict2"} ne $daemon);
|
||||||
|
@ -151,24 +154,24 @@ for my $daemon (sort keys %daemons) {
|
||||||
next unless ($daemons{$daemon}->{"ipv4"} || $daemons{$daemon}->{"ipv6"});
|
next unless ($daemons{$daemon}->{"ipv4"} || $daemons{$daemon}->{"ipv6"});
|
||||||
printf "/* %s */\n", $daemon;
|
printf "/* %s */\n", $daemon;
|
||||||
if ($daemons{$daemon}->{"ipv4"} && $daemons{$daemon}->{"ipv6"}) {
|
if ($daemons{$daemon}->{"ipv4"} && $daemons{$daemon}->{"ipv6"}) {
|
||||||
my ($names, $help) = collect($daemon, 1, 1, 0);
|
my ($names, $help) = collect($daemon, 1, 1, 0, 0);
|
||||||
printf "#define FRR_REDIST_STR_%s \\\n %s\n", uc $daemon, $names;
|
printf "#define FRR_REDIST_STR_%s \\\n %s\n", uc $daemon, $names;
|
||||||
printf "#define FRR_REDIST_HELP_STR_%s \\\n%s\n", uc $daemon, $help;
|
printf "#define FRR_REDIST_HELP_STR_%s \\\n%s\n", uc $daemon, $help;
|
||||||
|
|
||||||
($names, $help) = collect($daemon, 1, 0, 0);
|
($names, $help) = collect($daemon, 1, 0, 0, 0);
|
||||||
printf "#define FRR_IP_REDIST_STR_%s \\\n %s\n", uc $daemon, $names;
|
printf "#define FRR_IP_REDIST_STR_%s \\\n %s\n", uc $daemon, $names;
|
||||||
printf "#define FRR_IP_REDIST_HELP_STR_%s \\\n%s\n", uc $daemon, $help;
|
printf "#define FRR_IP_REDIST_HELP_STR_%s \\\n%s\n", uc $daemon, $help;
|
||||||
|
|
||||||
($names, $help) = collect($daemon, 0, 1, 0);
|
($names, $help) = collect($daemon, 0, 1, 0, 0);
|
||||||
printf "#define FRR_IP6_REDIST_STR_%s \\\n %s\n", uc $daemon, $names;
|
printf "#define FRR_IP6_REDIST_STR_%s \\\n %s\n", uc $daemon, $names;
|
||||||
printf "#define FRR_IP6_REDIST_HELP_STR_%s \\\n%s\n", uc $daemon, $help;
|
printf "#define FRR_IP6_REDIST_HELP_STR_%s \\\n%s\n", uc $daemon, $help;
|
||||||
|
|
||||||
if ($daemon eq "zebra") {
|
if ($daemon eq "zebra") {
|
||||||
($names, $help) = collect($daemon, 1, 0, 1);
|
($names, $help) = collect($daemon, 1, 0, 1, 1);
|
||||||
printf "#define FRR_IP_PROTOCOL_MAP_STR_%s \\\n %s\n", uc $daemon, $names;
|
printf "#define FRR_IP_PROTOCOL_MAP_STR_%s \\\n %s\n", uc $daemon, $names;
|
||||||
printf "#define FRR_IP_PROTOCOL_MAP_HELP_STR_%s \\\n%s\n", uc $daemon, $help;
|
printf "#define FRR_IP_PROTOCOL_MAP_HELP_STR_%s \\\n%s\n", uc $daemon, $help;
|
||||||
|
|
||||||
($names, $help) = collect($daemon, 0, 1, 1);
|
($names, $help) = collect($daemon, 0, 1, 1, 1);
|
||||||
printf "#define FRR_IP6_PROTOCOL_MAP_STR_%s \\\n %s\n", uc $daemon, $names;
|
printf "#define FRR_IP6_PROTOCOL_MAP_STR_%s \\\n %s\n", uc $daemon, $names;
|
||||||
printf "#define FRR_IP6_PROTOCOL_MAP_HELP_STR_%s \\\n%s\n", uc $daemon, $help;
|
printf "#define FRR_IP6_PROTOCOL_MAP_HELP_STR_%s \\\n%s\n", uc $daemon, $help;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1983,6 +1983,10 @@ static void lib_vrf_zebra_ipv6_router_id_cli_write(struct vty *vty,
|
||||||
vty_out(vty, "ipv6 router-id %s\n", id);
|
vty_out(vty, "ipv6 router-id %s\n", id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Both the v4 and v6 version of this command are now limiting the
|
||||||
|
* usage of System route types from being considered here at all
|
||||||
|
*/
|
||||||
DEFPY_YANG (ip_protocol,
|
DEFPY_YANG (ip_protocol,
|
||||||
ip_protocol_cmd,
|
ip_protocol_cmd,
|
||||||
"[no] ip protocol " FRR_IP_PROTOCOL_MAP_STR_ZEBRA
|
"[no] ip protocol " FRR_IP_PROTOCOL_MAP_STR_ZEBRA
|
||||||
|
|
Loading…
Reference in a new issue