Add below patch to support DoIP/ISO 13400 timings busybox zcip 0001-zcip-add-support-for-DoIP-ISO-13400-timings.patch
DoIP requires fast IP assignment, faster than what RFC 3927 can guarantee, and so it defines its' own AutoIP timing parameters Add a compile-time option to use DoIP timing parameters instead of default RFC 3927 parameters. This option is useful for use of zcip in automotive use-cases. In pratice, it decreases AutoIP allocation time from ~10s to ~2s, at the expense of less resilience to collisions Signed-off-by: Akash Hadke <[email protected]> --- ...d-support-for-DoIP-ISO-13400-timings.patch | 188 ++++++++++++++++++ meta/recipes-core/busybox/busybox_1.35.0.bb | 1 + 2 files changed, 189 insertions(+) create mode 100644 meta/recipes-core/busybox/busybox/0001-zcip-add-support-for-DoIP-ISO-13400-timings.patch diff --git a/meta/recipes-core/busybox/busybox/0001-zcip-add-support-for-DoIP-ISO-13400-timings.patch b/meta/recipes-core/busybox/busybox/0001-zcip-add-support-for-DoIP-ISO-13400-timings.patch new file mode 100644 index 0000000000..960805af42 --- /dev/null +++ b/meta/recipes-core/busybox/busybox/0001-zcip-add-support-for-DoIP-ISO-13400-timings.patch @@ -0,0 +1,188 @@ +From 22b3a1a60ce2d42b82381cdc88a01fc98aaf9954 Mon Sep 17 00:00:00 2001 +From: Akash Hadke <[email protected]> +Date: Mon, 5 Sep 2022 14:27:02 +0200 +Subject: [PATCH] zcip: add support for DoIP/ISO 13400 timings + +DoIP requires fast IP assignment, faster than what RFC 3927 can +guarantee, and so it defines its' own AutoIP timing parameters + +Add a compile-time option to use DoIP timing parameters instead of +default RFC 3927 parameters. This option is useful for use of zcip in +automotive use-cases. In pratice, it decreases AutoIP allocation time +from ~10s to ~2s, at the expense of less resilience to collisions + +Upstream-Status: Submitted [http://lists.busybox.net/pipermail/busybox/2022-September/089858.html] + +Signed-off-by: Ricardo Leite <ricardo.leite at criticaltechworks.com> +Signed-off-by: Akash Hadke <[email protected]> +--- + configs/TEST_nommu_defconfig | 1 + + configs/TEST_noprintf_defconfig | 1 + + configs/TEST_rh9_defconfig | 1 + + configs/android2_defconfig | 1 + + configs/android_502_defconfig | 1 + + configs/android_defconfig | 1 + + configs/android_ndk_defconfig | 1 + + configs/cygwin_defconfig | 1 + + configs/freebsd_defconfig | 1 + + networking/zcip.c | 23 +++++++++++++++++++++++ + 10 files changed, 32 insertions(+) + +diff --git a/configs/TEST_nommu_defconfig b/configs/TEST_nommu_defconfig +index 415f5a802..3f8ca40d7 100644 +--- a/configs/TEST_nommu_defconfig ++++ b/configs/TEST_nommu_defconfig +@@ -769,6 +769,7 @@ CONFIG_FEATURE_WGET_STATUSBAR=y + CONFIG_FEATURE_WGET_AUTHENTICATION=y + CONFIG_FEATURE_WGET_LONG_OPTIONS=y + CONFIG_ZCIP=y ++# CONFIG_ZCIP_USE_ISO_13400_TIMINGS is not set + CONFIG_TCPSVD=y + CONFIG_TUNCTL=y + CONFIG_FEATURE_TUNCTL_UG=y +diff --git a/configs/TEST_noprintf_defconfig b/configs/TEST_noprintf_defconfig +index 9b378fd55..5cfd5b3d7 100644 +--- a/configs/TEST_noprintf_defconfig ++++ b/configs/TEST_noprintf_defconfig +@@ -781,6 +781,7 @@ CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS="" + # CONFIG_FEATURE_WGET_AUTHENTICATION is not set + # CONFIG_FEATURE_WGET_LONG_OPTIONS is not set + # CONFIG_ZCIP is not set ++# CONFIG_ZCIP_USE_ISO_13400_TIMINGS is not set + + # + # Print Utilities +diff --git a/configs/TEST_rh9_defconfig b/configs/TEST_rh9_defconfig +index 4ac62b9da..1fe074e79 100644 +--- a/configs/TEST_rh9_defconfig ++++ b/configs/TEST_rh9_defconfig +@@ -791,6 +791,7 @@ CONFIG_FEATURE_WGET_AUTHENTICATION=y + CONFIG_FEATURE_WGET_LONG_OPTIONS=y + CONFIG_FEATURE_WGET_TIMEOUT=y + CONFIG_ZCIP=y ++# CONFIG_ZCIP_USE_ISO_13400_TIMINGS is not set + + # + # Print Utilities +diff --git a/configs/android2_defconfig b/configs/android2_defconfig +index d4b8f1616..eceabbc20 100644 +--- a/configs/android2_defconfig ++++ b/configs/android2_defconfig +@@ -828,6 +828,7 @@ CONFIG_FEATURE_WGET_AUTHENTICATION=y + # CONFIG_FEATURE_WGET_LONG_OPTIONS is not set + CONFIG_FEATURE_WGET_TIMEOUT=y + # CONFIG_ZCIP is not set ++# CONFIG_ZCIP_USE_ISO_13400_TIMINGS is not set + + # + # Print Utilities +diff --git a/configs/android_502_defconfig b/configs/android_502_defconfig +index 104e70f23..0ed60ae61 100644 +--- a/configs/android_502_defconfig ++++ b/configs/android_502_defconfig +@@ -968,6 +968,7 @@ CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS="-R -n" + CONFIG_UDPSVD=y + CONFIG_VCONFIG=y + # CONFIG_ZCIP is not set ++# CONFIG_ZCIP_USE_ISO_13400_TIMINGS is not set + + # + # Print Utilities +diff --git a/configs/android_defconfig b/configs/android_defconfig +index 92a66048a..c1d38328b 100644 +--- a/configs/android_defconfig ++++ b/configs/android_defconfig +@@ -858,6 +858,7 @@ CONFIG_FEATURE_WGET_AUTHENTICATION=y + # CONFIG_FEATURE_WGET_LONG_OPTIONS is not set + CONFIG_FEATURE_WGET_TIMEOUT=y + # CONFIG_ZCIP is not set ++# CONFIG_ZCIP_USE_ISO_13400_TIMINGS is not set + + # + # Print Utilities +diff --git a/configs/android_ndk_defconfig b/configs/android_ndk_defconfig +index 425593454..384304d46 100644 +--- a/configs/android_ndk_defconfig ++++ b/configs/android_ndk_defconfig +@@ -884,6 +884,7 @@ CONFIG_FEATURE_WGET_AUTHENTICATION=y + # CONFIG_FEATURE_WGET_LONG_OPTIONS is not set + CONFIG_FEATURE_WGET_TIMEOUT=y + # CONFIG_ZCIP is not set ++# CONFIG_ZCIP_USE_ISO_13400_TIMINGS is not set + + # + # Print Utilities +diff --git a/configs/cygwin_defconfig b/configs/cygwin_defconfig +index c09bc9281..30c90d587 100644 +--- a/configs/cygwin_defconfig ++++ b/configs/cygwin_defconfig +@@ -831,6 +831,7 @@ CONFIG_FEATURE_WGET_AUTHENTICATION=y + CONFIG_FEATURE_WGET_LONG_OPTIONS=y + CONFIG_FEATURE_WGET_TIMEOUT=y + # CONFIG_ZCIP is not set ++# CONFIG_ZCIP_USE_ISO_13400_TIMINGS is not set + + # + # Print Utilities +diff --git a/configs/freebsd_defconfig b/configs/freebsd_defconfig +index 6cbd54895..c09197be3 100644 +--- a/configs/freebsd_defconfig ++++ b/configs/freebsd_defconfig +@@ -810,6 +810,7 @@ CONFIG_FEATURE_WGET_AUTHENTICATION=y + CONFIG_FEATURE_WGET_LONG_OPTIONS=y + CONFIG_FEATURE_WGET_TIMEOUT=y + # CONFIG_ZCIP is not set ++# CONFIG_ZCIP_USE_ISO_13400_TIMINGS is not set + + # + # Print Utilities +diff --git a/networking/zcip.c b/networking/zcip.c +index 311dfbe4c..03c904d8a 100644 +--- a/networking/zcip.c ++++ b/networking/zcip.c +@@ -24,6 +24,15 @@ + //config: + //config: See http://www.zeroconf.org for further details, and "zcip.script" + //config: in the busybox examples. ++//config: ++//config:config ZCIP_USE_ISO_13400_TIMINGS ++//config: bool "Use ISO 13400 (DoIP) timings" ++//config: default y ++//config: depends on ZCIP ++//config: help ++//config: Use timings from ISO 13400-2 (for DoIP) instead of RFC 3927, ++//config: which dramatically speeds up AutoIP allocation time at the cost ++//config: of less resilience to collisions. + + //applet:IF_ZCIP(APPLET(zcip, BB_DIR_SBIN, BB_SUID_DROP)) + +@@ -73,12 +82,26 @@ struct arp_packet { + enum { + /* 0-1 seconds before sending 1st probe */ + PROBE_WAIT = 1, ++ ++#if ENABLE_ZCIP_USE_ISO_13400_TIMINGS ++ /** ++ * DoIP-specific timings, see ISO 13400-2, Section 9.1.2.2, Table 15 ++ */ ++ /* 0-1 seconds between probes */ ++ PROBE_MIN = 0, ++ PROBE_MAX = 1, ++ PROBE_NUM = 1, /* total probes to send */ ++ ANNOUNCE_INTERVAL = 1, /* 1 seconds between announces */ ++ ANNOUNCE_NUM = 1, /* announces to send */ ++#else + /* 1-2 seconds between probes */ + PROBE_MIN = 1, + PROBE_MAX = 2, + PROBE_NUM = 3, /* total probes to send */ + ANNOUNCE_INTERVAL = 2, /* 2 seconds between announces */ + ANNOUNCE_NUM = 3, /* announces to send */ ++#endif ++ + /* if probe/announce sees a conflict, multiply RANDOM(NUM_CONFLICT) by... */ + CONFLICT_MULTIPLIER = 2, + /* if we monitor and see a conflict, how long is defend state? */ +-- +2.17.1 + diff --git a/meta/recipes-core/busybox/busybox_1.35.0.bb b/meta/recipes-core/busybox/busybox_1.35.0.bb index edf896485e..3b42fdb18d 100644 --- a/meta/recipes-core/busybox/busybox_1.35.0.bb +++ b/meta/recipes-core/busybox/busybox_1.35.0.bb @@ -50,6 +50,7 @@ SRC_URI = "https://busybox.net/downloads/busybox-${PV}.tar.bz2;name=tarball \ file://0001-libbb-sockaddr2str-ensure-only-printable-characters-.patch \ file://0002-nslookup-sanitize-all-printed-strings-with-printable.patch \ file://CVE-2022-30065.patch \ + file://0001-zcip-add-support-for-DoIP-ISO-13400-timings.patch \ " SRC_URI:append:libc-musl = " file://musl.cfg " -- 2.17.1
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#170352): https://lists.openembedded.org/g/openembedded-core/message/170352 Mute This Topic: https://lists.openembedded.org/mt/93500402/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
