25 April 2021: babeld-1.10
* Removed the disambiguation code: source-specific routing is no longer
supported for IPv4, and for IPv6 only on Linux 3.11 or later.
* Fixed an issue handling of retractions with no next hop, which caused
interoperability problems with BIRD. Thanks to Fabian Bläse.
* If skip-kernel-setup is set, we no longer disable the rp_filter, which
makes babeld work in containers. Thanks to Martin Weinelt.
Remove upstreamed part of ubus patch:
- local: make local_kind function accessible
Signed-off-by: Nick Hainke <vincent@systemli.org>
include $(TOPDIR)/rules.mk
PKG_NAME:=babeld
include $(TOPDIR)/rules.mk
PKG_NAME:=babeld
PKG_RELEASE:=$(AUTORELEASE)
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://www.irif.fr/~jch/software/files/
PKG_RELEASE:=$(AUTORELEASE)
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://www.irif.fr/~jch/software/files/
-PKG_HASH:=154f00e0a8bf35d6ea9028886c3dc5c3c342dd1a367df55ef29a547b75867f07
+PKG_HASH:=a5f54a08322640e97399bf4d1411a34319e6e277fbb6fc4966f38a17d72a8dea
PKG_MAINTAINER:=Gabriel Kerneis <gabriel@kerneis.info>, \
Baptiste Jonglez <openwrt-pkg@bitsofnetworks.org>
PKG_MAINTAINER:=Gabriel Kerneis <gabriel@kerneis.info>, \
Baptiste Jonglez <openwrt-pkg@bitsofnetworks.org>
--- a/babeld.c
+++ b/babeld.c
--- a/babeld.c
+++ b/babeld.c
-@@ -55,6 +55,8 @@ THE SOFTWARE.
- #include "rule.h"
+@@ -54,6 +54,8 @@ THE SOFTWARE.
+ #include "local.h"
#include "version.h"
+#include "ubus.h"
#include "version.h"
+#include "ubus.h"
struct timeval now;
unsigned char myid[8];
struct timeval now;
unsigned char myid[8];
-@@ -536,6 +538,9 @@ main(int argc, char **argv)
+@@ -518,6 +520,9 @@ main(int argc, char **argv)
init_signals();
rc = resize_receive_buffer(1500);
if(rc < 0)
init_signals();
rc = resize_receive_buffer(1500);
if(rc < 0)
-@@ -635,6 +640,8 @@ main(int argc, char **argv)
+@@ -613,6 +618,8 @@ main(int argc, char **argv)
FD_SET(local_sockets[i].fd, &readfds);
maxfd = MAX(maxfd, local_sockets[i].fd);
}
FD_SET(local_sockets[i].fd, &readfds);
maxfd = MAX(maxfd, local_sockets[i].fd);
}
rc = select(maxfd + 1, &readfds, NULL, NULL, &tv);
if(rc < 0) {
if(errno != EINTR) {
rc = select(maxfd + 1, &readfds, NULL, NULL, &tv);
if(rc < 0) {
if(errno != EINTR) {
-@@ -703,6 +710,9 @@ main(int argc, char **argv)
+@@ -680,6 +687,9 @@ main(int argc, char **argv)
if(reopening) {
kernel_dump_time = now.tv_sec;
check_neighbours_timeout = now;
if(reopening) {
kernel_dump_time = now.tv_sec;
check_neighbours_timeout = now;
---- a/Makefile
-+++ b/Makefile
-@@ -11,11 +11,11 @@ LDLIBS = -lrt
-
- SRCS = babeld.c net.c kernel.c util.c interface.c source.c neighbour.c \
- route.c xroute.c message.c resend.c configuration.c local.c \
-- disambiguation.c rule.c
-+ disambiguation.c rule.c ubus.c
-
- OBJS = babeld.o net.o kernel.o util.o interface.o source.o neighbour.o \
- route.o xroute.o message.o resend.o configuration.o local.o \
-- disambiguation.o rule.o
-+ disambiguation.o rule.o ubus.o
-
- babeld: $(OBJS)
- $(CC) $(CFLAGS) $(LDFLAGS) -o babeld $(OBJS) $(LDLIBS)
--- a/generate-version.sh
+++ b/generate-version.sh
@@ -10,4 +10,4 @@ else
--- a/generate-version.sh
+++ b/generate-version.sh
@@ -10,4 +10,4 @@ else
+echo "#define BABELD_VERSION \"$version-ubus-mod\""
--- a/configuration.c
+++ b/configuration.c
+echo "#define BABELD_VERSION \"$version-ubus-mod\""
--- a/configuration.c
+++ b/configuration.c
-@@ -41,6 +41,7 @@ THE SOFTWARE.
+@@ -41,6 +41,8 @@ THE SOFTWARE.
#include "kernel.h"
#include "configuration.h"
#include "kernel.h"
#include "configuration.h"
- #include "rule.h"
-+#include "ubus.h"
static struct filter *input_filters = NULL;
static struct filter *output_filters = NULL;
static struct filter *input_filters = NULL;
static struct filter *output_filters = NULL;
-@@ -850,7 +851,8 @@ parse_option(int c, gnc_t gnc, void *clo
+ static struct filter *redistribute_filters = NULL;
+@@ -849,7 +851,8 @@ parse_option(int c, gnc_t gnc, void *clo
strcmp(token, "daemonise") == 0 ||
strcmp(token, "skip-kernel-setup") == 0 ||
strcmp(token, "ipv6-subtrees") == 0 ||
strcmp(token, "daemonise") == 0 ||
strcmp(token, "skip-kernel-setup") == 0 ||
strcmp(token, "ipv6-subtrees") == 0 ||
int b;
c = getbool(c, &b, gnc, closure);
if(c < -1)
int b;
c = getbool(c, &b, gnc, closure);
if(c < -1)
-@@ -868,6 +870,8 @@ parse_option(int c, gnc_t gnc, void *clo
+@@ -867,6 +870,8 @@ parse_option(int c, gnc_t gnc, void *clo
has_ipv6_subtrees = b;
else if(strcmp(token, "reflect-kernel-metric") == 0)
reflect_kernel_metric = b;
has_ipv6_subtrees = b;
else if(strcmp(token, "reflect-kernel-metric") == 0)
reflect_kernel_metric = b;
int local_server_socket = -1;
struct local_socket local_sockets[MAX_LOCAL_SOCKETS];
int num_local_sockets = 0;
int local_server_socket = -1;
struct local_socket local_sockets[MAX_LOCAL_SOCKETS];
int num_local_sockets = 0;
-@@ -80,7 +82,7 @@ write_timeout(int fd, const void *buf, i
- }
- }
-
--static const char *
-+const char *
- local_kind(int kind)
- {
- switch(kind) {
@@ -191,6 +193,8 @@ local_notify_neighbour(struct neighbour
if(local_sockets[i].monitor)
local_notify_neighbour_1(&local_sockets[i], neigh, kind);
@@ -191,6 +193,8 @@ local_notify_neighbour(struct neighbour
if(local_sockets[i].monitor)
local_notify_neighbour_1(&local_sockets[i], neigh, kind);
---- a/local.h
-+++ b/local.h
-@@ -55,3 +55,4 @@ int local_read(struct local_socket *s);
- int local_header(struct local_socket *s);
- struct local_socket *local_socket_create(int fd);
- void local_socket_destroy(int i);
-+const char * local_kind(int kind);
+--- a/Makefile
++++ b/Makefile
+@@ -10,10 +10,10 @@ CFLAGS = $(CDEBUGFLAGS) $(DEFINES) $(EXT
+ LDLIBS = -lrt
+
+ SRCS = babeld.c net.c kernel.c util.c interface.c source.c neighbour.c \
+- route.c xroute.c message.c resend.c configuration.c local.c
++ route.c xroute.c message.c resend.c configuration.c local.c ubus.c
+
+ OBJS = babeld.o net.o kernel.o util.o interface.o source.o neighbour.o \
+- route.o xroute.o message.o resend.o configuration.o local.o
++ route.o xroute.o message.o resend.o configuration.o local.o ubus.o
+
+ babeld: $(OBJS)
+ $(CC) $(CFLAGS) $(LDFLAGS) -o babeld $(OBJS) $(LDLIBS)
#include "net.h"
#include "resend.h"
#include "route.h"
#include "net.h"
#include "resend.h"
#include "route.h"
#include "source.h"
#include "util.h"
#include "version.h"
#include "source.h"
#include "util.h"
#include "version.h"
- routes = route_stream(ROUTE_ALL);
+ routes = route_stream(0);
if (routes) {
while (1) {
struct babel_route *route = route_stream_next(routes);
if (routes) {
while (1) {
struct babel_route *route = route_stream_next(routes);