initial buildroot for linux 5.15
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
From 8ce1d117a31e35d97fb955b82edf13514267eaab Mon Sep 17 00:00:00 2001
|
||||
From: Joachim Wiberg <troglobit@gmail.com>
|
||||
Date: Tue, 28 Sep 2021 11:09:47 +0200
|
||||
Subject: [PATCH] Avoid trying to delete inactive VIFs
|
||||
Organization: Westermo Network Technologies AB
|
||||
|
||||
When probing interfaces at startup, there's a check for IFF_MULTICAST,
|
||||
if this flag is not set we try to delete its corresponding VIF/MIF.
|
||||
This is for hanlding .conf reload scenarios where an interface has had
|
||||
its MULTICAST flag dropped.
|
||||
|
||||
However, when starting up on Linux systems, the loopback interface has
|
||||
no MULTICAST flag set. This leads to the following bogus warning:
|
||||
|
||||
Failed deleting VIF for iface lo: Resource temporarily unavailable
|
||||
|
||||
This patch makes sure to check if we have a registered kernel VIF/MIF
|
||||
for an interface before attempting to delete it.
|
||||
|
||||
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
|
||||
---
|
||||
src/mroute.c | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
diff --git a/src/mroute.c b/src/mroute.c
|
||||
index 291e9c4..6a80a47 100644
|
||||
--- a/src/mroute.c
|
||||
+++ b/src/mroute.c
|
||||
@@ -298,6 +298,9 @@ static int mroute4_del_vif(struct iface *iface)
|
||||
if (iface->mrdisc)
|
||||
rc = mrdisc_deregister(iface->vif);
|
||||
|
||||
+ if (iface->vif == ALL_VIFS)
|
||||
+ return 0;
|
||||
+
|
||||
if (kern_vif_del(iface)) {
|
||||
switch (errno) {
|
||||
case ENOENT:
|
||||
@@ -910,6 +913,9 @@ static int mroute6_del_mif(struct iface *iface)
|
||||
{
|
||||
int rc = 0;
|
||||
|
||||
+ if (iface->mif == ALL_VIFS)
|
||||
+ return 0;
|
||||
+
|
||||
if (kern_mif_del(iface) && errno != ENOENT) {
|
||||
switch (errno) {
|
||||
case ENOENT:
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
config BR2_PACKAGE_SMCROUTE
|
||||
bool "smcroute"
|
||||
depends on BR2_USE_MMU # fork()
|
||||
help
|
||||
SMCRoute is a command line tool to manipulate the multicast
|
||||
routes of a UNIX kernel. It supports both IPv4 and IPv6
|
||||
multicast routing. SMCRoute can be used as an alternative to
|
||||
dynamic multicast routers like mrouted or pimd in setups
|
||||
where static multicast routes should be maintained and/or no
|
||||
proper IGMP or MLD signaling exists.
|
||||
|
||||
https://github.com/troglobit/smcroute
|
||||
Executable
+48
@@ -0,0 +1,48 @@
|
||||
#!/bin/sh
|
||||
|
||||
NAME="smcroute"
|
||||
DAEMON="smcrouted"
|
||||
PIDFILE="/var/run/$NAME.pid"
|
||||
|
||||
# shellcheck source=/dev/null
|
||||
[ -r "/etc/default/$NAME" ] && . "/etc/default/$NAME"
|
||||
|
||||
cmd()
|
||||
{
|
||||
start-stop-daemon -q -p "$PIDFILE" -x "/usr/sbin/$DAEMON" "$@"
|
||||
status=$?
|
||||
if [ $status -eq 0 ]; then
|
||||
echo "OK"
|
||||
else
|
||||
echo "FAIL"
|
||||
fi
|
||||
return $status
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
printf 'Starting %s: ' "$DAEMON"
|
||||
# shellcheck disable=SC2086 # we need the word splitting
|
||||
cmd -S -- $SMCROUTED_ARGS
|
||||
;;
|
||||
|
||||
stop)
|
||||
printf 'Stopping %s: ' "$DAEMON"
|
||||
cmd -K
|
||||
;;
|
||||
|
||||
restart)
|
||||
$0 stop
|
||||
sleep 1
|
||||
$0 start
|
||||
;;
|
||||
|
||||
reload)
|
||||
printf 'Reloading %s: ' "$DAEMON"
|
||||
cmd -K -s HUP
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Usage: $0 {start|stop|restart|reload}"
|
||||
exit 1
|
||||
esac
|
||||
@@ -0,0 +1,6 @@
|
||||
# Upstream .sha256 from GitHub
|
||||
sha256 4342b95c99e410cab75e9ee80f20480e0170d8b07b8e31553ba1bec3e377fc56 smcroute-2.5.3.tar.gz
|
||||
|
||||
# Locally generated
|
||||
sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 COPYING
|
||||
sha256 d260ea4b9d4b01317568850c3271e3923b546ea4ad57c899e79434f1cc8bcf0b 0001-Avoid-trying-to-delete-inactive-VIFs.patch
|
||||
@@ -0,0 +1,40 @@
|
||||
################################################################################
|
||||
#
|
||||
# smcroute
|
||||
#
|
||||
################################################################################
|
||||
|
||||
SMCROUTE_VERSION = 2.5.3
|
||||
SMCROUTE_SITE = https://github.com/troglobit/smcroute/releases/download/$(SMCROUTE_VERSION)
|
||||
SMCROUTE_LICENSE = GPL-2.0+
|
||||
SMCROUTE_LICENSE_FILES = COPYING
|
||||
SMCROUTE_CPE_ID_VENDOR = troglobit
|
||||
|
||||
SMCROUTE_CONF_OPTS = --enable-mrdisc
|
||||
|
||||
ifeq ($(BR2_PACKAGE_LIBCAP),y)
|
||||
SMCROUTE_DEPENDENCIES += libcap
|
||||
SMCROUTE_CONF_OPTS += --with-libcap
|
||||
else
|
||||
SMCROUTE_CONF_OPTS += --without-libcap
|
||||
endif
|
||||
|
||||
define SMCROUTE_INSTALL_INIT_SYSV
|
||||
$(INSTALL) -m 755 -D package/smcroute/S41smcroute \
|
||||
$(TARGET_DIR)/etc/init.d/S41smcroute
|
||||
endef
|
||||
|
||||
define SMCROUTE_PRUNE_COMPAT_SCRIPT
|
||||
rm -f $(TARGET_DIR)/usr/sbin/smcroute
|
||||
endef
|
||||
|
||||
SMCROUTE_POST_INSTALL_TARGET_HOOKS += SMCROUTE_PRUNE_COMPAT_SCRIPT
|
||||
|
||||
# We will asume that CONFIG_NET and CONFIG_INET are already
|
||||
# set in the kernel configuration provided by the user.
|
||||
define SMCROUTE_LINUX_CONFIG_FIXUPS
|
||||
$(call KCONFIG_ENABLE_OPT,CONFIG_IP_MULTICAST)
|
||||
$(call KCONFIG_ENABLE_OPT,CONFIG_IP_MROUTE)
|
||||
endef
|
||||
|
||||
$(eval $(autotools-package))
|
||||
Reference in New Issue
Block a user