diff mbox series

[1/2] package/smcroute: bump version to v2.5.3

Message ID 20210928094323.2566981-2-troglobit@gmail.com
State Accepted
Headers show
Series bump smcroute + misc. fixups | expand

Commit Message

Joachim Wiberg Sept. 28, 2021, 9:43 a.m. UTC
- Upstream has .sha256 checksum files, drop redundant .md5 checksum
 - Backport upstream patch to silence bogus error message for loopback
 - SMCRoute is useless w/o kernel support, use same fixups as mrouted

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
---
 ...Avoid-trying-to-delete-inactive-VIFs.patch | 51 +++++++++++++++++++
 package/smcroute/smcroute.hash                |  6 +--
 package/smcroute/smcroute.mk                  |  9 +++-
 3 files changed, 62 insertions(+), 4 deletions(-)
 create mode 100644 package/smcroute/0001-Avoid-trying-to-delete-inactive-VIFs.patch
diff mbox series

Patch

diff --git a/package/smcroute/0001-Avoid-trying-to-delete-inactive-VIFs.patch b/package/smcroute/0001-Avoid-trying-to-delete-inactive-VIFs.patch
new file mode 100644
index 0000000000..07f49dffcf
--- /dev/null
+++ b/package/smcroute/0001-Avoid-trying-to-delete-inactive-VIFs.patch
@@ -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
+
diff --git a/package/smcroute/smcroute.hash b/package/smcroute/smcroute.hash
index 62b72239cc..26d55adf88 100644
--- a/package/smcroute/smcroute.hash
+++ b/package/smcroute/smcroute.hash
@@ -1,6 +1,6 @@ 
-# Upstream .md5 and .sha256 from GitHub
-sha256	7eca88389cc08cbfe75f787e02ab32a390ef806555069a08abe8d7fa925ed094  smcroute-2.5.2.tar.gz
-md5	dc29e6bd3024a1ad3dd0f2d8c2aed16e  smcroute-2.5.2.tar.gz
+# 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
diff --git a/package/smcroute/smcroute.mk b/package/smcroute/smcroute.mk
index e8fc54bb42..96da0dc346 100644
--- a/package/smcroute/smcroute.mk
+++ b/package/smcroute/smcroute.mk
@@ -4,7 +4,7 @@ 
 #
 ################################################################################
 
-SMCROUTE_VERSION = 2.5.2
+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
@@ -30,4 +30,11 @@  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 MROUTED_LINUX_CONFIG_FIXUPS
+	$(call KCONFIG_ENABLE_OPT,CONFIG_IP_MULTICAST)
+	$(call KCONFIG_ENABLE_OPT,CONFIG_IP_MROUTE)
+endef
+
 $(eval $(autotools-package))