> [..]
> >
> > -Converts a given C<\%frr_config> to the raw config format.
> > +Iterates over all bgp route-maps in C<\$frr_config> and renumbers their
> > sequence
> > +numbers to be consecutive, starting from 1 and incrementing by 1 for each
> > entry.
> >
> > =cut
> >
> > -sub to_raw_config {
> > +sub fix_routemap_seqs {
> > my ($frr_config) = @_;
> >
> > - my $raw_config = [];
> > + my $routemaps = $frr_config->{'frr'}->{'bgp'}->{'routemaps'};
>
> we should check if `routemaps`(and probably also `bgp`) exists, either
> here, or where we call this in `generate_frr_raw_config`. but here is
> probably better
Damn, these are some weird diffs??
When the whole patch series is applied this is:
my $routemaps = $frr_config->{'frr'}->{'routemaps'};
So I'll add a check if 'routemaps' exists, thanks!
> > - generate_frr_vrf($raw_config, $frr_config->{frr}->{vrf});
> > - generate_frr_interfaces($raw_config, $frr_config->{frr_interfaces});
> > - generate_frr_recurse($raw_config, $frr_config->{frr}, undef, 0);
> > - generate_frr_list($raw_config, $frr_config->{frr_access_list},
> > "access-list");
> > - generate_frr_list($raw_config, $frr_config->{frr_prefix_list}, "ip
> > prefix-list");
> > - generate_frr_list($raw_config, $frr_config->{frr_prefix_list_v6},
> > "ipv6 prefix-list");
> > - generate_frr_simple_list($raw_config,
> > $frr_config->{frr_bgp_community_list});
> > - generate_frr_routemap($raw_config, $frr_config->{frr_routemap});
> > - generate_frr_simple_list($raw_config, $frr_config->{frr_ip_protocol});
> > -
> > - return $raw_config;
> > + foreach my $id (sort keys %$routemaps) {
> > + my $routemap = $routemaps->{$id};
> > + my $order = 0;
> > + foreach my $seq (@$routemap) {
> > + $order++;
> > + $seq->{seq} = $order;
> > + }
> > + }
> > }
> > [..]