On 19.02.2026 16:36, Gabriel Goller wrote:
> > [..]
> > >
> > > -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??
Oh, turns out a hunk that changed this line is in a later change. Moved
it back where it belongs :)
> 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;
> > > + }
> > > + }
> > > }
> > > [..]