babeld: Add pending patch for src_plen assignments
This introduces the pending upstream fix and a patch to change babeld version. This applies the naming scheme as for batman-adv: openwrt-PKG_VERSION-PKG_REVISION e.g. openwrt-1.9.1-2 Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> Reviewed-by: Fabian Bläse <fabian@blaese.de>
This commit is contained in:
parent
441e3a8e3c
commit
c4d6e231be
|
@ -0,0 +1,32 @@
|
|||
From a5e29f8520ba2dc65af47153980ec3401e18757b Mon Sep 17 00:00:00 2001
|
||||
From: Adrian Schmutzler <freifunk@adrianschmutzler.de>
|
||||
Date: Mon, 30 Sep 2019 17:09:10 +0200
|
||||
Subject: [PATCH 1/2] babeld: Include PKG_RELEASE in babeld version
|
||||
|
||||
This will account for custom patches added, as otherwise version
|
||||
would stay the same.
|
||||
|
||||
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
|
||||
---
|
||||
babeld/Makefile | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/babeld/Makefile b/babeld/Makefile
|
||||
index 022d0b8..cc266ce 100644
|
||||
--- a/babeld/Makefile
|
||||
+++ b/babeld/Makefile
|
||||
@@ -48,6 +48,11 @@ MAKE_FLAGS+= \
|
||||
CFLAGS="$(TARGET_CFLAGS)" \
|
||||
LDLIBS="" \
|
||||
|
||||
+define Build/Configure
|
||||
+ echo "openwrt-$(PKG_VERSION)-$(PKG_RELEASE)" > $(PKG_BUILD_DIR)/version
|
||||
+ $(Build/Configure/Default)
|
||||
+endef
|
||||
+
|
||||
define Package/babeld/install
|
||||
$(INSTALL_DIR) $(1)/usr/sbin
|
||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/babeld $(1)/usr/sbin/
|
||||
--
|
||||
2.20.1
|
||||
|
|
@ -0,0 +1,109 @@
|
|||
From 74a1488696ccc375a57236f15bcbd90e1ec76b77 Mon Sep 17 00:00:00 2001
|
||||
From: Adrian Schmutzler <freifunk@adrianschmutzler.de>
|
||||
Date: Mon, 30 Sep 2019 16:52:28 +0200
|
||||
Subject: [PATCH 2/2] babeld: Add src_plen patch
|
||||
|
||||
This patch is currently pending upstream.
|
||||
|
||||
Babeld version (babeld -V) won't indicate the change!
|
||||
|
||||
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
|
||||
---
|
||||
babeld/Makefile | 2 +-
|
||||
...nments-which-break-v4mapped-encoding.patch | 71 +++++++++++++++++++
|
||||
2 files changed, 72 insertions(+), 1 deletion(-)
|
||||
create mode 100644 babeld/patches/0001-Remove-src_plen-assignments-which-break-v4mapped-encoding.patch
|
||||
|
||||
diff --git a/babeld/Makefile b/babeld/Makefile
|
||||
index cc266ce..cc1598b 100644
|
||||
--- a/babeld/Makefile
|
||||
+++ b/babeld/Makefile
|
||||
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=babeld
|
||||
PKG_VERSION:=1.9.1
|
||||
-PKG_RELEASE:=1
|
||||
+PKG_RELEASE:=2
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://www.irif.fr/~jch/software/files/
|
||||
diff --git a/babeld/patches/0001-Remove-src_plen-assignments-which-break-v4mapped-encoding.patch b/babeld/patches/0001-Remove-src_plen-assignments-which-break-v4mapped-encoding.patch
|
||||
new file mode 100644
|
||||
index 0000000..089e35f
|
||||
--- /dev/null
|
||||
+++ b/babeld/patches/0001-Remove-src_plen-assignments-which-break-v4mapped-encoding.patch
|
||||
@@ -0,0 +1,71 @@
|
||||
+From 36121c1e67fb5a60a35fed0faa37297cd97c9ffc Mon Sep 17 00:00:00 2001
|
||||
+From: =?UTF-8?q?Fabian=20Bl=C3=A4se?= <fabian@blaese.de>
|
||||
+Date: Thu, 19 Sep 2019 01:16:46 +0200
|
||||
+Subject: [PATCH] Remove src_plen assignments which break v4mapped encoding
|
||||
+MIME-Version: 1.0
|
||||
+Content-Type: text/plain; charset=UTF-8
|
||||
+Content-Transfer-Encoding: 8bit
|
||||
+
|
||||
+These assignments were introduced in f8bce04, probably
|
||||
+to ensure that src_plen doesn't contain any leftovers from
|
||||
+earlier revisions when source specific wasn't done via sub-TLVs.
|
||||
+
|
||||
+This however breaks v4mapped encoding as a prefix length of 0
|
||||
+for IPv4 routes is represented as src_plen = 96. This offset is
|
||||
+already added outside of the affected functions and therefore
|
||||
+gets overwritten by this assignment.
|
||||
+
|
||||
+Both functions contain an additional check if the message contains
|
||||
+ipv4 addresses, but as this check is only executed if the message has
|
||||
+a source-specific sub-TLV, the offset isn't added for non source-specific
|
||||
+routes.
|
||||
+
|
||||
+Because the offset is already added outside of the subtlv parsing
|
||||
+functions, this additional check is also removed, as it would otherwise
|
||||
+break IPv4 source specifics by adding the IPv4 offset two times.
|
||||
+
|
||||
+Signed-off-by: Fabian Bläse <fabian@blaese.de>
|
||||
+---
|
||||
+ message.c | 8 --------
|
||||
+ 1 file changed, 8 deletions(-)
|
||||
+
|
||||
+diff --git a/message.c b/message.c
|
||||
+index 0f6ca19d..78f9aa93 100644
|
||||
+--- a/message.c
|
||||
++++ b/message.c
|
||||
+@@ -137,8 +137,6 @@ parse_update_subtlv(struct interface *ifp, int metric, int ae,
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+- *src_plen = 0;
|
||||
+-
|
||||
+ while(i < alen) {
|
||||
+ type = a[i];
|
||||
+ if(type == SUBTLV_PAD1) {
|
||||
+@@ -170,8 +168,6 @@ parse_update_subtlv(struct interface *ifp, int metric, int ae,
|
||||
+ len - 1, src_prefix);
|
||||
+ if(rc < 0)
|
||||
+ goto fail;
|
||||
+- if(ae == 1)
|
||||
+- (*src_plen) += 96;
|
||||
+ } else {
|
||||
+ debugf("Received unknown%s Update sub-TLV %d.\n",
|
||||
+ (type & 0x80) != 0 ? " mandatory" : "", type);
|
||||
+@@ -305,8 +301,6 @@ parse_request_subtlv(int ae, const unsigned char *a, int alen,
|
||||
+ {
|
||||
+ int type, len, i = 0;
|
||||
+
|
||||
+- *src_plen = 0;
|
||||
+-
|
||||
+ while(i < alen) {
|
||||
+ type = a[0];
|
||||
+ if(type == SUBTLV_PAD1) {
|
||||
+@@ -336,8 +330,6 @@ parse_request_subtlv(int ae, const unsigned char *a, int alen,
|
||||
+ len - 1, src_prefix);
|
||||
+ if(rc < 0)
|
||||
+ goto fail;
|
||||
+- if(ae == 1)
|
||||
+- (*src_plen) += 96;
|
||||
+ } else {
|
||||
+ debugf("Received unknown%s Route Request sub-TLV %d.\n",
|
||||
+ ((type & 0x80) != 0) ? " mandatory" : "", type);
|
||||
--
|
||||
2.20.1
|
||||
|
Loading…
Reference in New Issue