Mon May 16 11:54:20 2022 UTC ()
net/frr: Update to 8.2.2

Features 8.2.2 Release
    BGP Long-lived graceful restart capability
    (http://docs.frrouting.org/en/stable-8.2/bgp.html#long-lived-graceful-restart)
    BGP Extended Optional Parameters Length for BGP OPEN Message
    (http://docs.frrouting.org/en/stable-8.2/bgp.html#clicmd-neighbor-PEER-extended-optional-parameters)
    BGP Extended BGP Administrative Shutdown Communication
    IS-IS Link State Traffic Engineering support
    (http://docs.frrouting.org/en/stable-8.2/isisd.html#traffic-engineering)
    OSPFv3 Support for NSSA Type-7 address ranges
    (http://docs.frrouting.org/en/stable-8.2/ospf6d.html#ospf6-area)
    PBR VLAN actions support
    (http://docs.frrouting.org/en/stable-8.2/pbr.html#pbr-maps)

Features 8.1 Release
    Lua hooks are now feature complete, with one hook available for use
    (http://docs.frrouting.org/en/latest/scripting.html)
    Improvements to SRv6 (Segment Routing over IPv6)
    (http://docs.frrouting.org/en/latest/zebra.html#segment-routing-ipv6)
    Improvements to Prefix-SID (Type 5)
    EVPN route type-5 gateway IP overlay Index
    (http://docs.frrouting.org/en/latest/bgp.html#evpn-overlay-index-gateway-ip)
    OSPFv3 NSSA and NSSA totally stub areas
    (http://docs.frrouting.org/en/latest/ospf6d.html#ospf6-area)
    OSPFv3 ASBR summarization
    (http://docs.frrouting.org/en/latest/ospf6d.html#asbr-summarisation-support-in-ospfv3)
    OSPFv3 Graceful Restart
    (http://docs.frrouting.org/en/latest/ospf6d.html#graceful-restart)
    OSPFv2 Graceful Restart (restarting mode added, helper was already implemented)
    (http://docs.frrouting.org/en/latest/ospfd.html#graceful-restart)

Further release information: https://github.com/FRRouting/frr/releases/


(kardel)
diff -r1.9 -r1.10 pkgsrc/net/frr/Makefile
diff -r1.4 -r1.5 pkgsrc/net/frr/PLIST
diff -r1.7 -r1.8 pkgsrc/net/frr/distinfo
diff -r0 -r1.1 pkgsrc/net/frr/patches/patch-lib_frr__pthread.c
diff -r0 -r1.1 pkgsrc/net/frr/patches/patch-pimd_pim__mroute.c
diff -r0 -r1.1 pkgsrc/net/frr/patches/patch-pimd_pim__sock.c
diff -r1.3 -r1.4 pkgsrc/net/frr/patches/patch-zebra_kernel__socket.c

cvs diff -r1.9 -r1.10 pkgsrc/net/frr/Makefile (expand / switch to unified diff)

--- pkgsrc/net/frr/Makefile 2021/09/08 11:12:37 1.9
+++ pkgsrc/net/frr/Makefile 2022/05/16 11:54:19 1.10
@@ -1,17 +1,17 @@ @@ -1,17 +1,17 @@
1# $NetBSD: Makefile,v 1.9 2021/09/08 11:12:37 kardel Exp $ 1# $NetBSD: Makefile,v 1.10 2022/05/16 11:54:19 kardel Exp $
2 2
3GITHUB_PROJECT= frr 3GITHUB_PROJECT= frr
4VERSION= 8.0.1 4VERSION= 8.2.2
5GITHUB_TAG= frr-${VERSION} 5GITHUB_TAG= frr-${VERSION}
6DISTNAME= frr-${VERSION} 6DISTNAME= frr-${VERSION}
7CATEGORIES= net 7CATEGORIES= net
8MASTER_SITES= ${MASTER_SITE_GITHUB:=FRRouting/} 8MASTER_SITES= ${MASTER_SITE_GITHUB:=FRRouting/}
9 9
10MAINTAINER= kardel@NetBSD.org 10MAINTAINER= kardel@NetBSD.org
11HOMEPAGE= https://github.com/FRRouting/frr/ 11HOMEPAGE= https://github.com/FRRouting/frr/
12COMMENT= Frr routing multi protocol suite 12COMMENT= Frr routing multi protocol suite
13LICENSE= gnu-gpl-v2 13LICENSE= gnu-gpl-v2
14 14
15CONFLICTS= quagga-[0-9]* 15CONFLICTS= quagga-[0-9]*
16 16
17WRKSRC= ${WRKDIR}/frr-frr-${VERSION} 17WRKSRC= ${WRKDIR}/frr-frr-${VERSION}
@@ -43,27 +43,27 @@ PKG_SHELL.${FRR_USER}= /bin/sh @@ -43,27 +43,27 @@ PKG_SHELL.${FRR_USER}= /bin/sh
43PKG_GROUPS= ${FRR_GROUP} ${FRR_VTY_GROUP} 43PKG_GROUPS= ${FRR_GROUP} ${FRR_VTY_GROUP}
44PKG_USERS= ${FRR_USER}:${FRR_GROUP} 44PKG_USERS= ${FRR_USER}:${FRR_GROUP}
45 45
46RCD_SUPPLIED= bgpd ospf6d ospfd ripd ripngd zebra 46RCD_SUPPLIED= bgpd ospf6d ospfd ripd ripngd zebra
47RCD_SCRIPTS= ${RCD_SUPPLIED} staticd 47RCD_SCRIPTS= ${RCD_SUPPLIED} staticd
48 48
49.for f in ${RCD_SUPPLIED} 49.for f in ${RCD_SUPPLIED}
50RCD_SCRIPT_SRC.${f}= ${WRKSRC}/pkgsrc/${f}.sh 50RCD_SCRIPT_SRC.${f}= ${WRKSRC}/pkgsrc/${f}.sh
51.endfor 51.endfor
52 52
53USE_TOOLS+= bash:run 53USE_TOOLS+= bash:run
54REPLACE_BASH= tools/frr.in tools/*.sh.in 54REPLACE_BASH= tools/frr.in tools/*.sh.in
55 55
56REPLACE_PYTHON= tools/generate_support_bundle.py tools/frr-reload.py 56REPLACE_PYTHON= tools/generate_support_bundle.py tools/frr-reload.py tools/frr_babeltrace.py
57 57
58MESSAGE_SUBST+= FRR_USER=${FRR_USER} 58MESSAGE_SUBST+= FRR_USER=${FRR_USER}
59MESSAGE_SUBST+= FRR_VTY_GROUP=${FRR_VTY_GROUP} 59MESSAGE_SUBST+= FRR_VTY_GROUP=${FRR_VTY_GROUP}
60 60
61SUBST_CLASSES+= ids 61SUBST_CLASSES+= ids
62SUBST_STAGE.ids= pre-configure 62SUBST_STAGE.ids= pre-configure
63SUBST_MESSAGE.ids= Fixing user/group references. 63SUBST_MESSAGE.ids= Fixing user/group references.
64SUBST_FILES.ids= pkgsrc/zebra.sh.in 64SUBST_FILES.ids= pkgsrc/zebra.sh.in
65SUBST_VARS.ids= FRR_USER FRR_VTY_GROUP 65SUBST_VARS.ids= FRR_USER FRR_VTY_GROUP
66 66
67SUBST_CLASSES+= workdir 67SUBST_CLASSES+= workdir
68SUBST_STAGE.workdir= post-configure 68SUBST_STAGE.workdir= post-configure
69SUBST_MESSAGE.workdir= Fixing absolute workdir references. 69SUBST_MESSAGE.workdir= Fixing absolute workdir references.
@@ -80,27 +80,27 @@ CFLAGS+= -DFRR_XREF_NO_NOTE @@ -80,27 +80,27 @@ CFLAGS+= -DFRR_XREF_NO_NOTE
80 80
81CONFIGURE_ARGS+= --sysconfdir=${PKG_SYSCONFDIR} 81CONFIGURE_ARGS+= --sysconfdir=${PKG_SYSCONFDIR}
82CONFIGURE_ARGS+= --enable-user=${FRR_USER} 82CONFIGURE_ARGS+= --enable-user=${FRR_USER}
83CONFIGURE_ARGS+= --enable-group=${FRR_GROUP} 83CONFIGURE_ARGS+= --enable-group=${FRR_GROUP}
84CONFIGURE_ARGS+= --localstatedir=${VARBASE}/run/frr 84CONFIGURE_ARGS+= --localstatedir=${VARBASE}/run/frr
85CONFIGURE_ARGS+= --enable-multipath=64 85CONFIGURE_ARGS+= --enable-multipath=64
86CONFIGURE_ARGS+= --enable-vty-group=${FRR_VTY_GROUP} 86CONFIGURE_ARGS+= --enable-vty-group=${FRR_VTY_GROUP}
87CONFIGURE_ARGS+= --enable-configfile-mask=${FRR_CONF_MODE} 87CONFIGURE_ARGS+= --enable-configfile-mask=${FRR_CONF_MODE}
88CONFIGURE_ARGS+= --enable-logfile-mask=${FRR_LOG_MODE} 88CONFIGURE_ARGS+= --enable-logfile-mask=${FRR_LOG_MODE}
89CONFIGURE_ARGS+= --enable-fpm 89CONFIGURE_ARGS+= --enable-fpm
90CONFIGURE_ARGS+= --with-pkg-git-version 90CONFIGURE_ARGS+= --with-pkg-git-version
91CONFIGURE_ARGS+= --with-pkg-extra-version=/${DISTNAME} 91CONFIGURE_ARGS+= --with-pkg-extra-version=/${DISTNAME}
92# CONFIGURE_ARGS+= --enable-address-sanitizer 92# CONFIGURE_ARGS+= --enable-address-sanitizer
93 93CONFIGURE_ARGS+= --enable-dev-build
94pre-configure: 94pre-configure:
95 cd ${WRKSRC} && ${SH} bootstrap.sh 95 cd ${WRKSRC} && ${SH} bootstrap.sh
96 96
97# 97#
98# remove dynamically acquired .js files 98# remove dynamically acquired .js files
99# 99#
100post-build: 100post-build:
101 cd ${WRKSRC} && rm -f doc/user/_build/html/_static/jquery-*.js doc/user/_build/html/_static/underscore-*.js 101 cd ${WRKSRC} && rm -f doc/user/_build/html/_static/jquery-*.js doc/user/_build/html/_static/underscore-*.js
102 102
103.include "../../devel/libyang2/buildlink3.mk" 103.include "../../devel/libyang2/buildlink3.mk"
104.include "../../devel/readline/buildlink3.mk" 104.include "../../devel/readline/buildlink3.mk"
105.include "../../lang/python/application.mk" 105.include "../../lang/python/application.mk"
106.include "../../net/libcares/buildlink3.mk" 106.include "../../net/libcares/buildlink3.mk"

cvs diff -r1.4 -r1.5 pkgsrc/net/frr/PLIST (expand / switch to unified diff)

--- pkgsrc/net/frr/PLIST 2021/08/15 14:54:31 1.4
+++ pkgsrc/net/frr/PLIST 2022/05/16 11:54:19 1.5
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1@comment $NetBSD: PLIST,v 1.4 2021/08/15 14:54:31 kardel Exp $ 1@comment $NetBSD: PLIST,v 1.5 2022/05/16 11:54:19 kardel Exp $
2bin/mtracebis 2bin/mtracebis
3bin/vtysh 3bin/vtysh
4include/frr/agg_table.h 4include/frr/agg_table.h
5include/frr/assert.h 5include/frr/assert.h
6include/frr/atomlist.h 6include/frr/atomlist.h
7include/frr/bfd.h 7include/frr/bfd.h
8include/frr/bfdd/bfddp_packet.h 8include/frr/bfdd/bfddp_packet.h
9include/frr/bitfield.h 9include/frr/bitfield.h
10include/frr/buffer.h 10include/frr/buffer.h
11include/frr/checksum.h 11include/frr/checksum.h
12include/frr/command.h 12include/frr/command.h
13include/frr/command_graph.h 13include/frr/command_graph.h
14include/frr/command_match.h 14include/frr/command_match.h
@@ -82,26 +82,27 @@ include/frr/ospfd/ospf_opaque.h @@ -82,26 +82,27 @@ include/frr/ospfd/ospf_opaque.h
82include/frr/ospfd/ospfd.h 82include/frr/ospfd/ospfd.h
83include/frr/pbr.h 83include/frr/pbr.h
84include/frr/plist.h 84include/frr/plist.h
85include/frr/prefix.h 85include/frr/prefix.h
86include/frr/printfrr.h 86include/frr/printfrr.h
87include/frr/privs.h 87include/frr/privs.h
88include/frr/ptm_lib.h 88include/frr/ptm_lib.h
89include/frr/pullwr.h 89include/frr/pullwr.h
90include/frr/pw.h 90include/frr/pw.h
91include/frr/qobj.h 91include/frr/qobj.h
92include/frr/queue.h 92include/frr/queue.h
93include/frr/resolver.h 93include/frr/resolver.h
94include/frr/ringbuf.h 94include/frr/ringbuf.h
 95include/frr/route_opaque.h
95include/frr/route_types.h 96include/frr/route_types.h
96include/frr/routemap.h 97include/frr/routemap.h
97include/frr/routing_nb.h 98include/frr/routing_nb.h
98include/frr/sbuf.h 99include/frr/sbuf.h
99include/frr/seqlock.h 100include/frr/seqlock.h
100include/frr/sha256.h 101include/frr/sha256.h
101include/frr/sigevent.h 102include/frr/sigevent.h
102include/frr/skiplist.h 103include/frr/skiplist.h
103include/frr/smux.h 104include/frr/smux.h
104include/frr/sockopt.h 105include/frr/sockopt.h
105include/frr/sockunion.h 106include/frr/sockunion.h
106include/frr/spf_backoff.h 107include/frr/spf_backoff.h
107include/frr/srcdest_table.h 108include/frr/srcdest_table.h
@@ -124,26 +125,27 @@ include/frr/vty.h @@ -124,26 +125,27 @@ include/frr/vty.h
124include/frr/vxlan.h 125include/frr/vxlan.h
125include/frr/wheel.h 126include/frr/wheel.h
126include/frr/workqueue.h 127include/frr/workqueue.h
127include/frr/xref.h 128include/frr/xref.h
128include/frr/yang.h 129include/frr/yang.h
129include/frr/yang_translator.h 130include/frr/yang_translator.h
130include/frr/yang_wrappers.h 131include/frr/yang_wrappers.h
131include/frr/zclient.h 132include/frr/zclient.h
132include/frr/zebra.h 133include/frr/zebra.h
133include/frr/zlog.h 134include/frr/zlog.h
134include/frr/zlog_targets.h 135include/frr/zlog_targets.h
135${PLIST.doc}info/frr.info 136${PLIST.doc}info/frr.info
136lib/frr/modules/bgpd_bmp.la 137lib/frr/modules/bgpd_bmp.la
 138lib/frr/modules/dplane_sample_plugin.la
137lib/frr/modules/pathd_pcep.la 139lib/frr/modules/pathd_pcep.la
138lib/frr/modules/zebra_fpm.la 140lib/frr/modules/zebra_fpm.la
139lib/libfrr.la 141lib/libfrr.la
140lib/libfrrcares.la 142lib/libfrrcares.la
141lib/libfrrospfapiclient.la 143lib/libfrrospfapiclient.la
142${PLIST.doc}man/man1/frr.1 144${PLIST.doc}man/man1/frr.1
143${PLIST.doc}man/man1/vtysh.1 145${PLIST.doc}man/man1/vtysh.1
144${PLIST.doc}man/man8/frr-bfdd.8 146${PLIST.doc}man/man8/frr-bfdd.8
145${PLIST.doc}man/man8/frr-bgpd.8 147${PLIST.doc}man/man8/frr-bgpd.8
146${PLIST.doc}man/man8/frr-eigrpd.8 148${PLIST.doc}man/man8/frr-eigrpd.8
147${PLIST.doc}man/man8/frr-isisd.8 149${PLIST.doc}man/man8/frr-isisd.8
148${PLIST.doc}man/man8/frr-ldpd.8 150${PLIST.doc}man/man8/frr-ldpd.8
149${PLIST.doc}man/man8/frr-ospf6d.8 151${PLIST.doc}man/man8/frr-ospf6d.8
@@ -154,26 +156,27 @@ ${PLIST.doc}man/man8/frr-ripd.8 @@ -154,26 +156,27 @@ ${PLIST.doc}man/man8/frr-ripd.8
154${PLIST.doc}man/man8/frr-ripngd.8 156${PLIST.doc}man/man8/frr-ripngd.8
155${PLIST.doc}man/man8/frr-staticd.8 157${PLIST.doc}man/man8/frr-staticd.8
156${PLIST.doc}man/man8/frr-watchfrr.8 158${PLIST.doc}man/man8/frr-watchfrr.8
157${PLIST.doc}man/man8/frr-zebra.8 159${PLIST.doc}man/man8/frr-zebra.8
158${PLIST.doc}man/man8/mtracebis.8 160${PLIST.doc}man/man8/mtracebis.8
159sbin/babeld 161sbin/babeld
160sbin/bfdd 162sbin/bfdd
161sbin/bgpd 163sbin/bgpd
162sbin/eigrpd 164sbin/eigrpd
163sbin/fabricd 165sbin/fabricd
164sbin/frr 166sbin/frr
165sbin/frr-reload 167sbin/frr-reload
166sbin/frr-reload.py 168sbin/frr-reload.py
 169sbin/frr_babeltrace.py
167sbin/frrcommon.sh 170sbin/frrcommon.sh
168sbin/frrinit.sh 171sbin/frrinit.sh
169sbin/generate_support_bundle.py 172sbin/generate_support_bundle.py
170sbin/isisd 173sbin/isisd
171sbin/ldpd 174sbin/ldpd
172sbin/ospf6d 175sbin/ospf6d
173sbin/ospfd 176sbin/ospfd
174sbin/pathd 177sbin/pathd
175sbin/pbrd 178sbin/pbrd
176sbin/pimd 179sbin/pimd
177sbin/ripd 180sbin/ripd
178sbin/ripngd 181sbin/ripngd
179sbin/ssd 182sbin/ssd
@@ -182,26 +185,29 @@ sbin/watchfrr @@ -182,26 +185,29 @@ sbin/watchfrr
182sbin/watchfrr.sh 185sbin/watchfrr.sh
183sbin/zebra 186sbin/zebra
184${PLIST.doc}share/doc/frr/html/.buildinfo 187${PLIST.doc}share/doc/frr/html/.buildinfo
185${PLIST.doc}share/doc/frr/html/_images/fig-normal-processing.png 188${PLIST.doc}share/doc/frr/html/_images/fig-normal-processing.png
186${PLIST.doc}share/doc/frr/html/_images/fig-rs-processing.png 189${PLIST.doc}share/doc/frr/html/_images/fig-rs-processing.png
187${PLIST.doc}share/doc/frr/html/_images/fig-vnc-commercial-route-reflector.png 190${PLIST.doc}share/doc/frr/html/_images/fig-vnc-commercial-route-reflector.png
188${PLIST.doc}share/doc/frr/html/_images/fig-vnc-frr-route-reflector.png 191${PLIST.doc}share/doc/frr/html/_images/fig-vnc-frr-route-reflector.png
189${PLIST.doc}share/doc/frr/html/_images/fig-vnc-gw.png 192${PLIST.doc}share/doc/frr/html/_images/fig-vnc-gw.png
190${PLIST.doc}share/doc/frr/html/_images/fig-vnc-mesh.png 193${PLIST.doc}share/doc/frr/html/_images/fig-vnc-mesh.png
191${PLIST.doc}share/doc/frr/html/_images/fig-vnc-redundant-route-reflectors.png 194${PLIST.doc}share/doc/frr/html/_images/fig-vnc-redundant-route-reflectors.png
192${PLIST.doc}share/doc/frr/html/_images/fig_dmvpn_topologies.png 195${PLIST.doc}share/doc/frr/html/_images/fig_dmvpn_topologies.png
193${PLIST.doc}share/doc/frr/html/_images/fig_topologies_full.png 196${PLIST.doc}share/doc/frr/html/_images/fig_topologies_full.png
194${PLIST.doc}share/doc/frr/html/_images/fig_topologies_rs.png 197${PLIST.doc}share/doc/frr/html/_images/fig_topologies_rs.png
 198${PLIST.doc}share/doc/frr/html/_images/pathd_config.png
 199${PLIST.doc}share/doc/frr/html/_images/pathd_general.png
 200${PLIST.doc}share/doc/frr/html/_images/pathd_initiated_multi.png
195${PLIST.doc}share/doc/frr/html/_sources/babeld.rst.txt 201${PLIST.doc}share/doc/frr/html/_sources/babeld.rst.txt
196${PLIST.doc}share/doc/frr/html/_sources/basic.rst.txt 202${PLIST.doc}share/doc/frr/html/_sources/basic.rst.txt
197${PLIST.doc}share/doc/frr/html/_sources/bfd.rst.txt 203${PLIST.doc}share/doc/frr/html/_sources/bfd.rst.txt
198${PLIST.doc}share/doc/frr/html/_sources/bgp.rst.txt 204${PLIST.doc}share/doc/frr/html/_sources/bgp.rst.txt
199${PLIST.doc}share/doc/frr/html/_sources/bmp.rst.txt 205${PLIST.doc}share/doc/frr/html/_sources/bmp.rst.txt
200${PLIST.doc}share/doc/frr/html/_sources/bugs.rst.txt 206${PLIST.doc}share/doc/frr/html/_sources/bugs.rst.txt
201${PLIST.doc}share/doc/frr/html/_sources/eigrpd.rst.txt 207${PLIST.doc}share/doc/frr/html/_sources/eigrpd.rst.txt
202${PLIST.doc}share/doc/frr/html/_sources/fabricd.rst.txt 208${PLIST.doc}share/doc/frr/html/_sources/fabricd.rst.txt
203${PLIST.doc}share/doc/frr/html/_sources/filter.rst.txt 209${PLIST.doc}share/doc/frr/html/_sources/filter.rst.txt
204${PLIST.doc}share/doc/frr/html/_sources/frr-reload.rst.txt 210${PLIST.doc}share/doc/frr/html/_sources/frr-reload.rst.txt
205${PLIST.doc}share/doc/frr/html/_sources/glossary.rst.txt 211${PLIST.doc}share/doc/frr/html/_sources/glossary.rst.txt
206${PLIST.doc}share/doc/frr/html/_sources/grpc.rst.txt 212${PLIST.doc}share/doc/frr/html/_sources/grpc.rst.txt
207${PLIST.doc}share/doc/frr/html/_sources/index.rst.txt 213${PLIST.doc}share/doc/frr/html/_sources/index.rst.txt
@@ -297,33 +303,34 @@ share/yang/frr-bgp-bmp.yang @@ -297,33 +303,34 @@ share/yang/frr-bgp-bmp.yang
297share/yang/frr-bgp-common-multiprotocol.yang 303share/yang/frr-bgp-common-multiprotocol.yang
298share/yang/frr-bgp-common-structure.yang 304share/yang/frr-bgp-common-structure.yang
299share/yang/frr-bgp-common.yang 305share/yang/frr-bgp-common.yang
300share/yang/frr-bgp-filter.yang 306share/yang/frr-bgp-filter.yang
301share/yang/frr-bgp-neighbor.yang 307share/yang/frr-bgp-neighbor.yang
302share/yang/frr-bgp-peer-group.yang 308share/yang/frr-bgp-peer-group.yang
303share/yang/frr-bgp-route-map.yang 309share/yang/frr-bgp-route-map.yang
304share/yang/frr-bgp-rpki.yang 310share/yang/frr-bgp-rpki.yang
305share/yang/frr-bgp-types.yang 311share/yang/frr-bgp-types.yang
306share/yang/frr-bgp.yang 312share/yang/frr-bgp.yang
307share/yang/frr-deviations-bgp-datacenter.yang 313share/yang/frr-deviations-bgp-datacenter.yang
308share/yang/frr-eigrpd.yang 314share/yang/frr-eigrpd.yang
309share/yang/frr-filter.yang 315share/yang/frr-filter.yang
310share/yang/frr-igmp.yang 316share/yang/frr-gmp.yang
311share/yang/frr-interface.yang 317share/yang/frr-interface.yang
312share/yang/frr-isisd.yang 318share/yang/frr-isisd.yang
313share/yang/frr-module-translator.yang 319share/yang/frr-module-translator.yang
314share/yang/frr-nexthop.yang 320share/yang/frr-nexthop.yang
315share/yang/frr-ospf-route-map.yang 321share/yang/frr-ospf-route-map.yang
316share/yang/frr-ospf6-route-map.yang 322share/yang/frr-ospf6-route-map.yang
 323share/yang/frr-ospfd.yang
317share/yang/frr-pathd.yang 324share/yang/frr-pathd.yang
318share/yang/frr-pim-rp.yang 325share/yang/frr-pim-rp.yang
319share/yang/frr-pim.yang 326share/yang/frr-pim.yang
320share/yang/frr-ripd.yang 327share/yang/frr-ripd.yang
321share/yang/frr-ripngd.yang 328share/yang/frr-ripngd.yang
322share/yang/frr-route-map.yang 329share/yang/frr-route-map.yang
323share/yang/frr-route-types.yang 330share/yang/frr-route-types.yang
324share/yang/frr-routing.yang 331share/yang/frr-routing.yang
325share/yang/frr-staticd.yang 332share/yang/frr-staticd.yang
326share/yang/frr-test-module.yang 333share/yang/frr-test-module.yang
327share/yang/frr-vrf.yang 334share/yang/frr-vrf.yang
328share/yang/frr-zebra-route-map.yang 335share/yang/frr-zebra-route-map.yang
329share/yang/frr-zebra.yang 336share/yang/frr-zebra.yang

cvs diff -r1.7 -r1.8 pkgsrc/net/frr/distinfo (expand / switch to unified diff)

--- pkgsrc/net/frr/distinfo 2021/10/26 11:05:37 1.7
+++ pkgsrc/net/frr/distinfo 2022/05/16 11:54:19 1.8
@@ -1,8 +1,10 @@ @@ -1,8 +1,10 @@
1$NetBSD: distinfo,v 1.7 2021/10/26 11:05:37 nia Exp $ 1$NetBSD: distinfo,v 1.8 2022/05/16 11:54:19 kardel Exp $
2 2
3BLAKE2s (frr-8.0.1.tar.gz) = d698d9521fc3051c48afb110f1c78cf74c94d5c625cf7a4d5ab7778421085920 3BLAKE2s (frr-8.2.2.tar.gz) = e815bbd44cc9bf04031ed2aae259d863c11e8573bcfd6bb97b0b720f13a0f49e
4SHA512 (frr-8.0.1.tar.gz) = d9a9ee3b40bf0271779765447c67da817551b5bf2d5d1e9f8073fb4596c622e013fbf7316ca39087db7b7f478b18d07f1fd06f1778abde2734c83112573d5f8f 4SHA512 (frr-8.2.2.tar.gz) = 52d8e82979823f61ec6f117db1eb41b23fd8ad3197ae3f9d2cfa3ad9d96636a3d2f0b36720b2041a9261c8b639ddd48e46a2351ce41cb596f7dc432cddf29256
5Size (frr-8.0.1.tar.gz) = 8206852 bytes 5Size (frr-8.2.2.tar.gz) = 9439460 bytes
6SHA1 (patch-lib_elf__py.c) = a766923c906f1b0f9fa80a9e16e5275bae165187 6SHA1 (patch-lib_frr__pthread.c) = 24d695d906e2d4461080d6cdcd82f473e6eee6d8
 7SHA1 (patch-pimd_pim__mroute.c) = d0c306ba3fa400532978d18a220c283aae34c7f4
 8SHA1 (patch-pimd_pim__sock.c) = 5c99f7671d35813eb1b2e76ef23fa049053b1141
7SHA1 (patch-pkgsrc_zebra.sh.in) = d458e74a1f3319f6e075d3d3a81414bc7d7022f2 9SHA1 (patch-pkgsrc_zebra.sh.in) = d458e74a1f3319f6e075d3d3a81414bc7d7022f2
8SHA1 (patch-zebra_kernel__socket.c) = 845c3132d21aefcff5c41fa9aa9a31f2bf2ac5af 10SHA1 (patch-zebra_kernel__socket.c) = 74ef772fa70b69a1767ad11ce89d907504c7528e

File Added: pkgsrc/net/frr/patches/patch-lib_frr__pthread.c
$NetBSD: patch-lib_frr__pthread.c,v 1.1 2022/05/16 11:54:20 kardel Exp $

	avoid tripping over NULL pointer

--- lib/frr_pthread.c.orig	2022-03-13 15:59:48.000000000 +0000
+++ lib/frr_pthread.c
@@ -141,7 +141,7 @@ int frr_pthread_set_name(struct frr_pthr
 # ifdef GNU_LINUX
 	ret = pthread_setname_np(fpt->thread, fpt->os_name);
 # elif defined(__NetBSD__)
-	ret = pthread_setname_np(fpt->thread, fpt->os_name, NULL);
+	ret = pthread_setname_np(fpt->thread, fpt->os_name ? fpt->os_name : "-n/a-", NULL);
 # endif
 #elif defined(HAVE_PTHREAD_SET_NAME_NP)
 	pthread_set_name_np(fpt->thread, fpt->os_name);

File Added: pkgsrc/net/frr/patches/patch-pimd_pim__mroute.c
$NetBSD: patch-pimd_pim__mroute.c,v 1.1 2022/05/16 11:54:20 kardel Exp $

	Support HAVE_IP_RECVDSTADDR and HAVE_IP_RECVIF

--- pimd/pim_mroute.c.orig	2021-03-04 02:14:50.000000000 +0000
+++ pimd/pim_mroute.c
@@ -106,6 +106,26 @@ static int pim_mroute_set(struct pim_ins
 		}
 	}
 #endif
+#if defined(HAVE_IP_RECVDSTADDR)
+		/* BSD IP_RECVDSTADDR */
+		data = 1;
+		if (setsockopt(pim->mroute_socket, IPPROTO_IP, IP_RECVDSTADDR, &data,
+			       data_len)) {
+			zlog_warn(
+				"Could not set IP_RECVDSTADDR on socket fd=%d: errno=%d: %s",
+				pim->mroute_socket, errno, safe_strerror(errno));
+		}
+#endif
+#if defined(HAVE_IP_RECVIF)
+		/* BSD IP_RECVIF */
+		data = 1;
+		if (setsockopt(pim->mroute_socket, IPPROTO_IP, IP_RECVIF, &data,
+			       data_len)) {
+			zlog_warn(
+				"Could not set IP_RECVIF on socket fd=%d: errno=%d: %s",
+				pim->mroute_socket, errno, safe_strerror(errno));
+		}
+#endif
 
 	setsockopt_so_recvbuf(pim->mroute_socket, 1024 * 1024 * 8);
 

File Added: pkgsrc/net/frr/patches/patch-pimd_pim__sock.c
$NetBSD: patch-pimd_pim__sock.c,v 1.1 2022/05/16 11:54:20 kardel Exp $

	Support HAVE_STRUCT_IP_MREQN_IMR_IFINDEX and HAVE_IP_RECVIF

--- pimd/pim_sock.c.orig	2022-03-13 15:59:48.000000000 +0000
+++ pimd/pim_sock.c
@@ -27,7 +27,9 @@
 #include <unistd.h>
 #include <netdb.h>
 #include <errno.h>
-
+#ifdef __NetBSD__
+#include <net/if.h>
+#endif
 #include "log.h"
 #include "privs.h"
 #include "if.h"
@@ -97,11 +99,6 @@ int pim_socket_mcast(int protocol, struc
 		     uint8_t loop)
 {
 	int rcvbuf = 1024 * 1024 * 8;
-#ifdef HAVE_STRUCT_IP_MREQN_IMR_IFINDEX
-	struct ip_mreqn mreq;
-#else
-	struct ip_mreq mreq;
-#endif
 	int fd;
 
 	fd = pim_socket_raw(protocol);
@@ -146,6 +143,15 @@ int pim_socket_mcast(int protocol, struc
 				"Could not set IP_RECVDSTADDR on socket fd=%d: errno=%d: %s",
 				fd, errno, safe_strerror(errno));
 		}
+#elif defined(HAVE_IP_RECVIF)
+		/* BSD IP_RECVIF */
+		int opt = 1;
+		if (setsockopt(fd, IPPROTO_IP, IP_RECVIF, &opt,
+			       sizeof(opt))) {
+			zlog_warn(
+				"Could not set IP_RECVDSTADDR on socket fd=%d: errno=%d: %s",
+				fd, errno, safe_strerror(errno));
+		}
 #else
 		flog_err(
 			EC_LIB_DEVELOPMENT,
@@ -208,23 +214,26 @@ int pim_socket_mcast(int protocol, struc
 		return PIM_SOCK_ERR_LOOP;
 	}
 
-	memset(&mreq, 0, sizeof(mreq));
+	{
 #ifdef HAVE_STRUCT_IP_MREQN_IMR_IFINDEX
-	mreq.imr_ifindex = ifp->ifindex;
+		struct ip_mreqn mreq;
+
+		memset(&mreq, 0, sizeof(mreq));
+		mreq.imr_ifindex = ifp->ifindex;
+		if (setsockopt(fd, IPPROTO_IP, IP_MULTICAST_IF, (void *)&mreq,
+		       	sizeof(mreq)))
 #else
-/*
- * I am not sure what to do here yet for *BSD
- */
-// mreq.imr_interface = ifindex;
+		uint32_t idx = htonl(ifp->ifindex);
+		if (setsockopt(fd, IPPROTO_IP, IP_MULTICAST_IF, &idx, sizeof(idx)))
 #endif
 
-	if (setsockopt(fd, IPPROTO_IP, IP_MULTICAST_IF, (void *)&mreq,
-		       sizeof(mreq))) {
-		zlog_warn(
-			"Could not set Outgoing Interface Option on socket fd=%d: errno=%d: %s",
-			fd, errno, safe_strerror(errno));
-		close(fd);
-		return PIM_SOCK_ERR_IFACE;
+		{
+			zlog_warn(
+				"Could not set Outgoing Interface Option on socket fd=%d: errno=%d: %s",
+				fd, errno, safe_strerror(errno));
+			close(fd);
+			return PIM_SOCK_ERR_IFACE;
+		}
 	}
 
 	if (setsockopt(fd, SOL_SOCKET, SO_RCVBUF, &rcvbuf, sizeof(rcvbuf)))
@@ -379,7 +388,7 @@ int pim_socket_recvfromto(int fd, uint8_
 			if (ifindex)
 				*ifindex = i->ipi_ifindex;
 
-			break;
+			continue;
 		}
 #endif
 
@@ -392,14 +401,20 @@ int pim_socket_recvfromto(int fd, uint8_
 			if (tolen)
 				*tolen = sizeof(struct sockaddr_in);
 
-			break;
+			continue;
 		}
 #endif
 
-#if defined(HAVE_IP_RECVIF) && defined(CMSG_IFINDEX)
-		if (cmsg->cmsg_type == IP_RECVIF)
-			if (ifindex)
-				*ifindex = CMSG_IFINDEX(cmsg);
+#if defined(HAVE_IP_RECVIF)
+		if (cmsg->cmsg_type == IP_RECVIF && ifindex) {
+#ifdef __NetBSD__
+			struct sockaddr_dl *dl = (struct sockaddr_dl *)CMSG_DATA(cmsg);
+			*ifindex = dl->sdl_index;
+#elif defined(CMSG_IFINDEX)
+			*ifindex = CMSG_IFINDEX(cmsg);
+#endif
+			continue;
+		}
 #endif
 
 	} /* for (cmsg) */

cvs diff -r1.3 -r1.4 pkgsrc/net/frr/patches/patch-zebra_kernel__socket.c (expand / switch to unified diff)

--- pkgsrc/net/frr/patches/patch-zebra_kernel__socket.c 2021/08/15 14:54:31 1.3
+++ pkgsrc/net/frr/patches/patch-zebra_kernel__socket.c 2022/05/16 11:54:20 1.4
@@ -1,53 +1,53 @@ @@ -1,53 +1,53 @@
1$NetBSD: patch-zebra_kernel__socket.c,v 1.3 2021/08/15 14:54:31 kardel Exp $ 1$NetBSD: patch-zebra_kernel__socket.c,v 1.4 2022/05/16 11:54:20 kardel Exp $
2 2
3 Pass IFP interface index if known (normal case) to make 3 Pass IFP interface index if known (normal case) to make
4 interface specific routes work such as in 4 interface specific routes work such as in
5 5
6 ipv6 route ::/0 <ipv6 address> carp0 100 6 ipv6 route ::/0 <ipv6 address> carp0 100
7 ivv6 route ::/0 <other ipv6 address> 200 7 ivv6 route ::/0 <other ipv6 address> 200
8 8
9 frr-8 now enables SO_RERROR but exits cowardly when the 9 frr-8 now enables SO_RERROR but exits cowardly when the
10 routing socket returns ENOBUFS. ensure at least a bit more 10 routing socket returns ENOBUFS. ensure at least a bit more
11 socket buffer space by increasing SO_RCVBUF. 11 socket buffer space by increasing SO_RCVBUF.
12 12
13--- zebra/kernel_socket.c.orig 2021-07-21 13:06:19.000000000 +0000 13--- zebra/kernel_socket.c.orig 2022-03-13 15:59:48.000000000 +0000
14+++ zebra/kernel_socket.c 14+++ zebra/kernel_socket.c
15@@ -39,6 +39,7 @@ 15@@ -39,6 +39,7 @@
16 #include "privs.h" 16 #include "privs.h"
17 #include "vrf.h" 17 #include "vrf.h"
18 #include "lib_errors.h" 18 #include "lib_errors.h"
19+#include "lib/sockopt.h" 19+#include "lib/sockopt.h"
20  20
21 #include "zebra/rt.h" 21 #include "zebra/rt.h"
22 #include "zebra/interface.h" 22 #include "zebra/interface.h"
23@@ -1243,6 +1244,20 @@ int rtm_write(int message, union sockuni 23@@ -1249,6 +1250,20 @@ int rtm_write(int message, union sockuni
24 #ifdef __OpenBSD__ 24 #ifdef __OpenBSD__
25 SOCKADDRSET(mpls, RTA_SRC); 25 SOCKADDRSET(mpls, RTA_SRC);
26 #endif 26 #endif
27+#ifdef __NetBSD__ 27+#ifdef __NetBSD__
28+ if (index > 0) { 28+ if (index > 0) {
29+ struct sockaddr_dl sdl; 29+ struct sockaddr_dl sdl;
30+ 30+
31+ memset(&sdl, 0, sizeof(sdl)); 31+ memset(&sdl, 0, sizeof(sdl));
32+ sdl.sdl_len = sizeof(sdl); 32+ sdl.sdl_len = sizeof(sdl);
33+ sdl.sdl_family = AF_LINK; 33+ sdl.sdl_family = AF_LINK;
34+ sdl.sdl_index = index; 34+ sdl.sdl_index = index;
35+ 35+
36+ msg.rtm.rtm_addrs |= RTA_IFP; 36+ msg.rtm.rtm_addrs |= RTA_IFP;
37+ memcpy(pnt, &sdl, sdl.sdl_len); 37+ memcpy(pnt, &sdl, sdl.sdl_len);
38+ pnt += SAROUNDUP(&sdl); 38+ pnt += SAROUNDUP(&sdl);
39+ } 39+ }
40+#endif 40+#endif
41  41
42 msg.rtm.rtm_msglen = pnt - (caddr_t)&msg; 42 msg.rtm.rtm_msglen = pnt - (caddr_t)&msg;
43  43
44@@ -1425,6 +1440,9 @@ static void routing_socket(struct zebra_ 44@@ -1434,6 +1449,9 @@ static void routing_socket(struct zebra_
45 return; 45 return;
46 } 46 }
47  47
48+ setsockopt_so_recvbuf(routing_sock, 1048576); 48+ setsockopt_so_recvbuf(routing_sock, 1048576);
49+ setsockopt_so_recvbuf(dplane_routing_sock, 1048576); 49+ setsockopt_so_recvbuf(dplane_routing_sock, 1048576);
50+ 50+
51 #ifdef SO_RERROR 51 #ifdef SO_RERROR
52 /* Allow reporting of route(4) buffer overflow errors */ 52 /* Allow reporting of route(4) buffer overflow errors */
53 int n = 1; 53 int n = 1;