mirror of
https://github.com/FRRouting/frr.git
synced 2025-04-30 13:37:17 +02:00
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,
|
||||
- babel,
|
||||
- bgp,
|
||||
- connected,
|
||||
- eigrp,
|
||||
- isis,
|
||||
- kernel,
|
||||
- nhrp,
|
||||
- openfabric,
|
||||
- ospf,
|
||||
|
|
|
@ -127,9 +127,12 @@ printf "#define SHOW_ROUTE_V6_HEADER \\\n%s\n", codelist(@protosv6);
|
|||
print "\n";
|
||||
|
||||
sub collect {
|
||||
my ($daemon, $ipv4, $ipv6, $any) = @_;
|
||||
my ($daemon, $ipv4, $ipv6, $any, $ip_prot) = @_;
|
||||
my (@names, @help) = ((), ());
|
||||
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}->{"restrict2"} ne "" &&
|
||||
$protodetail{$p}->{"restrict2"} ne $daemon);
|
||||
|
@ -151,24 +154,24 @@ for my $daemon (sort keys %daemons) {
|
|||
next unless ($daemons{$daemon}->{"ipv4"} || $daemons{$daemon}->{"ipv6"});
|
||||
printf "/* %s */\n", $daemon;
|
||||
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_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_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_HELP_STR_%s \\\n%s\n", uc $daemon, $help;
|
||||
|
||||
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_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_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);
|
||||
}
|
||||
|
||||
/*
|
||||
* 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,
|
||||
ip_protocol_cmd,
|
||||
"[no] ip protocol " FRR_IP_PROTOCOL_MAP_STR_ZEBRA
|
||||
|
|
Loading…
Reference in a new issue