]> git.ipfire.org Git - people/stevee/ipfire-2.x.git/commitdiff
dhcpcd: Allow freely setting MTU
authorMichael Tremer <michael.tremer@ipfire.org>
Tue, 22 Feb 2022 12:18:06 +0000 (12:18 +0000)
committerPeter Müller <peter.mueller@ipfire.org>
Wed, 23 Feb 2022 15:46:45 +0000 (15:46 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Reviewed-by: Peter Müller <peter.mueller@ipfire.org>
lfs/dhcpcd
src/patches/dhcpcd-9.4.0-Allow-free-selection-of-MTU-by-the-user.patch [new file with mode: 0644]

index 8291d076a74f89e93f476a93946cc122e511f596..03349ddc712be8a48c6e6ddfb2566042afd1a4dc 100644 (file)
@@ -70,6 +70,7 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcpcd-9.4.0-Allow-free-selection-of-MTU-by-the-user.patch
        cd $(DIR_APP) && ./configure \
                        --prefix="" \
                        --sysconfdir=/var/ipfire/dhcpc \
diff --git a/src/patches/dhcpcd-9.4.0-Allow-free-selection-of-MTU-by-the-user.patch b/src/patches/dhcpcd-9.4.0-Allow-free-selection-of-MTU-by-the-user.patch
new file mode 100644 (file)
index 0000000..69a35da
--- /dev/null
@@ -0,0 +1,44 @@
+From 1acff721a3874a74efc9921a1e07bd48bd7efab0 Mon Sep 17 00:00:00 2001
+From: Michael Tremer <michael.tremer@ipfire.org>
+Date: Tue, 22 Feb 2022 12:07:15 +0000
+Subject: [PATCH] Allow free selection of MTU by the user
+
+Various ISPs (or equipment?) seem to hand out an MTU of only 576 bytes.
+Hwoever, this does not seem to be intentional which is why we would like
+to manually overwrite this in the configuration.
+
+dhcpcd only allows setting a maximum MTU of 1472 bytes which does not
+seem to have any rationale (any more). Although Ethernet might limit any
+MTU to less, IPv6 and IPv4 support MTUs of up to 64KiB.
+
+This patch allows the user to configure the MTU freely with providing
+some sanity check.
+
+Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
+---
+ src/dhcp-common.h | 9 +++++----
+ 1 file changed, 5 insertions(+), 4 deletions(-)
+
+diff --git a/src/dhcp-common.h b/src/dhcp-common.h
+index a82fcd4c..d6620822 100644
+--- a/src/dhcp-common.h
++++ b/src/dhcp-common.h
+@@ -46,10 +46,11 @@
+ #define NS_MAXLABEL MAXLABEL
+ #endif
+-/* Max MTU - defines dhcp option length */
+-#define       IP_UDP_SIZE               28
+-#define       MTU_MAX                 1500 - IP_UDP_SIZE
+-#define       MTU_MIN                  576 + IP_UDP_SIZE
++/* Max/Min MTU */
++#define       MTU_MAX                 65536
++#define       MTU_MIN                   576
++
++#define       IP_UDP_SIZE                28
+ #define       OT_REQUEST              (1 << 0)
+ #define       OT_UINT8                (1 << 1)
+-- 
+2.30.2
+