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