View | Details | Raw Unified | Return to bug 277891 | Differences between
and this patch

Collapse All | Expand All

(-)b/net/bird2/Makefile (-4 / +8 lines)
Lines 1-5 Link Here
1
PORTNAME=	bird
1
PORTNAME=	bird
2
DISTVERSION=	2.14
2
DISTVERSION=	2.15.1
3
CATEGORIES=	net
3
CATEGORIES=	net
4
MASTER_SITES=	https://bird.network.cz/download/
4
MASTER_SITES=	https://bird.network.cz/download/
5
PKGNAMESUFFIX=	2
5
PKGNAMESUFFIX=	2
Lines 10-17 WWW= https://bird.network.cz/ Link Here
10
10
11
LICENSE=	GPLv2
11
LICENSE=	GPLv2
12
12
13
FLAVORS=	base netlink
13
FLAVORS=	netlink base
14
netlink_PKGNAMESUFFIX=	2-netlink
14
base_PKGNAMESUFFIX=	2-rtsock
15
15
16
USES=		bison cpe gmake ncurses readline
16
USES=		bison cpe gmake ncurses readline
17
17
Lines 62-69 RPKI_LIB_DEPENDS= libssh.so:security/libssh Link Here
62
62
63
.include <bsd.port.options.mk>
63
.include <bsd.port.options.mk>
64
64
65
.if ${FLAVOR:U} == netlink
65
.if ${FLAVOR:U} != base
66
CONFIGURE_ARGS+=--with-sysconfig=bsd-netlink
66
CONFIGURE_ARGS+=--with-sysconfig=bsd-netlink
67
.endif
67
.endif
68
68
69
.if ${OPSYS} == FreeBSD && ( ${OSVERSION} < 1303502 || ${OSVERSION} >= 1400000 && ${OSVERSION} < 1400510 || ${OSVERSION} >= 1500000 && ${OSVERSION} < 1500017 )
70
EXTRA_PATCHES=	${PATCHDIR}/extra-patch-netlink-route
71
.endif
72
69
.include <bsd.port.mk>
73
.include <bsd.port.mk>
(-)b/net/bird2/distinfo (-3 / +3 lines)
Lines 1-3 Link Here
1
TIMESTAMP = 1696753023
1
TIMESTAMP = 1711107320
2
SHA256 (bird-2.14.tar.gz) = b0b9f6f8566541b9be4af1f0cac675c5a3785601a55667a7ec3d7de29735a786
2
SHA256 (bird-2.15.1.tar.gz) = 48e85c622de164756c132ea77ad1a8a95cc9fd0137ffd0d882746589ce75c75d
3
SIZE (bird-2.14.tar.gz) = 1396217
3
SIZE (bird-2.15.1.tar.gz) = 1409653
(-)b/net/bird2/files/extra-patch-netlink-route/patch-sysdep_bsd-netlink_netlink-route.h (+370 lines)
Added Link Here
1
--- /dev/null	2024-03-22 15:39:07.538356000 +0100
2
+++ sysdep/bsd-netlink/netlink-route.h	2024-03-22 15:39:02.226088000 +0100
3
@@ -0,0 +1,367 @@
4
+/*-
5
+ * SPDX-License-Identifier: BSD-2-Clause
6
+ *
7
+ * Copyright (c) 2022 Alexander V. Chernikov <melifaro@FreeBSD.org>
8
+ *
9
+ * Redistribution and use in source and binary forms, with or without
10
+ * modification, are permitted provided that the following conditions
11
+ * are met:
12
+ * 1. Redistributions of source code must retain the above copyright
13
+ *    notice, this list of conditions and the following disclaimer.
14
+ * 2. Redistributions in binary form must reproduce the above copyright
15
+ *    notice, this list of conditions and the following disclaimer in the
16
+ *    documentation and/or other materials provided with the distribution.
17
+ *
18
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
19
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
22
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28
+ * SUCH DAMAGE.
29
+ */
30
+
31
+/*
32
+ * Route-related (RTM_<NEW|DEL|GET>ROUTE) message header and attributes.
33
+ */
34
+
35
+#ifndef _NETLINK_ROUTE_ROUTE_H_
36
+#define _NETLINK_ROUTE_ROUTE_H_
37
+
38
+/* Base header for all of the relevant messages */
39
+struct rtmsg {
40
+	unsigned char	rtm_family;	/* address family */
41
+	unsigned char	rtm_dst_len;	/* Prefix length */
42
+	unsigned char	rtm_src_len;	/* Source prefix length (not used) */
43
+	unsigned char	rtm_tos;	/* Type of service (not used) */
44
+	unsigned char	rtm_table;	/* rtable id */
45
+	unsigned char	rtm_protocol;	/* Routing protocol id (RTPROT_) */
46
+	unsigned char	rtm_scope;	/* Route distance (RT_SCOPE_) */
47
+	unsigned char	rtm_type;	/* Route type (RTN_) */
48
+	unsigned 	rtm_flags;	/* Route flags (RTM_F_) */
49
+};
50
+
51
+/*
52
+ * RFC 3549, 3.1.1, route type (rtm_type field).
53
+ */
54
+enum {
55
+	RTN_UNSPEC,
56
+	RTN_UNICAST,		/* Unicast route */
57
+	RTN_LOCAL,		/* Accept locally (not supported) */
58
+	RTN_BROADCAST,		/* Accept locally as broadcast, send as broadcast */
59
+	RTN_ANYCAST,		/* Accept locally as broadcast, but send as unicast */
60
+	RTN_MULTICAST,		/* Multicast route */
61
+	RTN_BLACKHOLE,		/* Drop traffic towards destination */
62
+	RTN_UNREACHABLE,	/* Destination is unreachable */
63
+	RTN_PROHIBIT,		/* Administratively prohibited */
64
+	RTN_THROW,		/* Not in this table (not supported) */
65
+	RTN_NAT,		/* Translate this address (not supported) */
66
+	RTN_XRESOLVE,		/* Use external resolver (not supported) */
67
+	__RTN_MAX,
68
+};
69
+#define RTN_MAX (__RTN_MAX - 1)
70
+
71
+/*
72
+ * RFC 3549, 3.1.1, protocol (Identifies what/who added the route).
73
+ * Values larger than RTPROT_STATIC(4) are not interpreted by the
74
+ * kernel, they are just for user information.
75
+ */
76
+#define	RTPROT_UNSPEC		0
77
+#define RTPROT_REDIRECT		1 /* Route installed by ICMP redirect */
78
+#define RTPROT_KERNEL		2 /* Route installed by kernel */
79
+#define RTPROT_BOOT		3 /* Route installed during boot */
80
+#define RTPROT_STATIC		4 /* Route installed by administrator */
81
+
82
+#define	RTPROT_GATED		8
83
+#define RTPROT_RA		9
84
+#define RTPROT_MRT		1
85
+#define RTPROT_ZEBRA		11
86
+#define RTPROT_BIRD		12
87
+#define RTPROT_DNROUTED		13
88
+#define RTPROT_XORP		14
89
+#define RTPROT_NTK		15
90
+#define RTPROT_DHCP		16
91
+#define RTPROT_MROUTED		17
92
+#define RTPROT_KEEPALIVED	18
93
+#define RTPROT_BABEL		42
94
+#define RTPROT_OPENR		99
95
+#define RTPROT_BGP		186
96
+#define RTPROT_ISIS		187
97
+#define RTPROT_OSPF		188
98
+#define RTPROT_RIP		189
99
+#define RTPROT_EIGRP		192
100
+
101
+/*
102
+ * RFC 3549 3.1.1 Route scope (valid distance to destination).
103
+ *
104
+ * The values between RT_SCOPE_UNIVERSE(0) and RT_SCOPE_SITE(200)
105
+ *  are available to the user.
106
+ */
107
+enum rt_scope_t {
108
+	RT_SCOPE_UNIVERSE = 0,
109
+	/* User defined values  */
110
+	RT_SCOPE_SITE = 200,
111
+	RT_SCOPE_LINK = 253,
112
+	RT_SCOPE_HOST = 254,
113
+	RT_SCOPE_NOWHERE = 255
114
+};
115
+
116
+/*
117
+ * RFC 3549 3.1.1 Route flags (rtm_flags).
118
+ * Is a composition of RTNH_F flags (0x1..0x40 range), RTM_F flags (below)
119
+ * and per-protocol (IPv4/IPv6) flags.
120
+ */
121
+#define RTM_F_NOTIFY		0x00000100 /* not supported */
122
+#define RTM_F_CLONED		0x00000200 /* not supported */
123
+#define RTM_F_EQUALIZE		0x00000400 /* not supported */
124
+#define RTM_F_PREFIX		0x00000800 /* not supported */
125
+#define RTM_F_LOOKUP_TABLE	0x00001000 /* not supported */
126
+#define RTM_F_FIB_MATCH		0x00002000 /* not supported */
127
+#define RTM_F_OFFLOAD		0x00004000 /* not supported */
128
+#define RTM_F_TRAP		0x00008000 /* not supported */
129
+#define RTM_F_OFFLOAD_FAILED	0x20000000 /* not supported */
130
+
131
+/* Compatibility handling helpers */
132
+#ifndef _KERNEL
133
+#define	NL_RTM_HDRLEN		((int)sizeof(struct rtmsg))
134
+#define	RTM_RTA(_rtm)		((struct rtattr *)((char *)(_rtm) + NL_RTM_HDRLEN))
135
+#define	RTM_PAYLOAD(_hdr)	NLMSG_PAYLOAD((_hdr), NL_RTM_HDRLEN)
136
+#endif
137
+
138
+/*
139
+ * Routing table identifiers.
140
+ * FreeBSD route table numbering starts from 0, where 0 is a valid default routing table.
141
+ * Indicating "all tables" via netlink can be done by not including RTA_TABLE attribute
142
+ * and keeping rtm_table=0 (compatibility) or setting RTA_TABLE value to RT_TABLE_UNSPEC.
143
+ */
144
+#define	RT_TABLE_MAIN	0		/* RT_DEFAULT_FIB */
145
+#define	RT_TABLE_UNSPEC	0xFFFFFFFF	/* RT_ALL_FIBS */
146
+
147
+enum rtattr_type_t {
148
+	NL_RTA_UNSPEC,
149
+	NL_RTA_DST		= 1, /* binary, IPv4/IPv6 destination */
150
+	NL_RTA_SRC		= 2, /* binary, preferred source address */
151
+	NL_RTA_IIF		= 3, /* not supported */
152
+	NL_RTA_OIF		= 4, /* u32, transmit ifindex */
153
+	NL_RTA_GATEWAY		= 5, /* binary: IPv4/IPv6 gateway */
154
+	NL_RTA_PRIORITY		= 6, /* not supported */
155
+	NL_RTA_PREFSRC		= 7, /* not supported */
156
+	NL_RTA_METRICS		= 8, /* nested, list of NL_RTAX* attrs */
157
+	NL_RTA_MULTIPATH	= 9, /* binary, array of struct rtnexthop */
158
+	NL_RTA_PROTOINFO	= 10, /* not supported / deprecated */
159
+	NL_RTA_KNH_ID		= 10, /* u32, FreeBSD specific, kernel nexthop index */
160
+	NL_RTA_FLOW		= 11, /* not supported */
161
+	NL_RTA_CACHEINFO	= 12, /* not supported */
162
+	NL_RTA_SESSION		= 13, /* not supported / deprecated */
163
+	NL_RTA_WEIGHT		= 13, /* u32, FreeBSD specific, path weight */
164
+	NL_RTA_MP_ALGO		= 14, /* not supported / deprecated */
165
+	NL_RTA_RTFLAGS		= 14, /* u32, FreeBSD specific, path flags (RTF_)*/
166
+	NL_RTA_TABLE		= 15, /* u32, fibnum */
167
+	NL_RTA_MARK		= 16, /* not supported */
168
+	NL_RTA_MFC_STATS	= 17, /* not supported */
169
+	NL_RTA_VIA		= 18, /* binary, struct rtvia */
170
+	NL_RTA_NEWDST		= 19, /* not supported */
171
+	NL_RTA_PREF		= 20, /* not supported */
172
+	NL_RTA_ENCAP_TYPE	= 21, /* not supported */
173
+	NL_RTA_ENCAP		= 22, /* not supported */
174
+	NL_RTA_EXPIRES		= 23, /* u32, seconds till expiration */
175
+	NL_RTA_PAD		= 24, /* not supported */
176
+	NL_RTA_UID		= 25, /* not supported */
177
+	NL_RTA_TTL_PROPAGATE	= 26, /* not supported */
178
+	NL_RTA_IP_PROTO		= 27, /* not supported */
179
+	NL_RTA_SPORT		= 28, /* not supported */
180
+	NL_RTA_DPORT		= 29, /* not supported */
181
+	NL_RTA_NH_ID		= 30, /* u32, nexthop/nexthop group index */
182
+	__RTA_MAX
183
+};
184
+#define NL_RTA_MAX (__RTA_MAX - 1)
185
+
186
+/*
187
+ * Attributes that can be used as filters:
188
+ *
189
+ */
190
+
191
+#ifndef _KERNEL
192
+/*
193
+ * RTA_* space has clashes with rtsock namespace.
194
+ * Use NL_RTA_ prefix in the kernel and map to
195
+ * RTA_ for userland.
196
+ */
197
+#define RTA_UNSPEC		NL_RTA_UNSPEC
198
+#define RTA_DST			NL_RTA_DST
199
+#define RTA_SRC			NL_RTA_SRC
200
+#define RTA_IIF			NL_RTA_IIF
201
+#define RTA_OIF			NL_RTA_OIF
202
+#define RTA_GATEWAY		NL_RTA_GATEWAY
203
+#define RTA_PRIORITY		NL_RTA_PRIORITY
204
+#define RTA_PREFSRC		NL_RTA_PREFSRC
205
+#define RTA_METRICS		NL_RTA_METRICS
206
+#define RTA_MULTIPATH		NL_RTA_MULTIPATH
207
+#define	RTA_PROTOINFO		NL_RTA_PROTOINFO
208
+#define	RTA_KNH_ID		NL_RTA_KNH_ID
209
+#define RTA_FLOW		NL_RTA_FLOW
210
+#define RTA_CACHEINFO		NL_RTA_CACHEINFO
211
+#define	RTA_SESSION		NL_RTA_SESSION
212
+#define	RTA_MP_ALGO		NL_RTA_MP_ALGO
213
+#define RTA_TABLE		NL_RTA_TABLE
214
+#define RTA_MARK		NL_RTA_MARK
215
+#define RTA_MFC_STATS		NL_RTA_MFC_STATS
216
+#define RTA_VIA			NL_RTA_VIA
217
+#define RTA_NEWDST		NL_RTA_NEWDST
218
+#define RTA_PREF		NL_RTA_PREF
219
+#define RTA_ENCAP_TYPE		NL_RTA_ENCAP_TYPE
220
+#define RTA_ENCAP		NL_RTA_ENCAP
221
+#define RTA_EXPIRES		NL_RTA_EXPIRES
222
+#define RTA_PAD			NL_RTA_PAD
223
+#define RTA_UID			NL_RTA_UID
224
+#define RTA_TTL_PROPAGATE	NL_RTA_TTL_PROPAGATE
225
+#define RTA_IP_PROTO		NL_RTA_IP_PROTO
226
+#define RTA_SPORT		NL_RTA_SPORT
227
+#define RTA_DPORT		NL_RTA_DPORT
228
+#define RTA_NH_ID		NL_RTA_NH_ID
229
+#define	RTA_MAX			NL_RTA_MAX
230
+#endif
231
+
232
+/* route attribute header */
233
+struct rtattr {
234
+	unsigned short rta_len;
235
+	unsigned short rta_type;
236
+};
237
+
238
+#define	NL_RTA_ALIGN_SIZE	NL_ITEM_ALIGN_SIZE
239
+#define	NL_RTA_ALIGN		NL_ITEM_ALIGN
240
+#define	NL_RTA_HDRLEN		((int)sizeof(struct rtattr))
241
+#define	NL_RTA_DATA_LEN(_rta)	((int)((_rta)->rta_len - NL_RTA_HDRLEN))
242
+#define	NL_RTA_DATA(_rta)	NL_ITEM_DATA(_rta, NL_RTA_HDRLEN)
243
+#define	NL_RTA_DATA_CONST(_rta)	NL_ITEM_DATA_CONST(_rta, NL_RTA_HDRLEN)
244
+
245
+/* Compatibility attribute handling helpers */
246
+#ifndef _KERNEL
247
+#define	RTA_ALIGNTO		NL_RTA_ALIGN_SIZE
248
+#define	RTA_ALIGN(_len)		NL_RTA_ALIGN(_len)
249
+#define	_RTA_LEN(_rta)		((int)(_rta)->rta_len)
250
+#define	_RTA_ALIGNED_LEN(_rta)	RTA_ALIGN(_RTA_LEN(_rta))
251
+#define	RTA_OK(_rta, _len)	NL_ITEM_OK(_rta, _len, NL_RTA_HDRLEN, _RTA_LEN)
252
+#define	RTA_NEXT(_rta, _len)	NL_ITEM_ITER(_rta, _len, _RTA_ALIGNED_LEN)
253
+#define	RTA_LENGTH(_len)	(NL_RTA_HDRLEN + (_len))
254
+#define	RTA_SPACE(_len)		RTA_ALIGN(RTA_LENGTH(_len))
255
+#define	RTA_DATA(_rta)		NL_RTA_DATA(_rta)
256
+#define	RTA_PAYLOAD(_rta)	((int)(_RTA_LEN(_rta) - NL_RTA_HDRLEN))
257
+#endif
258
+
259
+/* RTA attribute headers */
260
+
261
+/* RTA_VIA */
262
+struct rtvia {
263
+	sa_family_t	rtvia_family;
264
+	uint8_t		rtvia_addr[0];
265
+};
266
+
267
+/*
268
+ * RTA_METRICS is a nested attribute, consisting of a list of
269
+ * TLVs with types defined below.
270
+ */
271
+ enum {
272
+	NL_RTAX_UNSPEC,
273
+	NL_RTAX_LOCK			= 1, /* not supported */
274
+	NL_RTAX_MTU			= 2, /* desired path MTU */
275
+	NL_RTAX_WINDOW			= 3, /* not supported */
276
+	NL_RTAX_RTT			= 4, /* not supported */
277
+	NL_RTAX_RTTVAR			= 5, /* not supported */
278
+	NL_RTAX_SSTHRESH		= 6, /* not supported */
279
+	NL_RTAX_CWND			= 7, /* not supported */
280
+	NL_RTAX_ADVMSS			= 8, /* not supported  */
281
+	NL_RTAX_REORDERING		= 9, /* not supported */
282
+	NL_RTAX_HOPLIMIT		= 10, /* not supported */
283
+	NL_RTAX_INITCWND		= 11, /* not supporrted */
284
+	NL_RTAX_FEATURES		= 12, /* not supported */
285
+	NL_RTAX_RTO_MIN			= 13, /* not supported */
286
+	NL_RTAX_INITRWND		= 14, /* not supported */
287
+	NL_RTAX_QUICKACK		= 15, /* not supported */
288
+	NL_RTAX_CC_ALGO			= 16, /* not supported */
289
+	NL_RTAX_FASTOPEN_NO_COOKIE	= 17, /* not supported */
290
+	__NL_RTAX_MAX
291
+};
292
+#define NL_RTAX_MAX (__NL_RTAX_MAX - 1)
293
+
294
+#define RTAX_FEATURE_ECN (1 << 0)
295
+#define RTAX_FEATURE_SACK (1 << 1)
296
+#define RTAX_FEATURE_TIMESTAMP (1 << 2)
297
+#define RTAX_FEATURE_ALLFRAG (1 << 3)
298
+
299
+#define RTAX_FEATURE_MASK                                                \
300
+	(RTAX_FEATURE_ECN | RTAX_FEATURE_SACK | RTAX_FEATURE_TIMESTAMP | \
301
+	    RTAX_FEATURE_ALLFRAG)
302
+
303
+#ifndef _KERNEL
304
+
305
+/*
306
+ * RTAX_* space clashes with rtsock namespace.
307
+ * Use NL_RTAX_ prefix in the kernel and map to
308
+ * RTAX_ for userland.
309
+ */
310
+#define RTAX_UNSPEC		NL_RTAX_UNSPEC
311
+#define RTAX_LOCK		NL_RTAX_LOCK
312
+#define RTAX_MTU		NL_RTAX_MTU
313
+#define RTAX_WINDOW		NL_RTAX_WINDOW
314
+#define RTAX_RTT		NL_RTAX_RTT
315
+#define RTAX_RTTVAR		NL_RTAX_RTTVAR
316
+#define RTAX_SSTHRESH		NL_RTAX_SSTHRESH
317
+#define RTAX_CWND		NL_RTAX_CWND
318
+#define RTAX_ADVMSS		NL_RTAX_ADVMSS
319
+#define RTAX_REORDERING		NL_RTAX_REORDERING
320
+#define RTAX_HOPLIMIT		NL_RTAX_HOPLIMIT
321
+#define RTAX_INITCWND		NL_RTAX_INITCWND
322
+#define RTAX_FEATURES		NL_RTAX_FEATURES
323
+#define RTAX_RTO_MIN		NL_RTAX_RTO_MIN
324
+#define RTAX_INITRWND		NL_RTAX_INITRWND
325
+#define RTAX_QUICKACK		NL_RTAX_QUICKACK
326
+#define RTAX_CC_ALGO		NL_RTAX_CC_ALGO
327
+#define RTAX_FASTOPEN_NO_COOKIE	NL_RTAX_FASTOPEN_NO_COOKIE
328
+#endif
329
+
330
+/*
331
+ * RTA_MULTIPATH consists of an array of rtnexthop structures.
332
+ * Each rtnexthop structure contains RTA_GATEWAY or RTA_VIA
333
+ * attribute following the header.
334
+ */
335
+struct rtnexthop {
336
+	unsigned short		rtnh_len;
337
+	unsigned char		rtnh_flags;
338
+	unsigned char		rtnh_hops;	/* nexthop weight */
339
+	int			rtnh_ifindex;
340
+};
341
+
342
+/* rtnh_flags */
343
+#define RTNH_F_DEAD		0x01	/* not supported */
344
+#define RTNH_F_PERVASIVE	0x02	/* not supported */
345
+#define RTNH_F_ONLINK		0x04	/* not supported */
346
+#define RTNH_F_OFFLOAD		0x08	/* not supported */
347
+#define RTNH_F_LINKDOWN		0x10	/* not supported */
348
+#define RTNH_F_UNRESOLVED	0x20	/* not supported */
349
+#define RTNH_F_TRAP		0x40	/* not supported */
350
+
351
+#define RTNH_COMPARE_MASK	(RTNH_F_DEAD | RTNH_F_LINKDOWN | \
352
+				 RTNH_F_OFFLOAD | RTNH_F_TRAP)
353
+
354
+/* Macros to handle hexthops */
355
+#define	RTNH_ALIGNTO		NL_ITEM_ALIGN_SIZE
356
+#define	RTNH_ALIGN(_len)	NL_ITEM_ALIGN(_len)
357
+#define	RTNH_HDRLEN		((int)sizeof(struct rtnexthop))
358
+#define	_RTNH_LEN(_nh)		((int)(_nh)->rtnh_len)
359
+#define	_RTNH_ALIGNED_LEN(_nh)	RTNH_ALIGN(_RTNH_LEN(_nh))
360
+#define	RTNH_OK(_nh, _len)	NL_ITEM_OK(_nh, _len, RTNH_HDRLEN, _RTNH_LEN)
361
+#define	RTNH_NEXT(_nh)		((struct rtnexthop *)((char *)(_nh) + _RTNH_ALIGNED_LEN(_nh)))
362
+#define	RTNH_LENGTH(_len)	(RTNH_HDRLEN + (_len))
363
+#define	RTNH_SPACE(_len)	RTNH_ALIGN(RTNH_LENGTH(_len))
364
+#define	RTNH_DATA(_nh)		((struct rtattr *)NL_ITEM_DATA(_nh, RTNH_HDRLEN))
365
+
366
+struct rtgenmsg {
367
+	unsigned char rtgen_family;
368
+};
369
+
370
+#endif
(-)b/net/bird2/files/extra-patch-netlink-route/patch-sysdep_bsd-netlink_netlink-sys.h (-1 / +10 lines)
Added Link Here
0
- 
1
--- sysdep/bsd-netlink/netlink-sys.h.orig	2024-03-22 14:19:18 UTC
2
+++ sysdep/bsd-netlink/netlink-sys.h
3
@@ -9,6 +9,7 @@
4
 #ifndef _BIRD_NETLINK_SYS_H_
5
 #define _BIRD_NETLINK_SYS_H_
6
 
7
+#include "netlink-route.h"
8
 #include <netlink/netlink.h>
9
 #include <netlink/netlink_route.h>
10
 

Return to bug 277891