]> git.proxmox.com Git - mirror_frr.git/blob - redhat/frr.spec.in
04a3258980cf14a808b18ad128e1be8a7200fe23
[mirror_frr.git] / redhat / frr.spec.in
1 # configure options
2 #
3 # Some can be overridden on rpmbuild commandline with:
4 # rpmbuild --define 'variable value'
5 # (use any value, ie 1 for flag "with_XXXX" definitions)
6 #
7 # E.g. rpmbuild --define 'release_rev 02' may be useful if building
8 # rpms again and again on the same day, so the newer rpms can be installed.
9 # bumping the number each time.
10
11 #################### FRRouting (FRR) configure options #####################
12 # with-feature options
13 %{!?with_babeld: %global with_babeld 1 }
14 %{!?with_bfdd: %global with_bfdd 1 }
15 %{!?with_bgp_vnc: %global with_bgp_vnc 0 }
16 %{!?with_cumulus: %global with_cumulus 0 }
17 %{!?with_eigrpd: %global with_eigrpd 1 }
18 %{!?with_fpm: %global with_fpm 1 }
19 %{!?with_ldpd: %global with_ldpd 1 }
20 %{!?with_multipath: %global with_multipath 256 }
21 %{!?with_nhrpd: %global with_nhrpd 1 }
22 %{!?with_ospfapi: %global with_ospfapi 1 }
23 %{!?with_ospfclient: %global with_ospfclient 1 }
24 %{!?with_pam: %global with_pam 0 }
25 %{!?with_pbrd: %global with_pbrd 1 }
26 %{!?with_pimd: %global with_pimd 1 }
27 %{!?with_vrrpd: %global with_vrrpd 1 }
28 %{!?with_rtadv: %global with_rtadv 1 }
29 %{!?with_watchfrr: %global with_watchfrr 1 }
30 %{!?with_pathd: %global with_pathd 1 }
31
32 # user and group
33 %{!?frr_user: %global frr_user frr }
34 %{!?vty_group: %global vty_group frrvty }
35
36 # path defines
37 %define configdir %{_sysconfdir}/%{name}
38 %define _sbindir /usr/lib/frr
39 %define zeb_src %{_builddir}/%{name}-%{frrversion}
40 %define zeb_rh_src %{zeb_src}/redhat
41 %define zeb_docs %{zeb_src}/doc
42 %define frr_tools %{zeb_src}/tools
43
44 # defines for configure
45 %define rundir %{_localstatedir}/run/%{name}
46
47 ############################################################################
48
49 #### Version String tweak
50 # Remove invalid characters form version string and replace with _
51 %{expand: %%global rpmversion %(echo '@VERSION@' | tr [:blank:]- _ )}
52 %define frrversion @VERSION@
53
54 #### Check for systemd or init.d (upstart)
55 # Check for init.d (upstart) as used in CentOS 6 or systemd (ie CentOS 7)
56 %if 0%{?fedora} || 0%{?rhel} >= 7 || 0%{?suse_version} >= 1210
57 %global initsystem systemd
58 %else
59 %if 0%{?rhel} && 0%{?rhel} < 7
60 %global initsystem upstart
61 %else
62 %{expand: %%global initsystem %(if [[ `/sbin/init --version 2> /dev/null` =~ upstart ]]; then echo upstart; elif [[ `readlink -f /sbin/init` = /usr/lib/systemd/systemd ]]; then echo systemd; elif [[ `systemctl` =~ -\.mount ]]; then echo systemd; fi)}
63 %endif
64 %endif
65
66 # Check for python version - use python2.7 on CentOS 6, otherwise python3
67 %if 0%{?rhel} && 0%{?rhel} < 7
68 %global use_python2 1
69 %else
70 %global use_python2 0
71 %endif
72
73 # If init system is systemd, then always enable watchfrr
74 %if "%{initsystem}" == "systemd"
75 %global with_watchfrr 1
76 %endif
77
78 #### Check for RedHat 6.x or CentOS 6.x - they are too old to support PIM.
79 #### Always disable it on these old systems unconditionally
80 #
81 # if CentOS / RedHat and version < 7, then disable PIMd (too old, won't work)
82 %if 0%{?rhel} && 0%{?rhel} < 7
83 %global with_pimd 0
84 %endif
85
86 # misc internal defines
87 %{!?frr_uid: %global frr_uid 92 }
88 %{!?frr_gid: %global frr_gid 92 }
89 %{!?vty_gid: %global vty_gid 85 }
90
91 %define daemon_list zebra ripd ospfd bgpd isisd ripngd ospf6d pbrd staticd bfdd fabricd pathd
92
93 %if %{with_ldpd}
94 %define daemon_ldpd ldpd
95 %else
96 %define daemon_ldpd ""
97 %endif
98
99 %if %{with_pimd}
100 %define daemon_pimd pimd
101 %else
102 %define daemon_pimd ""
103 %endif
104
105 %if %{with_pbrd}
106 %define daemon_pbrd pbrd
107 %else
108 %define daemon_pbrd ""
109 %endif
110
111 %if %{with_nhrpd}
112 %define daemon_nhrpd nhrpd
113 %else
114 %define daemon_nhrpd ""
115 %endif
116
117 %if %{with_eigrpd}
118 %define daemon_eigrpd eigrpd
119 %else
120 %define daemon_eigrpd ""
121 %endif
122
123 %if %{with_babeld}
124 %define daemon_babeld babeld
125 %else
126 %define daemon_babeld ""
127 %endif
128
129 %if %{with_vrrpd}
130 %define daemon_vrrpd vrrpd
131 %else
132 %define daemon_vrrpd ""
133 %endif
134
135 %if %{with_watchfrr}
136 %define daemon_watchfrr watchfrr
137 %else
138 %define daemon_watchfrr ""
139 %endif
140
141 %if %{with_bfdd}
142 %define daemon_bfdd bfdd
143 %else
144 %define daemon_bfdd ""
145 %endif
146
147 %if %{with_pathd}
148 %define daemon_pathd pathd
149 %else
150 %define daemon_pathd ""
151 %endif
152
153 %define all_daemons %{daemon_list} %{daemon_ldpd} %{daemon_pimd} %{daemon_nhrpd} %{daemon_eigrpd} %{daemon_babeld} %{daemon_watchfrr} %{daemon_pbrd} %{daemon_bfdd} %{daemon_vrrpd} %{daemon_pathd}
154
155 #release sub-revision (the two digits after the CONFDATE)
156 %{!?release_rev: %global release_rev 01 }
157
158 Summary: Routing daemon
159 Name: frr
160 Version: %{rpmversion}
161 Release: %{release_rev}%{?dist}
162 License: GPLv2+
163 Group: System Environment/Daemons
164 Source0: https://github.com/FRRouting/frr/archive/%{name}-%{frrversion}.tar.gz
165 URL: https://www.frrouting.org
166 Requires(pre): shadow-utils
167 Requires(preun): info
168 Requires(post): info
169 BuildRequires: bison >= 2.7
170 BuildRequires: c-ares-devel
171 BuildRequires: flex
172 BuildRequires: gcc
173 BuildRequires: json-c-devel
174 BuildRequires: libcap-devel
175 BuildRequires: make
176 BuildRequires: ncurses-devel
177 BuildRequires: readline-devel
178 BuildRequires: texinfo
179 BuildRequires: libyang2-devel
180 %if 0%{?rhel} && 0%{?rhel} < 7
181 #python27-devel is available from ius community repo for RedHat/CentOS 6
182 BuildRequires: python27-devel
183 BuildRequires: python27-sphinx
184 %else
185 %if %{use_python2}
186 BuildRequires: python-devel >= 2.7
187 BuildRequires: python-sphinx
188 %else
189 BuildRequires: python3-devel
190 BuildRequires: python3-sphinx
191 %endif
192 %endif
193 %if 0%{?rhel} > 7
194 #platform-python-devel is needed for /usr/bin/pathfix.py
195 BuildRequires: platform-python-devel
196 %endif
197 Requires: initscripts
198 %if %{with_pam}
199 BuildRequires: pam-devel
200 %endif
201 %if "%{initsystem}" == "systemd"
202 BuildRequires: systemd
203 BuildRequires: systemd-devel
204 Requires(post): systemd
205 Requires(preun): systemd
206 Requires(postun): systemd
207 %else
208 Requires(post): chkconfig
209 Requires(preun): chkconfig
210 # Initscripts > 5.60 is required for IPv6 support
211 Requires(pre): initscripts >= 5.60
212 %endif
213 Provides: routingdaemon = %{version}-%{release}
214 Obsoletes: gated mrt zebra frr-sysvinit
215 Conflicts: bird
216
217
218 %description
219 FRRouting is a free software that manages TCP/IP based routing
220 protocol. It takes multi-server and multi-thread approach to resolve
221 the current complexity of the Internet.
222
223 FRRouting supports BGP4, OSPFv2, OSPFv3, ISIS, RIP, RIPng, PIM, LDP
224 NHRP, Babel, PBR, EIGRP and BFD.
225
226 FRRouting is a fork of Quagga.
227
228
229 %package contrib
230 Summary: contrib tools for frr
231 Group: System Environment/Daemons
232
233 %description contrib
234 Contributed/3rd party tools which may be of use with frr.
235
236
237 %package pythontools
238 Summary: python tools for frr
239 %if 0%{?rhel} && 0%{?rhel} < 7
240 #python27 is available from ius community repo for RedHat/CentOS 6
241 BuildRequires: python27
242 Requires: python27-ipaddress
243 %else
244 %if %{use_python2}
245 BuildRequires: python2
246 Requires: python2-ipaddress
247 %else
248 BuildRequires: python3
249 %endif
250 %endif
251 Group: System Environment/Daemons
252
253 %description pythontools
254 Contributed python 2.7 tools which may be of use with frr.
255
256
257 %package devel
258 Summary: Header and object files for frr development
259 Group: System Environment/Daemons
260 Requires: %{name} = %{version}-%{release}
261
262 %description devel
263 The frr-devel package contains the header and object files neccessary for
264 developing OSPF-API and frr applications.
265
266
267 %package rpki-rtrlib
268 Summary: BGP RPKI support (rtrlib)
269 Group: System Environment/Daemons
270 BuildRequires: librtr-devel >= 0.5
271 Requires: %{name} = %{version}-%{release}
272
273 %description rpki-rtrlib
274 Adds RPKI support to FRR's bgpd, allowing validation of BGP routes
275 against cryptographic information stored in WHOIS databases. This is
276 used to prevent hijacking of networks on the wider internet. It is only
277 relevant to internet service providers using their own autonomous system
278 number.
279
280
281 %package snmp
282 Summary: SNMP support
283 Group: System Environment/Daemons
284 BuildRequires: net-snmp-devel
285 Requires: %{name} = %{version}-%{release}
286
287 %description snmp
288 Adds SNMP support to FRR's daemons by attaching to net-snmp's snmpd
289 through the AgentX protocol. Provides read-only access to current
290 routing state through standard SNMP MIBs.
291
292
293 %prep
294 %setup -q -n frr-%{frrversion}
295
296
297 %build
298
299 # For standard gcc verbosity, uncomment these lines:
300 #CFLAGS="%{optflags} -Wall -Wsign-compare -Wpointer-arith"
301 #CFLAGS="${CFLAGS} -Wbad-function-cast -Wwrite-strings"
302
303 # For ultra gcc verbosity, uncomment these lines also:
304 #CFLAGS="${CFLAGS} -W -Wcast-qual -Wstrict-prototypes"
305 #CFLAGS="${CFLAGS} -Wmissing-declarations -Wmissing-noreturn"
306 #CFLAGS="${CFLAGS} -Wmissing-format-attribute -Wunreachable-code"
307 #CFLAGS="${CFLAGS} -Wpacked -Wpadded"
308
309 %configure \
310 --sbindir=%{_sbindir} \
311 --sysconfdir=%{configdir} \
312 --localstatedir=%{rundir} \
313 --disable-static \
314 --disable-werror \
315 --enable-irdp \
316 %if %{with_multipath}
317 --enable-multipath=%{with_multipath} \
318 %endif
319 --enable-vtysh \
320 %if %{with_ospfclient}
321 --enable-ospfclient \
322 %else
323 --disable-ospfclient\
324 %endif
325 %if %{with_ospfapi}
326 --enable-ospfapi \
327 %else
328 --disable-ospfapi \
329 %endif
330 %if %{with_rtadv}
331 --enable-rtadv \
332 %else
333 --disable-rtadv \
334 %endif
335 %if %{with_ldpd}
336 --enable-ldpd \
337 %else
338 --disable-ldpd \
339 %endif
340 %if %{with_pimd}
341 --enable-pimd \
342 %else
343 --disable-pimd \
344 %endif
345 %if %{with_pbrd}
346 --enable-pbrd \
347 %else
348 --disable-pbrd \
349 %endif
350 %if %{with_nhrpd}
351 --enable-nhrpd \
352 %else
353 --disable-nhrpd \
354 %endif
355 %if %{with_eigrpd}
356 --enable-eigrpd \
357 %else
358 --disable-eigrpd \
359 %endif
360 %if %{with_babeld}
361 --enable-babeld \
362 %else
363 --disable-babeld \
364 %endif
365 %if %{with_vrrpd}
366 --enable-vrrpd \
367 %else
368 --disable-vrrpd \
369 %endif
370 %if %{with_pam}
371 --with-libpam \
372 %endif
373 %if 0%{?frr_user:1}
374 --enable-user=%{frr_user} \
375 --enable-group=%{frr_user} \
376 %endif
377 %if 0%{?vty_group:1}
378 --enable-vty-group=%{vty_group} \
379 %endif
380 %if %{with_fpm}
381 --enable-fpm \
382 %else
383 --disable-fpm \
384 %endif
385 %if %{with_watchfrr}
386 --enable-watchfrr \
387 %else
388 --disable-watchfrr \
389 %endif
390 %if %{with_cumulus}
391 --enable-cumulus \
392 %endif
393 %if %{with_bgp_vnc}
394 --enable-bgp-vnc \
395 %else
396 --disable-bgp-vnc \
397 %endif
398 --enable-isisd \
399 %if "%{initsystem}" == "systemd"
400 --enable-systemd \
401 %endif
402 --enable-rpki \
403 %if %{with_bfdd}
404 --enable-bfdd \
405 %else
406 --disable-bfdd \
407 %endif
408 %if %{with_pathd}
409 --enable-pathd \
410 %else
411 --disable-pathd \
412 %endif
413 --enable-snmp
414 # end
415
416 make %{?_smp_mflags} MAKEINFO="makeinfo --no-split"
417
418 %if %{use_python2}
419 # Change frr-reload.py to use python2.7
420 sed -e '1c #!/usr/bin/python2.7' -i %{zeb_src}/tools/frr-reload.py
421 sed -e '1c #!/usr/bin/python2.7' -i %{zeb_src}/tools/generate_support_bundle.py
422 %else
423 # Change frr-reload.py to use python3
424 sed -e '1c #!/usr/bin/python3' -i %{zeb_src}/tools/frr-reload.py
425 sed -e '1c #!/usr/bin/python3' -i %{zeb_src}/tools/generate_support_bundle.py
426 %endif
427
428 pushd doc
429 make info
430 popd
431
432
433 %install
434 mkdir -p %{buildroot}%{_sysconfdir}/{frr,sysconfig,logrotate.d,pam.d,default} \
435 %{buildroot}%{_localstatedir}/log/frr %{buildroot}%{_infodir}
436 make DESTDIR=%{buildroot} INSTALL="install -p" CP="cp -p" install
437
438 # Remove this file, as it is uninstalled and causes errors when building on RH9
439 rm -rf %{buildroot}/usr/share/info/dir
440
441 # Remove debian init script if it was installed
442 rm -f %{buildroot}%{_sbindir}/frr
443
444 # kill bogus libtool files
445 rm -vf %{buildroot}%{_libdir}/frr/modules/*.la
446 rm -vf %{buildroot}%{_libdir}/*.la
447 rm -vf %{buildroot}%{_libdir}/frr/libyang_plugins/*.la
448
449 # install /etc sources
450 %if "%{initsystem}" == "systemd"
451 mkdir -p %{buildroot}%{_unitdir}
452 install -m644 %{zeb_src}/tools/frr.service %{buildroot}%{_unitdir}/frr.service
453 %else
454 mkdir -p %{buildroot}%{_initddir}
455 ln -s %{_sbindir}/frrinit.sh %{buildroot}%{_initddir}/frr
456 %endif
457
458 install %{zeb_src}/tools/etc/frr/daemons %{buildroot}%{_sysconfdir}/frr
459 install %{zeb_src}/tools/etc/frr/frr.conf %{buildroot}%{_sysconfdir}/frr/frr.conf.template
460 install -m644 %{zeb_rh_src}/frr.pam %{buildroot}%{_sysconfdir}/pam.d/frr
461 install -m644 %{zeb_rh_src}/frr.logrotate %{buildroot}%{_sysconfdir}/logrotate.d/frr
462 install -d -m750 %{buildroot}%{rundir}
463
464 %if 0%{?rhel} > 7 || 0%{?fedora} > 29
465 # avoid `ERROR: ambiguous python shebang in` errors
466 pathfix.py -pni "%{__python3} %{py3_shbang_opts}" %{buildroot}/usr/lib/frr/*.py
467 %py_byte_compile %{__python3} %{buildroot}/usr/lib/frr/*.py
468 %endif
469
470 %pre
471 # add vty_group
472 %if 0%{?vty_group:1}
473 getent group %{vty_group} >/dev/null || groupadd -r -g %{vty_gid} %{vty_group}
474 %endif
475
476 # add frr user and group
477 %if 0%{?frr_user:1}
478 # Ensure that frr_gid gets correctly allocated
479 getent group %{frr_user} >/dev/null || groupadd -g %{frr_gid} %{frr_user}
480 getent passwd %{frr_user} >/dev/null || \
481 useradd -r -u %{frr_uid} -g %{frr_user} \
482 -s /sbin/nologin -c "FRRouting suite" \
483 -d %{rundir} %{frr_user}
484
485 %if 0%{?vty_group:1}
486 usermod -a -G %{vty_group} %{frr_user}
487 %endif
488 %endif
489 exit 0
490
491
492 %post
493 # zebra_spec_add_service <service name> <port/proto> <comment>
494 # e.g. zebra_spec_add_service zebrasrv 2600/tcp "zebra service"
495
496 zebra_spec_add_service ()
497 {
498 # Add port /etc/services entry if it isn't already there
499 if [ -f %{_sysconfdir}/services ] && \
500 ! %__sed -e 's/#.*$//' %{_sysconfdir}/services 2>/dev/null | %__grep -wq $1 ; then
501 echo "$1 $2 # $3" >> %{_sysconfdir}/services
502 fi
503 }
504
505 zebra_spec_add_service zebrasrv 2600/tcp "zebra service"
506 zebra_spec_add_service zebra 2601/tcp "zebra vty"
507 zebra_spec_add_service staticd 2616/tcp "staticd vty"
508 zebra_spec_add_service ripd 2602/tcp "RIPd vty"
509 zebra_spec_add_service ripngd 2603/tcp "RIPngd vty"
510 zebra_spec_add_service ospfd 2604/tcp "OSPFd vty"
511 zebra_spec_add_service bgpd 2605/tcp "BGPd vty"
512 zebra_spec_add_service ospf6d 2606/tcp "OSPF6d vty"
513 zebra_spec_add_service isisd 2608/tcp "ISISd vty"
514 %if %{with_ospfapi}
515 zebra_spec_add_service ospfapi 2607/tcp "OSPF-API"
516 %endif
517 %if %{with_babeld}
518 zebra_spec_add_service babeld 2609/tcp "BABELd vty"
519 %endif
520 %if %{with_nhrpd}
521 zebra_spec_add_service nhrpd 2610/tcp "NHRPd vty"
522 %endif
523 %if %{with_pimd}
524 zebra_spec_add_service pimd 2611/tcp "PIMd vty"
525 %endif
526 %if %{with_pbrd}
527 zebra_spec_add_service pbrd 2615/tcp "PBRd vty"
528 %endif
529 %if %{with_ldpd}
530 zebra_spec_add_service ldpd 2612/tcp "LDPd vty"
531 %endif
532 %if %{with_eigrpd}
533 zebra_spec_add_service eigrpd 2613/tcp "EIGRPd vty"
534 %endif
535 %if %{with_bfdd}
536 zebra_spec_add_service bfdd 2617/tcp "BFDd vty"
537 %endif
538 zebra_spec_add_service fabricd 2618/tcp "Fabricd vty"
539 %if %{with_vrrpd}
540 zebra_spec_add_service vrrpd 2619/tcp "VRRPd vty"
541 %endif
542 %if %{with_pathd}
543 zebra_spec_add_service pathd 2620/tcp "Pathd vty"
544 %endif
545
546 %if "%{initsystem}" == "systemd"
547 for daemon in %all_daemons ; do
548 %systemd_post frr.service
549 done
550 %else
551 /sbin/chkconfig --add frr
552 %endif
553
554 # Fix bad path in previous config files
555 # Config files won't get replaced by default, so we do this ugly hack to fix it
556 %__sed -i 's|watchfrr_options=|#watchfrr_options=|g' %{configdir}/daemons 2> /dev/null || true
557
558 # With systemd, watchfrr is mandatory. Fix config to make sure it's enabled if
559 # we install or upgrade to a frr built with systemd
560 %if "%{initsystem}" == "systemd"
561 %__sed -i 's|watchfrr_enable=no|watchfrr_enable=yes|g' %{configdir}/daemons 2> /dev/null || true
562 %endif
563
564 /sbin/install-info %{_infodir}/frr.info.gz %{_infodir}/dir
565
566 # Create dummy config file if they don't exist so basic functions can be used.
567 if [ ! -e %{configdir}/frr.conf ]; then
568 # per daemon configs exist
569 mv %{configdir}/frr.conf.template %{configdir}/frr.conf
570 %if 0%{?frr_user:1}
571 chown %{frr_user}:%{frr_user} %{configdir}/frr.conf
572 %endif
573 chmod 640 %{configdir}/frr.conf
574 fi
575 %if 0%{?frr_user:1}
576 chown %{frr_user}:%{frr_user} %{configdir}/daemons
577 %endif
578
579 %if %{with_watchfrr}
580 # No config for watchfrr - this is part of /etc/sysconfig/frr
581 rm -f %{configdir}/watchfrr.*
582 %endif
583
584 if [ ! -e %{configdir}/vtysh.conf ]; then
585 touch %{configdir}/vtysh.conf
586 chmod 640 %{configdir}/vtysh.conf
587 %if 0%{?frr_user:1}
588 %if 0%{?vty_group:1}
589 chown %{frr_user}:%{vty_group} %{configdir}/vtysh.conf*
590 %endif
591 %endif
592 fi
593
594
595 %postun
596 if [ "$1" -ge 1 ]; then
597 #
598 # Upgrade from older version
599 #
600 %if "%{initsystem}" == "systemd"
601 ##
602 ## Systemd Version
603 ##
604 %systemd_postun_with_restart frr.service
605 %else
606 ##
607 ## init.d Version
608 ##
609 service frr restart >/dev/null 2>&1
610 %endif
611 :
612 fi
613
614
615 %preun
616 %if "%{initsystem}" == "systemd"
617 ##
618 ## Systemd Version
619 ##
620 if [ $1 -eq 0 ] ; then
621 %systemd_preun frr.service
622 fi
623 %else
624 ##
625 ## init.d Version
626 ##
627 if [ $1 -eq 0 ] ; then
628 service frr stop >/dev/null 2>&1
629 /sbin/chkconfig --del frr
630 fi
631 %endif
632 /sbin/install-info --delete %{_infodir}/frr.info.gz %{_infodir}/dir
633
634
635 %files
636 %doc COPYING
637 %doc doc/mpls
638 %doc README.md
639 /usr/share/yang/*.yang
640 %if 0%{?frr_user:1}
641 %dir %attr(751,%{frr_user},%{frr_user}) %{configdir}
642 %dir %attr(750,%{frr_user},%{frr_user}) %{_localstatedir}/log/frr
643 %dir %attr(751,%{frr_user},%{frr_user}) %{rundir}
644 %else
645 %dir %attr(750,root,root) %{configdir}
646 %dir %attr(750,root,root) %{_localstatedir}/log/frr
647 %dir %attr(750,root,root) %{rundir}
648 %endif
649 %{_infodir}/frr.info.gz
650 %{_mandir}/man*/*
651 %{_sbindir}/zebra
652 %{_sbindir}/staticd
653 %{_sbindir}/ospfd
654 %{_sbindir}/ripd
655 %{_sbindir}/bgpd
656 %exclude %{_sbindir}/ssd
657 %if %{with_watchfrr}
658 %{_sbindir}/watchfrr
659 %endif
660 %{_sbindir}/ripngd
661 %{_sbindir}/ospf6d
662 %if %{with_pimd}
663 %{_sbindir}/pimd
664 %endif
665 %if %{with_pbrd}
666 %{_sbindir}/pbrd
667 %endif
668 %if %{with_vrrpd}
669 %{_sbindir}/vrrpd
670 %endif
671 %{_sbindir}/isisd
672 %{_sbindir}/fabricd
673 %if %{with_ldpd}
674 %{_sbindir}/ldpd
675 %endif
676 %if %{with_eigrpd}
677 %{_sbindir}/eigrpd
678 %endif
679 %if %{with_nhrpd}
680 %{_sbindir}/nhrpd
681 %endif
682 %if %{with_babeld}
683 %{_sbindir}/babeld
684 %endif
685 %if %{with_bfdd}
686 %{_sbindir}/bfdd
687 %endif
688 %if %{with_pathd}
689 %{_sbindir}/pathd
690 %{_libdir}/frr/modules/pathd_pcep.so
691 %endif
692 %{_libdir}/libfrr.so*
693 %{_libdir}/libfrrcares*
694 %{_libdir}/libfrrospf*
695 %if %{with_fpm}
696 %{_libdir}/frr/modules/zebra_fpm.so
697 %endif
698 %{_libdir}/frr/modules/zebra_cumulus_mlag.so
699 %{_libdir}/frr/modules/dplane_fpm_nl.so
700 %{_libdir}/frr/modules/zebra_irdp.so
701 %{_libdir}/frr/modules/bgpd_bmp.so
702 %{_bindir}/*
703 %config(noreplace) %{configdir}/[!v]*.conf*
704 %config(noreplace) %attr(750,%{frr_user},%{frr_user}) %{configdir}/daemons
705 %if "%{initsystem}" == "systemd"
706 %{_unitdir}/frr.service
707 %else
708 %{_initddir}/frr
709 %endif
710 %config(noreplace) %{_sysconfdir}/pam.d/frr
711 %config(noreplace) %{_sysconfdir}/logrotate.d/frr
712 %{_sbindir}/frr-reload
713 %{_sbindir}/frrcommon.sh
714 %{_sbindir}/frrinit.sh
715 %{_sbindir}/watchfrr.sh
716
717
718 %files contrib
719 %doc tools
720
721
722 %files pythontools
723 %{_sbindir}/generate_support_bundle.py
724 %{_sbindir}/frr-reload.py
725 %{_sbindir}/frr_babeltrace.py
726 %if 0%{?rhel} > 7 || 0%{?fedora} > 29
727 %{_sbindir}/__pycache__/*
728 %else
729 %{_sbindir}/generate_support_bundle.pyc
730 %{_sbindir}/generate_support_bundle.pyo
731 %{_sbindir}/frr-reload.pyc
732 %{_sbindir}/frr-reload.pyo
733 %{_sbindir}/frr_babeltrace.pyc
734 %{_sbindir}/frr_babeltrace.pyo
735 %endif
736
737
738 %post rpki-rtrlib
739 # add rpki module to daemons
740 sed -i -e 's/^\(bgpd_options=\)\(.*\)\(".*\)/\1\2 -M rpki\3/' %{_sysconfdir}/frr/daemons
741
742 %postun rpki-rtrlib
743 # remove rpki module from daemons
744 sed -i 's/ -M rpki//' %{_sysconfdir}/frr/daemons
745
746 %files rpki-rtrlib
747 %{_libdir}/frr/modules/bgpd_rpki.so
748
749
750 %files snmp
751 %{_libdir}/libfrrsnmp.so*
752 %{_libdir}/frr/modules/*snmp.so
753
754
755 %files devel
756 %{_libdir}/lib*.so
757 %dir %{_includedir}/%{name}
758 %{_includedir}/%{name}/*.h
759 %dir %{_includedir}/%{name}/ospfd
760 %{_includedir}/%{name}/ospfd/*.h
761 %if %{with_bfdd}
762 %dir %{_includedir}/%{name}/bfdd
763 %{_includedir}/%{name}/bfdd/bfddp_packet.h
764 %endif
765 %if %{with_ospfapi}
766 %dir %{_includedir}/%{name}/ospfapi
767 %{_includedir}/%{name}/ospfapi/*.h
768 %endif
769 %if %{with_eigrpd}
770 %dir %{_includedir}/%{name}/eigrpd
771 %{_includedir}/%{name}/eigrpd/*.h
772 %endif
773
774
775 %changelog
776 * Tue Nov 4 2021 Martin Winter <mwinter@opensourcerouting.org> - %{version}
777
778 * Tue Nov 2 2021 Jafar Al-Gharaibeh <jafar@atcorp.com> - 8.1
779 - FRR 8.1 brings a long list of enhancements and fixes with 1200 commits from
780 - 75 developers. Thanks to all contributers.
781 - New Features:
782 - Lua hooks are now feature complete, with one hook available for use (http://docs.frrouting.org/en/latest/scripting.html)
783 - Improvements to SRv6 (Segment Routing over IPv6) (http://docs.frrouting.org/en/latest/zebra.html#segment-routing-ipv6)
784 - Improvements to Prefix-SID (Type 5)
785 - EVPN route type-5 gateway IP overlay Index (http://docs.frrouting.org/en/latest/bgp.html#evpn-overlay-index-gateway-ip)
786 - OSPFv3 NSSA and NSSA totally stub areas (http://docs.frrouting.org/en/latest/ospf6d.html#ospf6-area)
787 - OSPFv3 ASBR summarization (http://docs.frrouting.org/en/latest/ospf6d.html#asbr-summarisation-support-in-ospfv3)
788 - OSPFv3 Graceful Restart (http://docs.frrouting.org/en/latest/ospf6d.html#graceful-restart)
789 - OSPFv2 Graceful Restart (restarting mode added, helper was already implemented) (http://docs.frrouting.org/en/latest/ospfd.html#graceful-restart)
790 - Behavior Changes
791 - Every node in running config now has an explicit "exit" tag
792 - Link bandwidth in BGP is now correctly encoded according to IEEE 754. To stay with old incorrect encoding use:
793 - `neighbor PEER disable-link-bw-encoding-ieee`
794 - Changelog
795 - alpine:
796 Fix path for daemons file install
797 - BGP:
798 - Add "json" option to "show bgp as-path-access-list"
799 - Add `disable-addpath-rx` knob
800 - Add an ability to set extcommunity to none in route-maps
801 - Add counter of displayed show bgp summary when filtering
802 - Add knob to config cond-adv scanner period
803 - Add route-map `match alias` command
804 - Add rpki source address configuration
805 - Add show bgp summary filter by neighbor or as
806 - Add terse display option on show bgp summary
807 - Allow for auto-completion of community alias's created
808 - Bgp knob to teardown session immediately when peer is unreachable
809 - Expand 'bgp default <afi>-<safi>' cmds
810 - Extend evpn next hop tracking to type-1 and type-4 routes
811 - Fix "no router bgp x vrf default"
812 - Flowspec redirect vrf uses vrf table instead of allocated table id
813 - Handle quick flaps of an evpn prefix properly
814 - Initial batch of evpn lttng tracepoints
815 - Limit processing to what is needed in rpki validation
816 - Modify vrf/view display in show bgp summary
817 - Set 4096 instead of 65535 as new max packet size for a new peer
818 - Set extended msg size only if we advertised and received capability
819 - Show bgp community alias in json community list output
820 - Show bgp prefixes by community alias
821 - Show max packet size per update-group
822 - Split soft reconfigure table task into several jobs to not block vtysh
823 - Store distance received from a redistribute statement
824 - Update route-type-1 legend to match output
825 - ISIS:
826 - Fix sending of lsp with null seqno
827 - lib:
828 - Add "json" option to "show ip[v6] access-list"
829 - Add "json" option to "show ip[v6] prefix-list"
830 - Add "json" option to "show route-map"
831 - Prevent grpc assert on missing yang node
832 - NHRP:
833 - Clear cache when shortcuts are cleared
834 - Fix corrupt address being shown for shortcuts with no cache entry
835 - Set prefix correctly in resolution request
836 - OSPF6:
837 - Add debug commands for lsa all and route all
838 - Add warning log for late hello packets
839 - Add write-multiplier configuration
840 - Don't update router-id if at least one adjacency is full
841 - Extend the "redistribute" command with more options
842 - Fix issue when displaying the redistribute command
843 - Fix logging of border router routes
844 - Json output for database dump show command
845 - Link state id in lsa database json output
846 - Send lsa update immediately when ospf instance is deleted
847 - OSPF:
848 - Fix crash when creating vlink in unknown vrf
849 - Gr conformance fix for hello packet dr election
850 - Print extra lsa information in some log messages
851 - Rfc conformance test case 25.23 issue fix
852 - Show ip ospf route json does not shown metric and tag
853 - Summary lsa is not originated when process is reset
854 - pathd:
855 - Handle pcinitiated configuration, main thread
856 - Handle pcinitiated messages, thread controller
857 - Handle srp_id correctly
858 - If pce ret no-path to pcreq don't retry pcreq nor delegate
859 - PBR:
860 - Add `match ip-protocol [tcp|udp]`
861 - Add ability to set/unset src and dest ports
862 - Nhg "add" edge case for last in table range
863 - Start inclusion of src and dst ports for pbrd
864 - PIM:
865 - Add tos/ttl check for igmp conformance
866 - Allow join prune intervals to be as small as 5 seconds
867 - Allow msdp group name 'default'
868 - Fix register suppress timer code
869 - Fix uaf/heap corruption in bsm code
870 - Fix command "no ip msdp mesh-group member"
871 - Igmp groups are not getting timeout
872 - Igmp memberships are not querier specific
873 - Igmp sockets need to be iface-bound too
874 - Prevent uninited usage of nexthop
875 - Support msdp global timers configuration
876 - vtysh
877 - Add cli timestamp '-t' flag
878 - Add error code if daemon is not running
879 - Fix searching commands in parent nodes
880 - yang:
881 - Add msdp timer configuration
882 - Fix bgp multicast prefix type
883 - Mark a couple of prefix-list/access-list leafs as mandatory
884 - Move multicast prefix type definition
885 - Replace an empty pattern with a zero-length restriction
886 - Rework pim msdp mesh group
887 - Simplify msdp peer handling
888 - zebra :
889 - Add "json" option to "show interface"
890 - Various improvment to dataplane interface
891 - Add message counts for `show zebra client`
892 - Add nhg id to show ip route json
893 - Add show command for ra interface lists
894 - Fix ipv4 routes with ipv6 link local next hops install in fpm
895 - Handle bridge mac address update in evpn contexts
896 - Move individual lines to table in `show zebra client` command
897 - Refresh vxlan evpn contexts, when bridge interface goes up
898 - Update zl3vni when bridge link refreshed in other namespaces
899
900 * Wed Jul 21 2021 Martin Winter <mwinter@opensourcerouting.org> - 8.0
901 - Major changes
902 - New daemon pathd for segment routing
903 - EVPN Multihoming is now fully supported
904 - OSPFv3 now supports VRFs
905 - TI-LFA has been implemented in IS-IS and OSPF
906 - Ability for Zebra to dump netlink messages in a human-friendly format
907 - LDP gained SNMP support
908 - libyang minimun version is now 2.0
909 - BABEL:
910 - Add `distribute-list` commands
911 - Fix memory leak in connected route handling
912 - BGP:
913 - Add support for use of aliases with communities
914 - Add support of tcp-mss for neighbors
915 - Add support for EVPN Multihoming
916 - Add ability to show BGP routes from a particular table version
917 - Add support for for RFC 8050 (MRT add-path)
918 - Add SNMP support for MPLS VPN
919 - Add `show bgp summary wide` command to show more detailed output
920 on wide terminals
921 - Add ability for peer-groups to have `ttl-security hops` configured
922 - Add support for conditional Advertisement
923 - Add support for RFC 4271 Delay Open Timer
924 - Add a knob to not advertise until route is installed in fib
925 - Add BGP-wide configuration for graceful shutdown
926 - Add support for RFC 8654 extended messages
927 - Improve RPKI reporting as well as new show commands
928 - Improve handling of VRF route leaking
929 - Improve scaling behavior for dynamic neighbors
930 - Improve LL nexthop tracking to be interface based
931 - Improve route reachability handling with respect to blackhole routes
932 - Improve SNMP traps to RFC 4273 notifications
933 - Improve EVPN routes to use L3 NHG's where applicable
934 - Improvements to EVPN
935 - Improvements to update behavior
936 - Fix various issues with connection resolution
937 - Fix statistics commands in some situations
938 - Fix non-determistic locally-originated paths in bestpath selection
939 - Continue working on transitioning to YANG/Northbound configuration
940 - Various bug fixes and performance improvements
941 - EIGRP:
942 - Add `distribute-list` commands
943 - Ensure received AS number is the same as ours in all situations
944 - Properly validate TLV lengths in some situations
945 - IS-IS:
946 - Add ldb-sync functionality
947 - Add TI-LFA functionality
948 - Add support for Anycast-SID's
949 - Add support for classic LFA RFC 5286
950 - Add `show isis fast-reroute summary` command
951 - Add support for Remote LFA RFC 7490
952 - Fix Attach-bit processing in some scenarios
953 - Cleanup BFD integration
954 - Various bug fixes and performance improvements
955 - LDP:
956 - Add SNMP support
957 - Support for LDP IGP Synchronization
958 - Support for RLFA clients
959 - Various bug fixes and performance improvements
960 - LIBFRR:
961 - Various bugfixes and performance improvements
962 - NHRP:
963 - Add `nhrp multicast-nflog-group (1-65535)` command
964 - Add configuration options for vici socket path
965 - Add support for forwarding multicast packets
966 - Fix handling of MTU
967 - Fix handling of NAT extension
968 - Retry IPsec under some conditions
969 - OSPFv2:
970 - Add OSPF GR helper support
971 - Add JSON support for various commands
972 - Add `summary-address A.B.C.D/M ...` commands
973 - Add `area X nssa suppress-fa` command
974 - Add support for TI-LFA
975 - Add support for BFD profiles
976 - Add support for Traffic Engineering database
977 - Add support for usage of DMPVPN with OSPF
978 - Add `clear ip ospf neighbor` commands
979 - Add YANG support for route-maps
980 - Improvements to SNMP
981 - Fixes for type 5 and type 7 LSA handling
982 - Various bug fixes and performance improvements
983 - OSPFv3:
984 - Add support for VRFs
985 - Add JSON support to a bunch of commands
986 - Add ability to control maximum paths for routes
987 - Add `show ipv6 ospf6 vrfs` command
988 - Add support for BFD profiles
989 - Fix to not send hellos on loopbacks
990 - Cleanup area handling around interfaces
991 - YANG support for route-maps
992 - Various bug fixes and performance improvements
993 - OSPFCLIENT:
994 - Cleanup trust of user input
995 - PATHd:
996 - Add support of SR-TE policy management daemon
997 - Add optional support for PCEP to pathd
998 - Integrate PCEP-LIB into FRR
999 - PBR:
1000 - Add `set installable` nhg command
1001 - Improve interface up/down event handling
1002 - PIM:
1003 - Add YANG integration
1004 - Add JSON support to various commands
1005 - Add BFD profile support
1006 - Fixes to IGMP conformance
1007 - Fixes to behavior surrounding Prune and Prune-pending
1008 - Various bug fixes and performance improvements
1009 - RIPNG:
1010 - Fix interface wakeup after shutdown
1011 - SHARP:
1012 - Add ability to use Nexthop Groups
1013 - Add v4 redistribute watching
1014 - Add TED support
1015 - Various bug fixes
1016 - STATIC:
1017 - Fix nexthop handling in some situations
1018 - Forbid blackhole and non-blackhole nexthops in a single route
1019 - VRRP:
1020 - printf formatting cleanups
1021 - VTYSH:
1022 - Add a `show history` command
1023 - Add `show memory <daemon>` support
1024 - Start deprecation cycle for `address-family evpn`
1025 - Display version with --help
1026 - Various bug fixes
1027 - WATCHFRR:
1028 - Fix some crashes
1029 - ZEBRA:
1030 - Add JSON support to various commands
1031 - Add Human readable netlink dumps
1032 - Add L2 NHG support
1033 - Add support for LSPs to FPM dataplane
1034 - Add ability for other protocol daemons to install nexthop groups into the kernel
1035 - Add YANG support for route-maps
1036 - Improve scale performance when handling a large number of VRF's
1037 - Improve network namespace handling
1038 - Improve asic-offload handling
1039 - Improve FreeBSD interface and route handling
1040 - Improve handling of neighbors in kernel dataplane plugin
1041 - Improve label manager
1042 - Improve route-map processing
1043 - Improve debug-ability of routes and VRFs
1044 - Improve FPM dataplane plugin
1045 - Improve handling of reachability / nexthop tracking on shutdown interfaces
1046 - Improve EVPN support
1047 - Fix startup handling of `set src X`
1048 - Various bug fixes and performance improvements
1049
1050 * Wed Mar 3 2021 Martin Winter <mwinter@opensourcerouting.org> - 7.5.1
1051 - BABEL:
1052 - Fix connected route leak on change
1053 - BFD:
1054 - Session lookup was sometimes wrong
1055 - Memory leak and handling cleanups
1056 - In some situations handle vrf appropriately when receiving packets
1057 - BGP:
1058 - Peer Group Inheritance Fixes
1059 - Dissallow attempt to peer peers reachable via blackholes
1060 - Send BMP down message when reachability fails
1061 - Cleanup handling of aggregator data when the AGG AS is 0
1062 - Handle `neighbor <peer-group allowas-in` config changes properly
1063 - Properly parse community and lcommunity values in some circumstances
1064 - Allow peer-groups to configure `ttl-security hops`
1065 - Prevent v6 routes with v4 nexthops from being installed
1066 - Allow `default-originate` to be cleared from a peer group
1067 - Fix evpn route-map vni filter at origin
1068 - local routes were using non-default distance
1069 - Properly track if the nexthop was updated in some circumstances
1070 - Cleanup `show running` when running bgp with `-e X` values
1071 - Various Memory leaks in show commands
1072 - Properly withdraw exported routes when deleting a VRF
1073 - Avoid resetting ebgp-multihop if peer setting is the same as peer-group
1074 - Properly encode flowspec rules to zebra in some rare circumstances
1075 - Generate statistics for routes in bgp when we have exactly 1 route
1076 - Properly apply route-map for the default-originate command
1077 - EIGRP:
1078 - Properly set MTU for eigrp packets sent
1079 - Various memory leaks and using uninited data fixes
1080 - ISIS:
1081 - When last area address is removed, resign if we were the DR
1082 - Various memory leaks and using uninited data fixes
1083 - LDP:
1084 - Various memory leaks and using uninited data fixes
1085 - NHRP:
1086 - Use onlink routes when prefix == nh
1087 - Shortcut routes are installed with proper nexthop
1088 - OSPF:
1089 - Prevent duplicate packet read in multiple vrf situation
1090 - Fix area removal at interface level
1091 - Restore Point to MultiPoint interface types
1092 - Correctly handle MTU change on startup
1093 - Multi Instance initialization sometimes was not successful
1094 - NSSA translate-always was not working properly
1095 - OSPFv3:
1096 - Don't send hellos on loopback interfaces
1097 - Handle ECMP better when a sub-path is removed
1098 - Memory leak and handling fixes
1099 - Fix Link LSA not updating when router priority is modified
1100 - Some output from show commands was wrong
1101 - Intra area remote connected prefixes sometimes not installed
1102 - PBR:
1103 - Various memory leaks and using uninited data fixes
1104 - PIM:
1105 - SGRpt prune received during prune didn't override holdtime
1106 - Various memory leaks and using uninited data fixes
1107 - STATIC:
1108 - Fix VRF and usage on startup in some instances
1109 - Tableid was being mishandled in some cases
1110 - VTYSH:
1111 - Disable bracketed paste in readline.
1112 - WATCHFRR:
1113 - Various memory leaks and using uninited data fixes
1114 - ZEBRA:
1115 - Always install blackhole routes using kernel routes instead of nexthops
1116 - Various memory leaks and using uninited data fixes
1117 - Dissallow resolution to duplicate nexthops that created infinite nexthops
1118 - Apply the route-map delay-timer globally
1119 - Some routes were stuck in Queued state when using the FPM
1120 - Better handle vrf creation when using namespaces
1121 - Set NUD_NOARP on sticky mac entries in addtion to NTF_STICKY
1122 - Allow `set src X` to work on startup
1123 - FRR Library:
1124 - Fix a variety of memory leaks
1125 - Fix VRF Creation in some instances
1126 - RPKI context editing was not properly handled in reload situations
1127 - routemap code was not properly handling modification of CLI in some instances
1128 - SNAPCRAFT:
1129 - Update to using rtrlib 0.7.0
1130 - Fix passthrough path for Libyang 1.x
1131 - ALPINE:
1132 - Remove old docker deps
1133
1134 * Mon Nov 2 2020 Donald Sharp <sharpd@nvidia.com> - 7.5
1135 - BFD
1136 - Profile support
1137 - Minimum ttl support
1138 - BGP
1139 - rpki VRF support
1140 - GR fixes
1141 - Add wide option to display of routes
1142 - Add `maximum-prefix <num> force`
1143 - Add `bestpath-routes` to neighbor command
1144 - Add `bgp shutdown message MSG...` command
1145 - Add v6 Flowspec support
1146 - Add `neighbor <neigh> shutdown rtt` command
1147 - Allow update-delay to be applied globaly
1148 - EVPN
1149 - Beginning of MultiHoming Support
1150 - ISIS
1151 - Segment Routing Support
1152 - VRF Support
1153 - Guard against adj timer display overflow
1154 - Add support for Anycast-SIDs
1155 - Add support for Topology Independent LFA (TI-LFA)
1156 - Add `lsp-gen-interval 2` to isis configuration
1157 - OSPF
1158 - Segment Routing support for ECMP
1159 - Various LSA fixes
1160 - Prevent crash if transferring config amongst instances
1161 - PBR
1162 - Adding json support to commands
1163 - DSCP/ECN based PBR Matching
1164 - PIM
1165 - Add more json support to commands
1166 - Fix missing mesh-group commands
1167 - MSDP SA forwarding
1168 - Clear (s,g,rpt) ifchannel on (*, G) prune received
1169 - Fix igmp querier election and IP address mapping
1170 - Crash fix when RP is removed
1171 - STATIC
1172 - Northbound Support
1173 - YANG
1174 - Filter and route-map Support
1175 - OSPF model definition
1176 - BGP model definition
1177 - VTYSH
1178 - Speed up output across daemons
1179 - Fix build-time errors for some --enable flags
1180 - Speed up output of configuration across daemons
1181 - ZEBRA
1182 - nexthop group support for FPM
1183 - northbound support for rib model
1184 - Backup nexthop support
1185 - netlink batching support
1186 - Allow upper level protocols to request ARP
1187 - Add json output for zebra ES, ES-EVI and access vlan dumps
1188 -
1189 - Upgrade to using libyang1.0.184
1190 -
1191 - RPM
1192 - Moved RPKI to subpackage
1193 - Added SNMP subpackage
1194 -
1195 - As always there are too many bugfixes to list individually. This release
1196 - compromises just over 1k of commits by the community, with contributors from
1197 - 70 people.
1198
1199 * Tue Jun 30 2020 Martin Winter <mwinter@opensourcerouting.org> - 7.4
1200 - BGPd
1201 - Use sequence numbers for community lists
1202 - Fixes to nexthop groups
1203 - Add feature to limit outgoing number of routes
1204 - Per Neighbor Graceful Restart
1205 - Multiple Graceful Restart fixes
1206 - Support sub-Type-4 and sub-Type-5 for the VPNv4 SRv6 backend
1207 - rfc7606 support: treat certain malformed routes as withdraw
1208 - allow origin override for route aggregates
1209 - rfc6608 support: Subcodes for BGP Finite State Machine Error
1210 - rfc7607 support: Codification of AS 0 Processing
1211 - rfc6286 support: Autonomous-System-Wide Unique BGP Identifier for BGP-4
1212 - Unequal cost multipath (a.ka. weighted ECMP) with BGP link-bandwidth
1213 - Enable rfc8212 by default except datacenter profile
1214 - staticd
1215 - Add debug support
1216 - vtysh
1217 - Add copy command to copy config from file into running config
1218 - LDPd
1219 - adding support for LDP ordered label distribution control
1220 - ISISd
1221 - IS-IS Segment Routing support
1222 - SHARPd
1223 - add initial support to add/remove lsps
1224 - Zebra
1225 - fix broadcast address in IPv4 networks with /31 mask
1226 - Add Graceful Restart support for Protocol Daemon restarts
1227 - lib
1228 - migrate route-maps to use northbound interface
1229 - plus countless bug fixes and other improvements
1230
1231 * Mon Jun 15 2020 Sascha Kattelmann <sascha@netdef.org>
1232 - Add Pathd support
1233
1234 * Wed May 06 2020 David Lamparter <equinox@opensourcerouting.org> - 7.3.1
1235 - upstream 7.3.1
1236
1237 * Fri Feb 14 2020 Martin Winter <mwinter@opensourcerouting.org> - 7.3
1238 - BGPd
1239 - EVPN PIP Support
1240 - Route Aggregation code speed ups
1241 - BGP Vector I/O speed ups
1242 - New CLI: `set distance XXX`
1243 - New CLI: `aggregate-address A.B.C.D/M route-map WORD`
1244 - New CLI: `bgp reject-as-sets`
1245 - New CLI: `advertise pip ...`
1246 - New CLI: `match evpn rd ASN:NN_OR_IP-ADDRESS:NN`
1247 - New CLI: `show bgp l2vpn evpn community|large-community X`
1248 - New CLI: `show bgp l2vpn evpn A.B.C.D`
1249 - Auto-completion for clear bgp command
1250 - Add ability to set tcp socket buffer size
1251 - OSPFd
1252 - Partial MPLS TE support
1253 - PBRd
1254 - New CLI: `set vrf unchanged|NAME`
1255 - BFDd
1256 - VRF Support
1257 - New CLI: 'show bfd peers brief'
1258 - New CLI: 'clear bfd peer ...'
1259 - PIMd
1260 - Significant Speedups in accessing Internal Data for higher scale
1261 - Support for joining any-source Multicast
1262 - Updated CLI: 'show ip pim upstream-join-desired'
1263 - New CLI: 'show ip pim channel'
1264 - Debug Cleanup
1265 - MLAG experimental support
1266 - VRRPd
1267 - VRF Support
1268 - Northbound Conversion- NHRPd
1269 - LDPd
1270 - vtysh
1271 - New CLI: `banner motd line LINE...`
1272 - yang
1273 - New CLI: `show yang operational-data XPATH`
1274 - New CLI: `debug northbound`
1275 - Zebra
1276 - Nexthop Group support
1277 - New CLI: 'debug zebra nexthop [detail]'
1278 - New CLI: 'show router-id'
1279 - MLAG experimental support
1280 - watchfrr
1281 - Additional status messages of system state to systemd
1282 - New CLI: `watchfrr ignore DAEMON`
1283 - Others
1284 - As always all daemons have received too many bug fixes to fully list
1285 - There has been a significant focus on increasing test coverage
1286 - Change in Behavior:
1287 - ISISd
1288 - All areas created default automatically to level-1-2
1289 - Zebra
1290 - Nexthop Group Installation in Kernel is turned on by default
1291 if the kernel supports- New CLI: 'show nexthop-group rib [singleton]'
1292 - Man Pages
1293 - Renamed to frr-* to remove collision with other packages
1294
1295 * Fri Jan 17 2020 Martin Winter <mwinter@opensourcerouting.org> - 7.2.1
1296 - BGPd
1297 - Fix Addpath issue
1298 - Do not apply eBGP policy for iBGP peers
1299 - Show `ip` and `fqdn` in json output for `show [ip] bgp <route> json`
1300 - Fix large route-distinguisher's format
1301 - Fix `no bgp listen range ...` configuration command
1302 - Autocomplete neighbor for clear bgp
1303 - Reflect the distance in RIB when it is changed for an arbitrary afi/safi
1304 - Notify "Peer De-configured" after entering 'no neighbor <neighbor> cmd
1305 - Fix per afi/safi addpath peer counting
1306 - Rework BGP dampening to be per AFI/SAFI
1307 - Do not send next-hop as :: in MP_REACH_NLRI if no link-local exists
1308 - Override peer's TTL only if peer-group is configured with TTL
1309 - Remove error message for unkown afi/safi combination
1310 - Keep the session down if maximum-prefix is reached
1311 - OSPFd
1312 - Fix BFD down not tearing down OSPF adjacency for point-to-point net
1313 - BFDd
1314 - Fix multiple VRF handling
1315 - VRF security improvement
1316 - PIMd
1317 - Fix rp crash
1318 - NHRPd
1319 - Make sure `no ip nhrp map <something>` works as expected
1320 - LDPd
1321 - Add missing sanity check in the parsing of label messages
1322 - Zebra
1323 - Use correct state when installing evpn macs
1324 - Capture dplane plugin flags
1325 - lib
1326 - Fix interface config when vrf changes
1327 - Fix Interface Infinite Loop Walk (for special interfaces such as bond)
1328 - snapcraft
1329 - fix missing vrrpd daemon
1330 - Others
1331 - Rename man pages (to avoid conflicts with other packages)
1332 - Various other fixes for code cleanup and memory leaks
1333
1334 * Fri Dec 27 2019 Donatas Abraitis <donatas.abraitis@gmail.com>
1335 - Add CentOS 8 support
1336
1337 * Tue Oct 15 2019 Martin Winter <mwinter@opensourcerouting.org> - 7.2
1338 - ALL Daemons
1339 - -N <namespace> to allow for config file locating when running FRR inside
1340 of a namespace
1341 - Impoved Testing across all daemons
1342 - BFD
1343 - VRF Support
1344 - Conversion to Northbound interface
1345 - BGP
1346 - Aggregate-address add route-map support
1347 - BMP Support
1348 - Improved JSON output for many commands
1349 - `show bgp afi safi summary failed` command
1350 - `clear bop *` clears all peers
1351 - Show FQDN for `show bgp ipv4 uni` commands
1352 - Display BestPath selection reason as part of show commands
1353 - EIGRP
1354 - Infrastructure changes to allow VRF's
1355 - SIGHUP signals the config reload
1356 - Conversion to Northbound interface
1357 - ISIS
1358 - BFD Support
1359 - Support for circuits with MTU > 8192
1360 - PBRD
1361 - fwmark support as part of match criteria
1362 - autocompletion of PBRMAPS
1363 - Improved Nexthop Support
1364 - PIMD
1365 - PIM-BSM receive support
1366 - Improved debugging support
1367 - Store ECMP paths that are not currently legal for use
1368 - Disallow igmp query from a non-connected source
1369 - Many new cli improvements and changes
1370 - VRRPD
1371 - Add Support for RFC 3768 and RFC 5798
1372 - Route-Maps
1373 - Add sequence numbers to access-lists
1374 - Add `match ip next-hop type blackhole`
1375 - Improved ability to notice dependency changes
1376 - SHARPD
1377 - `sharp watch [import|nexthop]` you can now specify a prefix instead
1378 of assuming a /32
1379 - STATICD
1380 - Significantly Improved NHT
1381 - ZEBRA
1382 - Many dataplane improvements for routes, neighbor table and EVPN
1383 - NHT cli can now be specified per VRF and improved ability to control
1384 NHT data being shown
1385 - Removed duplicate processing of routes
1386 - Improved debugablility
1387 - RMAC and VxLan support for the FPM
1388 - LIB
1389 - RCU support
1390 - Nexthop Group Improvements
1391 - `log-filter WORD` added
1392 - Building
1393 - openssl support
1394 - libcap should be used as part of build or significant slowdowns
1395 will be experienced
1396 - Lua builds have been fixed
1397 - Improved Cross building
1398
1399 * Mon Jun 17 2019 David Lamparter <equinox@opensourcerouting.org> - 7.1
1400 - gRPC northbound plugin
1401 - "table NNN" removed from zebra
1402 - more dataplane MT work
1403 - EVPN in non-default VRFs
1404 - RFC 8212 (default deny policy for eBGP)
1405 - RFC 8106 (IPv6 RA DNS options)
1406
1407 * Wed May 8 2019 Martin Winter <mwinter@opensourcerouting.org> - 7.0.1
1408 - bgp:
1409 - Don't send Updates with BGP Max-Prefix Overflow
1410 - Make sure `next-hop-self all` backward compatible with force
1411 - Fix as-path validation in "show bgp regexp"
1412 - Fix interface-based peers to override peergroups
1413 - Fix removing private AS numbers if local-as is used
1414 - Fix show bgp labeled_unicast
1415 - Add command to lookup prefixes in rpki table
1416 - Fix peer count in "show bgp ipv6 summary"
1417 - Add missing ipv6 only peer flag action
1418 - Fix address family output in "show bgp [ipv4|ipv6] neighbors"
1419 - Add missing checks for vpnv6 nexthops
1420 - Fix nexthop for ipv6 vpn case
1421 - rip: Fix removal of passive interfaces
1422 - ospf:
1423 - Fix json timer output
1424 - Fix milliseconds in json output
1425 - bfd:
1426 - Fix source port according RFC 5881, Sec 4
1427 - Fix IPv6 link-local peer removal
1428 - Fix interface clean up when deleting interface
1429 - pim: Fix interface clean up when deleting interface
1430 - nhrp: Fix interface clean up when deleting interface
1431 - lib:
1432 - Workaround to get FRR building with libyang 0.x and 1.x
1433 - Fix in priv handling
1434 - Make priv elevation thread-safe
1435 - zebra:
1436 - Pseudowire event recovery
1437 - Fix race condition in label manager
1438 - Fix system routes selection and next-hop tracking
1439 - Set connected route metric based on devaddr metric
1440 - Display metric for connected routes
1441 - Add selected fib details to json output
1442 - Always use replace if installing new route
1443 - watchfrr: Silently ignore declare failures (for backward compatibility)
1444 - RPM packages: Switch to new init script
1445
1446 * Thu Feb 28 2019 Martin Winter <mwinter@opensourcerouting.org> - 7.0
1447 - Added libyang dependency: New work for northbound interface based on libyang
1448 - Fabricd: New Daemon based on https://datatracker.ietf.org/doc/draft-white-openfabric/
1449 - various bug fixes and other enhancements
1450
1451 * Sun Oct 7 2018 Martin Winter <mwinter@opensourcerouting.org> - 6.0
1452 - Staticd: New daemon responsible for management of static routes
1453 - ISISd: Implement dst-src routing as per draft-ietf-isis-ipv6-dst-src-routing
1454 - BFDd: new daemon for BFD (Bidrectional Forwarding Detection). Responsible
1455 for notifying link changes to make routing protocols converge faster.
1456 - various bug fixes
1457
1458 * Thu Jul 5 2018 Martin Winter <mwinter@opensourcerouting.org> - 5.0.1
1459 - Support Automake 1.16.1
1460 - BGPd: Support for flowspec ICMP, DSCP, packet length, fragment and tcp flags
1461 - BGPd: fix rpki validation for ipv6
1462 - VRF: Workaround for kernel bug on Linux 4.14 and newer
1463 - Zebra: Fix interface based routes from zebra not marked up
1464 - Zebra: Fix large zebra memory usage when redistribute between protocols
1465 - Zebra: Allow route-maps to match on source instance
1466 - BGPd: Backport peer-attr overrides, peer-level enforce-first-as and filtered-routes fix
1467 - BGPd: fix for crash during display of filtered-routes
1468 - BGPd: Actually display labeled unicast routes received
1469 - Label Manager: Fix to work correctly behind a label manager proxy
1470
1471 * Thu Jun 7 2018 Martin Winter <mwinter@opensourcerouting.org> - 5.0
1472 - PIM: Add a Multicast Trace Command draft-ietf-idmr-traceroute-ipm-05
1473 - IS-IS: Implement Three-Way Handshake as per RFC5303
1474 - BGPD: Implement VPN-VRF route leaking per RFC4364.
1475 - BGPD: Implement VRF with NETNS backend
1476 - BGPD: Flowspec
1477 - PBRD: Add a new Policy Based Routing Daemon
1478
1479 * Mon May 28 2018 Rafael Zalamena <rzalamena@opensourcerouting.org>
1480 - Add BFDd support
1481
1482 * Sun May 20 2018 Martin Winter <mwinter@opensourcerouting.org>
1483 - Fixed RPKI RPM build
1484
1485 * Sun Mar 4 2018 Martin Winter <mwinter@opensourcerouting.org>
1486 - Add option to build with RPKI (default: disabled)
1487
1488 * Tue Feb 20 2018 Martin Winter <mwinter@opensourcerouting.org>
1489 - Adapt to new documentation structure based on Sphinx
1490
1491 * Fri Oct 20 2017 Martin Winter <mwinter@opensourcerouting.org>
1492 - Fix script location for watchfrr restart functions in daemon config
1493 - Fix postun script to restart frr during upgrade
1494
1495 * Mon Jun 5 2017 Martin Winter <mwinter@opensourcerouting.org>
1496 - added NHRP and EIGRP daemon
1497
1498 * Mon Apr 17 2017 Martin Winter <mwinter@opensourcerouting.org>
1499 - new subpackage frr-pythontools with python 2.7 restart script
1500 - remove PIMd from CentOS/RedHat 6 RPM packages (won't work - too old)
1501 - converted to single frr init script (not per daemon) based on debian init script
1502 - created systemd service file for systemd based systems (which uses init script)
1503 - Various other RPM package fixes for FRR 2.0
1504
1505 * Fri Jan 6 2017 Martin Winter <mwinter@opensourcerouting.org>
1506 - Renamed to frr for FRRouting fork of Quagga
1507
1508 * Thu Feb 11 2016 Paul Jakma <paul@jakma.org>
1509 - remove with_ipv6 conditionals, always build v6
1510 - Fix UTF-8 char in spec changelog
1511 - remove quagga.pam.stack, long deprecated.
1512
1513 * Thu Oct 22 2015 Martin Winter <mwinter@opensourcerouting.org>
1514 - Cleanup configure: remove --enable-ipv6 (default now), --enable-nssa,
1515 --enable-netlink
1516 - Remove support for old fedora 4/5
1517 - Fix for package nameing
1518 - Fix Weekdays of previous changelogs (bogus dates)
1519 - Add conditional logic to only build tex footnotes with supported texi2html
1520 - Added pimd to files section and fix double listing of /var/lib*/quagga
1521 - Numerous fixes to unify upstart/systemd startup into same spec file
1522 - Only allow use of watchfrr for non-systemd systems. no need with systemd
1523
1524 * Fri Sep 4 2015 Paul Jakma <paul@jakma.org>
1525 - buildreq updates
1526 - add a default define for with_pimd
1527
1528 * Mon Sep 12 2005 Paul Jakma <paul@dishone.st>
1529 - Steal some changes from Fedora spec file:
1530 - Add with_rtadv variable
1531 - Test for groups/users with getent before group/user adding
1532 - Readline need not be an explicit prerequisite
1533 - install-info delete should be postun, not preun
1534
1535 * Wed Jan 12 2005 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1536 - on package upgrade, implement careful, phased restart logic
1537 - use gcc -rdynamic flag when linking for better backtraces
1538
1539 * Wed Dec 22 2004 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1540 - daemonv6_list should contain only IPv6 daemons
1541
1542 * Wed Dec 22 2004 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1543 - watchfrr added
1544 - on upgrade, all daemons should be condrestart'ed
1545 - on removal, all daemons should be stopped
1546
1547 * Mon Nov 08 2004 Paul Jakma <paul@dishone.st>
1548 - Use makeinfo --html to generate quagga.html
1549
1550 * Sun Nov 07 2004 Paul Jakma <paul@dishone.st>
1551 - Fix with_ipv6 set to 0 build
1552
1553 * Sat Oct 23 2004 Paul Jakma <paul@dishone.st>
1554 - Update to 0.97.2
1555
1556 * Sat Oct 23 2004 Andrew J. Schorr <aschorr@telemetry-investments.com>
1557 - Make directories be owned by the packages concerned
1558 - Update logrotate scripts to use correct path to killall and use pid files
1559
1560 * Fri Oct 08 2004 Paul Jakma <paul@dishone.st>
1561 - Update to 0.97.0
1562
1563 * Wed Sep 15 2004 Paul Jakma <paul@dishone.st>
1564 - build snmp support by default
1565 - build irdp support
1566 - build with shared libs
1567 - devel subpackage for archives and headers
1568
1569 * Thu Jan 08 2004 Paul Jakma <paul@dishone.st>
1570 - updated sysconfig files to specify local dir
1571 - added ospf_dump.c crash quick fix patch
1572 - added ospfd persistent interface configuration patch
1573
1574 * Tue Dec 30 2003 Paul Jakma <paul@dishone.st>
1575 - sync to CVS
1576 - integrate RH sysconfig patch to specify daemon options (RH)
1577 - default to have vty listen only to 127.1 (RH)
1578 - add user with fixed UID/GID (RH)
1579 - create user with shell /sbin/nologin rather than /bin/false (RH)
1580 - stop daemons on uninstall (RH)
1581 - delete info file on preun, not postun to avoid deletion on upgrade. (RH)
1582 - isisd added
1583 - cleanup tasks carried out for every daemon
1584
1585 * Sun Nov 2 2003 Paul Jakma <paul@dishone.st>
1586 - Fix -devel package to include all files
1587 - Sync to 0.96.4
1588
1589 * Tue Aug 12 2003 Paul Jakma <paul@dishone.st>
1590 - Renamed to Quagga
1591 - Sync to Quagga release 0.96
1592
1593 * Thu Mar 20 2003 Paul Jakma <paul@dishone.st>
1594 - zebra privileges support
1595
1596 * Tue Mar 18 2003 Paul Jakma <paul@dishone.st>
1597 - Fix mem leak in 'show thread cpu'
1598 - Ralph Keller's OSPF-API
1599 - Amir: Fix configure.ac for net-snmp
1600
1601 * Sat Mar 1 2003 Paul Jakma <paul@dishone.st>
1602 - ospfd IOS prefix to interface matching for 'network' statement
1603 - temporary fix for PtP and IPv6
1604 - sync to zebra.org CVS
1605
1606 * Mon Jan 20 2003 Paul Jakma <paul@dishone.st>
1607 - update to latest cvs
1608 - Yon's "show thread cpu" patch - 17217
1609 - walk up tree - 17218
1610 - ospfd NSSA fixes - 16681
1611 - ospfd nsm fixes - 16824
1612 - ospfd OLSA fixes and new feature - 16823
1613 - KAME and ifindex fixes - 16525
1614 - spec file changes to allow redhat files to be in tree
1615
1616 * Sat Dec 28 2002 Alexander Hoogerhuis <alexh@ihatent.com>
1617 - Added conditionals for building with(out) IPv6, vtysh, RIP, BGP
1618 - Fixed up some build requirements (patch)
1619 - Added conditional build requirements for vtysh / snmp
1620 - Added conditional to files for _bindir depending on vtysh
1621
1622 * Mon Nov 11 2002 Paul Jakma <paulj@alphyra.ie>
1623 - update to latest CVS
1624 - add Greg Troxel's md5 buffer copy/dup fix
1625 - add RIPv1 fix
1626 - add Frank's multicast flag fix
1627
1628 * Wed Oct 09 2002 Paul Jakma <paulj@alphyra.ie>
1629 - update to latest CVS
1630 - timestamped crypt_seqnum patch
1631 - oi->on_write_q fix
1632
1633 * Mon Sep 30 2002 Paul Jakma <paulj@alphyra.ie>
1634 - update to latest CVS
1635 - add vtysh 'write-config (integrated|daemon)' patch
1636 - always 'make rebuild' in vtysh/ to catch new commands
1637
1638 * Fri Sep 13 2002 Paul Jakma <paulj@alphyra.ie>
1639 - update to 0.93b
1640
1641 * Wed Sep 11 2002 Paul Jakma <paulj@alphyra.ie>
1642 - update to latest CVS
1643 - add "/sbin/ip route flush proto zebra" to zebra RH init on startup
1644
1645 * Sat Aug 24 2002 Paul Jakma <paulj@alphyra.ie>
1646 - update to current CVS
1647 - add OSPF point to multipoint patch
1648 - add OSPF bugfixes
1649 - add BGP hash optimisation patch
1650
1651 * Fri Jun 14 2002 Paul Jakma <paulj@alphyra.ie>
1652 - update to 0.93-pre1 / CVS
1653 - add link state detection support
1654 - add generic PtP and RFC3021 support
1655 - various bug fixes
1656
1657 * Thu Aug 09 2001 Elliot Lee <sopwith@redhat.com> 0.91a-6
1658 - Fix bug #51336
1659
1660 * Wed Aug 1 2001 Trond Eivind Glomsrød <teg@redhat.com> 0.91a-5
1661 - Use generic initscript strings instead of initscript specific
1662 ( "Starting foo: " -> "Starting $prog:" )
1663
1664 * Fri Jul 27 2001 Elliot Lee <sopwith@redhat.com> 0.91a-4
1665 - Bump the release when rebuilding into the dist.
1666
1667 * Tue Feb 6 2001 Tim Powers <timp@redhat.com>
1668 - built for Powertools
1669
1670 * Sun Feb 4 2001 Pekka Savola <pekkas@netcore.fi>
1671 - Hacked up from PLD Linux 0.90-1, Mandrake 0.90-1mdk and one from zebra.org.
1672 - Update to 0.91a
1673 - Very heavy modifications to init.d/*, .spec, pam, i18n, logrotate, etc.
1674 - Should be quite Red Hat'isque now.