diff --git a/build_patches/openwrt/0001-Disable-OpenWrt-config-migration-mechanisms.patch b/build_patches/openwrt/0001-Disable-OpenWrt-config-migration-mechanisms.patch index 7c5b37cc..f6e86e1a 100644 --- a/build_patches/openwrt/0001-Disable-OpenWrt-config-migration-mechanisms.patch +++ b/build_patches/openwrt/0001-Disable-OpenWrt-config-migration-mechanisms.patch @@ -6,18 +6,23 @@ This disables all OpenWrt config migration mechanisms except for files listed in /etc/sysupgrade.conf diff --git a/package/base-files/files/sbin/sysupgrade b/package/base-files/files/sbin/sysupgrade -index 6c518b780eddd973966537b50d8f7c82539bb1e1..49d4514b988e827098450d57da0ae50a37506d3a 100755 +index 7e0a00e13b8ee4be7163936fd01a7beff0ce5c99..97f50dc83088e29fba651741fff28c70f7585b3f 100755 --- a/package/base-files/files/sbin/sysupgrade +++ b/package/base-files/files/sbin/sysupgrade -@@ -134,9 +134,9 @@ list_changed_conffiles() { - add_conffiles() { - local file="$1" - ( find $(sed -ne '/^[[:space:]]*$/d; /^#/d; p' \ +@@ -135,14 +135,14 @@ list_static_conffiles() { + local filter=$1 + + find $(sed -ne '/^[[:space:]]*$/d; /^#/d; p' \ - /etc/sysupgrade.conf /lib/upgrade/keep.d/* 2>/dev/null) \ + /etc/sysupgrade.conf 2>/dev/null) \ - \( -type f -o -type l \) $find_filter 2>/dev/null; -- list_changed_conffiles ) | sort -u > "$file" -+ ) | sort -u > "$file" - return 0 + \( -type f -o -type l \) $filter 2>/dev/null } + add_conffiles() { + local file="$1" + +- ( list_static_conffiles "$find_filter"; list_changed_conffiles ) | ++ ( list_static_conffiles "$find_filter" ) | + sort -u > "$file" + return 0 + } diff --git a/build_patches/openwrt/0003-ntpd-host-as-string.patch b/build_patches/openwrt/0003-ntpd-host-as-string.patch index 4762277b..d245e908 100644 --- a/build_patches/openwrt/0003-ntpd-host-as-string.patch +++ b/build_patches/openwrt/0003-ntpd-host-as-string.patch @@ -3,7 +3,7 @@ Date: Sat, 8 Jul 2017 10:47:56 +0200 Subject: ntpd host as string diff --git a/package/utils/busybox/files/sysntpd b/package/utils/busybox/files/sysntpd -index 52866ba32acd26a490f9c9024fc3e43e0f757496..b6b28cd02527b89c0a4cc2f9adef52bb4c8427b0 100755 +index e4a070762f2e6be299db8a7af7a8383062b0cf57..9f7aff31c57803de1d61fdfaac751fc8c8d0d108 100755 --- a/package/utils/busybox/files/sysntpd +++ b/package/utils/busybox/files/sysntpd @@ -30,7 +30,7 @@ get_dhcp_ntp_servers() { diff --git a/build_patches/openwrt/0004-vxlan-remove-mandatory-peeraddr.patch b/build_patches/openwrt/0004-vxlan-remove-mandatory-peeraddr.patch deleted file mode 100644 index 0ae6e3b2..00000000 --- a/build_patches/openwrt/0004-vxlan-remove-mandatory-peeraddr.patch +++ /dev/null @@ -1,43 +0,0 @@ -From: Johannes Kimmel -Date: Mon, 20 Jul 2020 08:05:09 +0200 -Subject: vxlan: remove mandatory peeraddr - -vxlan can be configured without a peer address. This is used to prepare -an interface and add peers later. - -Fixes: FS#2743 - -Signed-off-by: Johannes Kimmel -Acked-by: Matthias Schiffer -(cherry picked from commit 5222aadbf353b7cc030c39aa816f33951b104552) - -diff --git a/package/network/config/vxlan/files/vxlan.sh b/package/network/config/vxlan/files/vxlan.sh -index 7b1c7039551b7781f5f7a8e73b964db698f3697b..bdcaa628c4416cc83258dd38a6fc0978ea55a3bb 100755 ---- a/package/network/config/vxlan/files/vxlan.sh -+++ b/package/network/config/vxlan/files/vxlan.sh -@@ -55,12 +55,6 @@ proto_vxlan_setup() { - local ipaddr peeraddr - json_get_vars ipaddr peeraddr tunlink - -- [ -z "$peeraddr" ] && { -- proto_notify_error "$cfg" "MISSING_ADDRESS" -- proto_block_restart "$cfg" -- exit -- } -- - ( proto_add_host_dependency "$cfg" '' "$tunlink" ) - - [ -z "$ipaddr" ] && { -@@ -85,12 +79,6 @@ proto_vxlan6_setup() { - local ip6addr peer6addr - json_get_vars ip6addr peer6addr tunlink - -- [ -z "$peer6addr" ] && { -- proto_notify_error "$cfg" "MISSING_ADDRESS" -- proto_block_restart "$cfg" -- exit -- } -- - ( proto_add_host_dependency "$cfg" '' "$tunlink" ) - - [ -z "$ip6addr" ] && { diff --git a/build_patches/openwrt/0005-vxlan-add-capability-for-multiple-fdb-entries.patch b/build_patches/openwrt/0005-vxlan-add-capability-for-multiple-fdb-entries.patch deleted file mode 100644 index 3e4567a8..00000000 --- a/build_patches/openwrt/0005-vxlan-add-capability-for-multiple-fdb-entries.patch +++ /dev/null @@ -1,159 +0,0 @@ -From: Johannes Kimmel -Date: Mon, 20 Jul 2020 08:05:10 +0200 -Subject: vxlan: add capability for multiple fdb entries - -Similar to wireguard, vxlan can configure multiple peers or add specific -entries to the fdb for a single mac address. - -While you can still use peeraddr/peer6addr option within the proto -vxlan/vxlan6 section to not break existing configurations, this patch -allows to add multiple sections that conigure fdb entries via the bridge -command. As such, the bridge command is now a dependency of the vxlan -package. (To be honest without the bridge command available, vxlan isn't -very much fun to use or debug at all) - -Field names are taken direclty from the bridge command. - -Example with all supported parameters, since this hasn't been documented so -far: - - config interface 'vx0' - option proto 'vxlan6' # use vxlan over ipv6 - - # main options - option ip6addr '2001:db8::1' # listen address - option tunlink 'wan6' # optional if listen address given - option peer6addr '2001:db8::2' # now optional - option port '8472' # this is the standard port under linux - option vid '42' # VXLAN Network Identifier to use - option mtu '1430' # vxlan6 has 70 bytes overhead - - # extra options - option rxcsum '0' # allow receiving packets without checksum - option txcsum '0' # send packets without checksum - option ttl '16' # specifies the TTL value for outgoing packets - option tos '0' # specifies the TOS value for outgoing packets - option macaddr '11:22:33:44:55:66' # optional, manually specify mac - # default is a random address - -Single peer with head-end replication. Corresponds to the following call -to bridge: - - $ bridge fdb append 00:00:00:00:00:00 dev vx0 dst 2001:db8::3 - - config vxlan_peer - option vxlan 'vx0' - option dst '2001:db8::3' # always required - -For multiple peers, this section can be repeated for each dst address. - -It's possible to specify a multicast address as destination. Useful when -multicast routing is available or within one lan segment: - - config vxlan_peer - option vxlan 'vx0' - option dst 'ff02::1337' # multicast group to join. - # all bum traffic will be send there - option via 'eth1' # for multicast, an outgoing interface needs - # to be specified - -All available peer options for completeness: - - config vxlan_peer - option vxlan 'vx0' # the interface to configure - option lladdr 'aa:bb:cc:dd:ee:ff' # specific mac, - option dst '2001:db8::4' # connected to this peer - option via 'eth0.1' # use this interface only - option port '4789' # use different port for this peer - option vni '23' # override vni for this peer - option src_vni '123' # see man 3 bridge - -Signed-off-by: Johannes Kimmel -(cherry picked from commit 65e9de3c333bae1ccef1dfb0cc008ad6f13958e4) - -diff --git a/package/network/config/vxlan/Makefile b/package/network/config/vxlan/Makefile -index 13fcf0c55d07d97f5dcc3cbfcf2478020e7107cc..7232f71b45e6f72f2c62a245ad44cb9ade144f52 100644 ---- a/package/network/config/vxlan/Makefile -+++ b/package/network/config/vxlan/Makefile -@@ -1,7 +1,7 @@ - include $(TOPDIR)/rules.mk - - PKG_NAME:=vxlan --PKG_RELEASE:=3 -+PKG_RELEASE:=4 - PKG_LICENSE:=GPL-2.0 - - include $(INCLUDE_DIR)/package.mk -diff --git a/package/network/config/vxlan/files/vxlan.sh b/package/network/config/vxlan/files/vxlan.sh -index bdcaa628c4416cc83258dd38a6fc0978ea55a3bb..d063c47d47d0f4e339b21e97f4e25f55a33c0497 100755 ---- a/package/network/config/vxlan/files/vxlan.sh -+++ b/package/network/config/vxlan/files/vxlan.sh -@@ -7,6 +7,50 @@ - init_proto "$@" - } - -+proto_vxlan_setup_peer() { -+ type bridge &> /dev/null || { -+ proto_notify_error "$cfg" "MISSING_BRIDGE_COMMAND" -+ exit -+ } -+ -+ local peer_config="$1" -+ -+ local vxlan -+ local lladdr -+ local dst -+ local src_vni -+ local vni -+ local port -+ local via -+ -+ config_get vxlan "${peer_config}" "vxlan" -+ config_get lladdr "${peer_config}" "lladdr" -+ config_get dst "${peer_config}" "dst" -+ config_get src_vni "${peer_config}" "src_vni" -+ config_get vni "${peer_config}" "vni" -+ config_get port "${peer_config}" "port" -+ config_get via "${peer_config}" "via" -+ -+ [ "$cfg" = "$vxlan" ] || { -+ # This peer section belongs to another device -+ return -+ } -+ -+ [ -n "${dst}" ] || { -+ proto_notify_error "$cfg" "MISSING_PEER_ADDRESS" -+ exit -+ } -+ -+ bridge fdb append \ -+ ${lladdr:-00:00:00:00:00:00} \ -+ dev ${cfg} \ -+ dst ${dst} \ -+ ${src_vni:+src_vni $src_vni} \ -+ ${vni:+vni $vni} \ -+ ${port:+port $port} \ -+ ${via:+via $via} -+} -+ - vxlan_generic_setup() { - local cfg="$1" - local mode="$2" -@@ -18,7 +62,6 @@ vxlan_generic_setup() { - local port vid ttl tos mtu macaddr zone rxcsum txcsum - json_get_vars port vid ttl tos mtu macaddr zone rxcsum txcsum - -- - proto_init_update "$link" 1 - - proto_add_tunnel -@@ -47,6 +90,9 @@ vxlan_generic_setup() { - proto_close_data - - proto_send_update "$cfg" -+ -+ config_load network -+ config_foreach proto_vxlan_setup_peer "vxlan_peer" - } - - proto_vxlan_setup() { diff --git a/build_patches/openwrt/0006-vxlan-add-extra-config-options.patch b/build_patches/openwrt/0006-vxlan-add-extra-config-options.patch deleted file mode 100644 index 24a90124..00000000 --- a/build_patches/openwrt/0006-vxlan-add-extra-config-options.patch +++ /dev/null @@ -1,90 +0,0 @@ -From: Hans Dedecker -Date: Mon, 14 Sep 2020 21:55:01 +0200 -Subject: vxlan: add extra config options - -Add config options: - srcportmin/srcportmax : range of port numbers to use as UDP source ports - to communicate to the remote VXLAN tunnel endpoint - ageing : lifetime in seconds of FDB entries learnt by the kernel - maxaddress : maximum number of FDB entries - learning : enable/disable entering unknown source link layer addresses - and IP addresses into the VXLAN device FDB. - rsc : enable/disable route short circuit - proxy : enable/disable ARP proxy - l2miss : enable/disable netlink LLADDR miss notifications - l3miss : enable/disable netlink IP ADDR miss notifications - gbp : enable/disable the Group Policy extension - -Signed-off-by: Hans Dedecker -(cherry picked from commit 036221ce5a899eb99ef1c1623fc9460af00a69e7) - -diff --git a/package/network/config/vxlan/Makefile b/package/network/config/vxlan/Makefile -index 7232f71b45e6f72f2c62a245ad44cb9ade144f52..eb053bf1118dd300db549906bfd474a19f5e3752 100644 ---- a/package/network/config/vxlan/Makefile -+++ b/package/network/config/vxlan/Makefile -@@ -1,7 +1,7 @@ - include $(TOPDIR)/rules.mk - - PKG_NAME:=vxlan --PKG_RELEASE:=4 -+PKG_RELEASE:=5 - PKG_LICENSE:=GPL-2.0 - - include $(INCLUDE_DIR)/package.mk -diff --git a/package/network/config/vxlan/files/vxlan.sh b/package/network/config/vxlan/files/vxlan.sh -index d063c47d47d0f4e339b21e97f4e25f55a33c0497..8b3a0a53d47c675fcf89981061a250b5f526df3e 100755 ---- a/package/network/config/vxlan/files/vxlan.sh -+++ b/package/network/config/vxlan/files/vxlan.sh -@@ -59,8 +59,8 @@ vxlan_generic_setup() { - - local link="$cfg" - -- local port vid ttl tos mtu macaddr zone rxcsum txcsum -- json_get_vars port vid ttl tos mtu macaddr zone rxcsum txcsum -+ local port vid ttl tos mtu macaddr zone rxcsum txcsum srcportmin srcportmax ageing maxaddress learning proxy l2miss l3miss gbp -+ json_get_vars port vid ttl tos mtu macaddr zone rxcsum txcsum srcportmin srcportmax ageing maxaddress learning proxy l2miss l3miss gbp - - proto_init_update "$link" 1 - -@@ -78,9 +78,20 @@ vxlan_generic_setup() { - json_add_object 'data' - [ -n "$port" ] && json_add_int port "$port" - [ -n "$vid" ] && json_add_int id "$vid" -+ [ -n "$srcportmin" ] && json_add_int srcportmin "$srcportmin" -+ [ -n "$srcportmax" ] && json_add_int srcportmax "$srcportmax" -+ [ -n "$ageing" ] && json_add_int ageing "$ageing" -+ [ -n "$maxaddress" ] && json_add_int maxaddress "$maxaddress" - [ -n "$macaddr" ] && json_add_string macaddr "$macaddr" - [ -n "$rxcsum" ] && json_add_boolean rxcsum "$rxcsum" - [ -n "$txcsum" ] && json_add_boolean txcsum "$txcsum" -+ [ -n "$learning" ] && json_add_boolean learning "$learning" -+ [ -n "$rsc" ] && json_add_boolean rsc "$rsc" -+ [ -n "$proxy" ] && json_add_boolean proxy "$proxy" -+ [ -n "$l2miss" ] && json_add_boolean l2miss "$l2miss" -+ [ -n "$l3miss" ] && json_add_boolean l3miss "$l3miss" -+ [ -n "$gbp" ] && json_add_boolean gbp "$gbp" -+ - json_close_object - - proto_close_tunnel -@@ -163,9 +174,20 @@ vxlan_generic_init_config() { - proto_config_add_int "ttl" - proto_config_add_int "tos" - proto_config_add_int "mtu" -+ proto_config_add_int "srcportmin" -+ proto_config_add_int "srcportmax" -+ proto_config_add_int "ageing" -+ proto_config_add_int "maxaddress" - proto_config_add_boolean "rxcsum" - proto_config_add_boolean "txcsum" -+ proto_config_add_boolean "learning" -+ proto_config_add_boolean "rsc" -+ proto_config_add_boolean "proxy" -+ proto_config_add_boolean "l2miss" -+ proto_config_add_boolean "l3miss" -+ proto_config_add_boolean "gbp" - proto_config_add_string "macaddr" -+ - } - - proto_vxlan_init_config() { diff --git a/build_patches/openwrt/0007-vxlan-fix-rsc-config-option.patch b/build_patches/openwrt/0007-vxlan-fix-rsc-config-option.patch deleted file mode 100644 index d78d8dcf..00000000 --- a/build_patches/openwrt/0007-vxlan-fix-rsc-config-option.patch +++ /dev/null @@ -1,37 +0,0 @@ -From: Hans Dedecker -Date: Thu, 24 Sep 2020 22:04:39 +0200 -Subject: vxlan: fix rsc config option - -Fix route short circuit config option; fixes commit 036221ce5a899eb99ef1c1623fc9460af00a69e7 - -Signed-off-by: Hans Dedecker -(cherry picked from commit ad3044c424510668dd318c6a48c0b56bfba3c2da) - -diff --git a/package/network/config/vxlan/Makefile b/package/network/config/vxlan/Makefile -index eb053bf1118dd300db549906bfd474a19f5e3752..0b4d6713f9e1cfcad9f4c94272f8dc9192b7f3b4 100644 ---- a/package/network/config/vxlan/Makefile -+++ b/package/network/config/vxlan/Makefile -@@ -1,7 +1,7 @@ - include $(TOPDIR)/rules.mk - - PKG_NAME:=vxlan --PKG_RELEASE:=5 -+PKG_RELEASE:=6 - PKG_LICENSE:=GPL-2.0 - - include $(INCLUDE_DIR)/package.mk -diff --git a/package/network/config/vxlan/files/vxlan.sh b/package/network/config/vxlan/files/vxlan.sh -index 8b3a0a53d47c675fcf89981061a250b5f526df3e..5c1c484c47f7fb48f1cb705b200d589df77a60f6 100755 ---- a/package/network/config/vxlan/files/vxlan.sh -+++ b/package/network/config/vxlan/files/vxlan.sh -@@ -59,8 +59,8 @@ vxlan_generic_setup() { - - local link="$cfg" - -- local port vid ttl tos mtu macaddr zone rxcsum txcsum srcportmin srcportmax ageing maxaddress learning proxy l2miss l3miss gbp -- json_get_vars port vid ttl tos mtu macaddr zone rxcsum txcsum srcportmin srcportmax ageing maxaddress learning proxy l2miss l3miss gbp -+ local port vid ttl tos mtu macaddr zone rxcsum txcsum srcportmin srcportmax ageing maxaddress learning rsc proxy l2miss l3miss gbp -+ json_get_vars port vid ttl tos mtu macaddr zone rxcsum txcsum srcportmin srcportmax ageing maxaddress learning rsc proxy l2miss l3miss gbp - - proto_init_update "$link" 1 - diff --git a/build_patches/openwrt/0008-vxlan-allow-for-dynamic-source-ip-selection-FS-3426.patch b/build_patches/openwrt/0008-vxlan-allow-for-dynamic-source-ip-selection-FS-3426.patch deleted file mode 100644 index b539882c..00000000 --- a/build_patches/openwrt/0008-vxlan-allow-for-dynamic-source-ip-selection-FS-3426.patch +++ /dev/null @@ -1,101 +0,0 @@ -From: Johannes Kimmel -Date: Tue, 15 Dec 2020 00:31:52 +0100 -Subject: vxlan: allow for dynamic source ip selection (FS#3426) - -By setting 'auto', the zero address or the empty string as source -address (option ipaddr, option ip6addr), vxlan will choose one -dynamically. This helps in setups where a wan ip or prefix changes. - -This corresponse to setting up an vxlan tunnel with: - -proto vxlan6: - # ip link add vx0 type vxlan id ID local :: ... -proto vxlan: - # ip link add vx0 type vxlan id ID local 0.0.0.0 ... - -While it is possible to not specify a source ip at all, the kernel will -default to setting up a ipv4 tunnel. The kernel will take any hint from -source and peer ips to figure out, what tunnel type to use. To make sure -we setup an ipv6 tunnel for proto vxlan6, this workaround is needed. - -This will not change the behaviour of currently working configurations. -However this will allow former broken configurations, namely those not -specifying both a source address and tunnel interface, to setup a -tunnel interface. Previously those configurations weren't reporting an -error and were stueck in a setup loop like in Bug FS#3426. - -This change lifts the currently very strict behaviour and should fix the -following bug: - -Fixes: FS#3426 -Ref: https://bugs.openwrt.org/index.php?do=details&task_id=3426 - -Signed-off-by: Johannes Kimmel -(cherry picked from commit 3f5619f259de42af4404e0e36d11df4adcef9f5e) - -diff --git a/package/network/config/vxlan/Makefile b/package/network/config/vxlan/Makefile -index 0b4d6713f9e1cfcad9f4c94272f8dc9192b7f3b4..97972d6d85bddc56d1575088d3966ae6899f06da 100644 ---- a/package/network/config/vxlan/Makefile -+++ b/package/network/config/vxlan/Makefile -@@ -1,7 +1,7 @@ - include $(TOPDIR)/rules.mk - - PKG_NAME:=vxlan --PKG_RELEASE:=6 -+PKG_RELEASE:=7 - PKG_LICENSE:=GPL-2.0 - - include $(INCLUDE_DIR)/package.mk -diff --git a/package/network/config/vxlan/files/vxlan.sh b/package/network/config/vxlan/files/vxlan.sh -index 5c1c484c47f7fb48f1cb705b200d589df77a60f6..a087c4a3ce2ca42a6b8d43b2254d0ea7379c0936 100755 ---- a/package/network/config/vxlan/files/vxlan.sh -+++ b/package/network/config/vxlan/files/vxlan.sh -@@ -114,18 +114,11 @@ proto_vxlan_setup() { - - ( proto_add_host_dependency "$cfg" '' "$tunlink" ) - -- [ -z "$ipaddr" ] && { -- local wanif="$tunlink" -- if [ -z "$wanif" ] && ! network_find_wan wanif; then -- proto_notify_error "$cfg" "NO_WAN_LINK" -- exit -- fi -- -- if ! network_get_ipaddr ipaddr "$wanif"; then -- proto_notify_error "$cfg" "NO_WAN_LINK" -- exit -- fi -- } -+ case "$ipaddr" in -+ "auto"|"") -+ ipaddr="0.0.0.0" -+ ;; -+ esac - - vxlan_generic_setup "$cfg" 'vxlan' "$ipaddr" "$peeraddr" - } -@@ -138,18 +131,12 @@ proto_vxlan6_setup() { - - ( proto_add_host_dependency "$cfg" '' "$tunlink" ) - -- [ -z "$ip6addr" ] && { -- local wanif="$tunlink" -- if [ -z "$wanif" ] && ! network_find_wan6 wanif; then -- proto_notify_error "$cfg" "NO_WAN_LINK" -- exit -- fi -- -- if ! network_get_ipaddr6 ip6addr "$wanif"; then -- proto_notify_error "$cfg" "NO_WAN_LINK" -- exit -- fi -- } -+ case "$ip6addr" in -+ "auto"|"") -+ # ensure tunnel via ipv6 -+ ip6addr="::" -+ ;; -+ esac - - vxlan_generic_setup "$cfg" 'vxlan6' "$ip6addr" "$peer6addr" - } diff --git a/build_patches/openwrt/0009-netifd-backport-vxlan-patches.patch b/build_patches/openwrt/0009-netifd-backport-vxlan-patches.patch deleted file mode 100644 index 2de92b97..00000000 --- a/build_patches/openwrt/0009-netifd-backport-vxlan-patches.patch +++ /dev/null @@ -1,324 +0,0 @@ -From: Johannes Kimmel -Date: Fri, 1 Jan 2021 09:55:25 +0100 -Subject: netifd: backport vxlan patches - -Signed-off-by: Johannes Kimmel -[refresh patches] -Signed-off-by: Adrian Schmutzler - -diff --git a/package/network/config/netifd/patches/0001-netifd-vxlan-handle-srcport-range.patch b/package/network/config/netifd/patches/0001-netifd-vxlan-handle-srcport-range.patch -new file mode 100644 -index 0000000000000000000000000000000000000000..0b803aca8bebe33ad47f7e441bc9aa36d42b0aea ---- /dev/null -+++ b/package/network/config/netifd/patches/0001-netifd-vxlan-handle-srcport-range.patch -@@ -0,0 +1,89 @@ -+From a3c033e2afc289672e0ed4b8d8a835d509715af8 Mon Sep 17 00:00:00 2001 -+From: Johannes Kimmel -+Date: Fri, 4 Sep 2020 04:59:40 +0200 -+Subject: [PATCH 1/4] netifd: vxlan: handle srcport range -+ -+This adds adds the ability to set the source port range for vxlan -+interfaces. -+ -+By default vxlans will use a random port within the ephermal range as -+source ports for packets. This is done to aid scaleability within a -+datacenter. -+ -+But with these defaults it's impossible to punch through NATs or -+traverese most stateful firewalls easily. One solution is to fix the -+srcport to the same as dstport. -+ -+If only srcportmin is specified, then srcportmax is set in a way that -+outgoing packets will only use srcportmin. -+ -+If a range is to be specified, srcportmin and srcportmax have to be -+specified. srcportmax is exclusive. -+ -+If only srcportmax is specified, the value is ignored and defaults are -+used. -+ -+Signed-off-by: Johannes Kimmel -+--- -+ system-linux.c | 26 ++++++++++++++++++++++++++ -+ system.c | 2 ++ -+ system.h | 2 ++ -+ 3 files changed, 30 insertions(+) -+ -+--- a/system-linux.c -++++ b/system-linux.c -+@@ -3062,6 +3062,32 @@ static int system_add_vxlan(const char * -+ } -+ nla_put_u16(msg, IFLA_VXLAN_PORT, htons(port)); -+ -++ if ((cur = tb_data[VXLAN_DATA_ATTR_SRCPORTMIN])) { -++ struct ifla_vxlan_port_range srcports = {0,0}; -++ -++ uint32_t low = blobmsg_get_u32(cur); -++ if (low < 1 || low > 65535 - 1) { -++ ret = -EINVAL; -++ goto failure; -++ } -++ -++ srcports.low = htons((uint16_t) low); -++ srcports.high = htons((uint16_t) (low+1)); -++ -++ if ((cur = tb_data[VXLAN_DATA_ATTR_SRCPORTMAX])) { -++ uint32_t high = blobmsg_get_u32(cur); -++ if (high < 1 || high > 65535) { -++ ret = -EINVAL; -++ goto failure; -++ } -++ -++ if (high > low) -++ srcports.high = htons((uint16_t) high); -++ } -++ -++ nla_put(msg, IFLA_VXLAN_PORT_RANGE, sizeof(srcports), &srcports); -++ } -++ -+ if ((cur = tb_data[VXLAN_DATA_ATTR_RXCSUM])) { -+ bool rxcsum = blobmsg_get_bool(cur); -+ nla_put_u8(msg, IFLA_VXLAN_UDP_ZERO_CSUM6_RX, !rxcsum); -+--- a/system.c -++++ b/system.c -+@@ -38,6 +38,8 @@ static const struct blobmsg_policy vxlan -+ [VXLAN_DATA_ATTR_MACADDR] = { .name = "macaddr", .type = BLOBMSG_TYPE_STRING }, -+ [VXLAN_DATA_ATTR_RXCSUM] = { .name = "rxcsum", .type = BLOBMSG_TYPE_BOOL }, -+ [VXLAN_DATA_ATTR_TXCSUM] = { .name = "txcsum", .type = BLOBMSG_TYPE_BOOL }, -++ [VXLAN_DATA_ATTR_SRCPORTMIN] = { .name = "srcportmin", .type = BLOBMSG_TYPE_INT32 }, -++ [VXLAN_DATA_ATTR_SRCPORTMAX] = { .name = "srcportmax", .type = BLOBMSG_TYPE_INT32 }, -+ }; -+ -+ const struct uci_blob_param_list vxlan_data_attr_list = { -+--- a/system.h -++++ b/system.h -+@@ -43,6 +43,8 @@ enum vxlan_data { -+ VXLAN_DATA_ATTR_MACADDR, -+ VXLAN_DATA_ATTR_RXCSUM, -+ VXLAN_DATA_ATTR_TXCSUM, -++ VXLAN_DATA_ATTR_SRCPORTMIN, -++ VXLAN_DATA_ATTR_SRCPORTMAX, -+ __VXLAN_DATA_ATTR_MAX -+ }; -+ -diff --git a/package/network/config/netifd/patches/0002-netifd-vxlan-refactor-mapping-of-boolean-attrs.patch b/package/network/config/netifd/patches/0002-netifd-vxlan-refactor-mapping-of-boolean-attrs.patch -new file mode 100644 -index 0000000000000000000000000000000000000000..3c60665354a52159566826bbedf59964077205d5 ---- /dev/null -+++ b/package/network/config/netifd/patches/0002-netifd-vxlan-refactor-mapping-of-boolean-attrs.patch -@@ -0,0 +1,54 @@ -+From 226566b967dc4ef4d83ed7844b8ad746f4306f8d Mon Sep 17 00:00:00 2001 -+From: Johannes Kimmel -+Date: Fri, 4 Sep 2020 04:59:41 +0200 -+Subject: [PATCH 2/4] netifd: vxlan: refactor mapping of boolean attrs -+ -+Add a small function to handle boolean options and make use of it to handle: -+ - rxcsum -+ - txcsum -+ -+Signed-off-by: Johannes Kimmel -+--- -+ system-linux.c | 24 ++++++++++++++---------- -+ 1 file changed, 14 insertions(+), 10 deletions(-) -+ -+--- a/system-linux.c -++++ b/system-linux.c -+@@ -2951,6 +2951,17 @@ failure: -+ #endif -+ -+ #ifdef IFLA_VXLAN_MAX -++static void system_vxlan_map_bool_attr(struct nl_msg *msg, struct blob_attr **tb_data, int attrtype, int vxlandatatype, bool invert) { -++ struct blob_attr *cur; -++ if ((cur = tb_data[vxlandatatype])) { -++ bool val = blobmsg_get_bool(cur); -++ if (invert) { -++ val = !val; -++ } -++ nla_put_u8(msg, attrtype, val); -++ } -++} -++ -+ static int system_add_vxlan(const char *name, const unsigned int link, struct blob_attr **tb, bool v6) -+ { -+ struct blob_attr *tb_data[__VXLAN_DATA_ATTR_MAX]; -+@@ -3088,16 +3099,9 @@ static int system_add_vxlan(const char * -+ nla_put(msg, IFLA_VXLAN_PORT_RANGE, sizeof(srcports), &srcports); -+ } -+ -+- if ((cur = tb_data[VXLAN_DATA_ATTR_RXCSUM])) { -+- bool rxcsum = blobmsg_get_bool(cur); -+- nla_put_u8(msg, IFLA_VXLAN_UDP_ZERO_CSUM6_RX, !rxcsum); -+- } -+- -+- if ((cur = tb_data[VXLAN_DATA_ATTR_TXCSUM])) { -+- bool txcsum = blobmsg_get_bool(cur); -+- nla_put_u8(msg, IFLA_VXLAN_UDP_CSUM, txcsum); -+- nla_put_u8(msg, IFLA_VXLAN_UDP_ZERO_CSUM6_TX, !txcsum); -+- } -++ system_vxlan_map_bool_attr(msg, tb_data, IFLA_VXLAN_UDP_CSUM, VXLAN_DATA_ATTR_TXCSUM, false); -++ system_vxlan_map_bool_attr(msg, tb_data, IFLA_VXLAN_UDP_ZERO_CSUM6_RX, VXLAN_DATA_ATTR_RXCSUM, true); -++ system_vxlan_map_bool_attr(msg, tb_data, IFLA_VXLAN_UDP_ZERO_CSUM6_TX, VXLAN_DATA_ATTR_TXCSUM, true); -+ -+ if ((cur = tb[TUNNEL_ATTR_TOS])) { -+ char *str = blobmsg_get_string(cur); -diff --git a/package/network/config/netifd/patches/0003-netifd-vxlan-add-most-missing-boolean-options.patch b/package/network/config/netifd/patches/0003-netifd-vxlan-add-most-missing-boolean-options.patch -new file mode 100644 -index 0000000000000000000000000000000000000000..693e92b9f6b50f20d8fd220c196440d7bf894eb9 ---- /dev/null -+++ b/package/network/config/netifd/patches/0003-netifd-vxlan-add-most-missing-boolean-options.patch -@@ -0,0 +1,93 @@ -+From 11223f5550f7dd8faefb85441065b682be16e61f Mon Sep 17 00:00:00 2001 -+From: Johannes Kimmel -+Date: Fri, 4 Sep 2020 04:59:42 +0200 -+Subject: [PATCH 3/4] netifd: vxlan: add most missing boolean options -+ -+adds the folloing missing options: -+ - learning -+ - rsc -+ - proxy -+ - l2miss -+ - l3miss -+ - gbp -+ -+See ip-link(3) for their meaning. -+ -+still missing: -+ - external -+ - gpe -+ -+I'm not sure how to handle them at the moment. It's unclear to me what -+IFLA_VXLAN_* value corresponds to the 'external' option and according to -+the manpage, gpe depends on it. -+ -+Signed-off-by: Johannes Kimmel -+--- -+ system-linux.c | 16 +++++++++++++--- -+ system.c | 6 ++++++ -+ system.h | 6 ++++++ -+ 3 files changed, 25 insertions(+), 3 deletions(-) -+ -+--- a/system-linux.c -++++ b/system-linux.c -+@@ -2955,10 +2955,14 @@ static void system_vxlan_map_bool_attr(s -+ struct blob_attr *cur; -+ if ((cur = tb_data[vxlandatatype])) { -+ bool val = blobmsg_get_bool(cur); -+- if (invert) { -++ if (invert) -+ val = !val; -+- } -+- nla_put_u8(msg, attrtype, val); -++ -++ if ((attrtype == IFLA_VXLAN_GBP) && val) -++ nla_put_flag(msg, attrtype); -++ else -++ nla_put_u8(msg, attrtype, val); -++ -+ } -+ } -+ -+@@ -3102,6 +3106,12 @@ static int system_add_vxlan(const char * -+ system_vxlan_map_bool_attr(msg, tb_data, IFLA_VXLAN_UDP_CSUM, VXLAN_DATA_ATTR_TXCSUM, false); -+ system_vxlan_map_bool_attr(msg, tb_data, IFLA_VXLAN_UDP_ZERO_CSUM6_RX, VXLAN_DATA_ATTR_RXCSUM, true); -+ system_vxlan_map_bool_attr(msg, tb_data, IFLA_VXLAN_UDP_ZERO_CSUM6_TX, VXLAN_DATA_ATTR_TXCSUM, true); -++ system_vxlan_map_bool_attr(msg, tb_data, IFLA_VXLAN_LEARNING, VXLAN_DATA_ATTR_LEARNING, false); -++ system_vxlan_map_bool_attr(msg, tb_data, IFLA_VXLAN_RSC , VXLAN_DATA_ATTR_RSC, false); -++ system_vxlan_map_bool_attr(msg, tb_data, IFLA_VXLAN_PROXY , VXLAN_DATA_ATTR_PROXY, false); -++ system_vxlan_map_bool_attr(msg, tb_data, IFLA_VXLAN_L2MISS , VXLAN_DATA_ATTR_L2MISS, false); -++ system_vxlan_map_bool_attr(msg, tb_data, IFLA_VXLAN_L3MISS , VXLAN_DATA_ATTR_L3MISS, false); -++ system_vxlan_map_bool_attr(msg, tb_data, IFLA_VXLAN_GBP , VXLAN_DATA_ATTR_GBP, false); -+ -+ if ((cur = tb[TUNNEL_ATTR_TOS])) { -+ char *str = blobmsg_get_string(cur); -+--- a/system.c -++++ b/system.c -+@@ -40,6 +40,12 @@ static const struct blobmsg_policy vxlan -+ [VXLAN_DATA_ATTR_TXCSUM] = { .name = "txcsum", .type = BLOBMSG_TYPE_BOOL }, -+ [VXLAN_DATA_ATTR_SRCPORTMIN] = { .name = "srcportmin", .type = BLOBMSG_TYPE_INT32 }, -+ [VXLAN_DATA_ATTR_SRCPORTMAX] = { .name = "srcportmax", .type = BLOBMSG_TYPE_INT32 }, -++ [VXLAN_DATA_ATTR_LEARNING] = { .name = "learning", .type = BLOBMSG_TYPE_BOOL }, -++ [VXLAN_DATA_ATTR_RSC] = { .name = "rsc", .type = BLOBMSG_TYPE_BOOL }, -++ [VXLAN_DATA_ATTR_PROXY] = { .name = "proxy", .type = BLOBMSG_TYPE_BOOL }, -++ [VXLAN_DATA_ATTR_L2MISS] = { .name = "l2miss", .type = BLOBMSG_TYPE_BOOL }, -++ [VXLAN_DATA_ATTR_L3MISS] = { .name = "l3miss", .type = BLOBMSG_TYPE_BOOL }, -++ [VXLAN_DATA_ATTR_GBP] = { .name = "gbp", .type = BLOBMSG_TYPE_BOOL }, -+ }; -+ -+ const struct uci_blob_param_list vxlan_data_attr_list = { -+--- a/system.h -++++ b/system.h -+@@ -45,6 +45,12 @@ enum vxlan_data { -+ VXLAN_DATA_ATTR_TXCSUM, -+ VXLAN_DATA_ATTR_SRCPORTMIN, -+ VXLAN_DATA_ATTR_SRCPORTMAX, -++ VXLAN_DATA_ATTR_LEARNING, -++ VXLAN_DATA_ATTR_RSC, -++ VXLAN_DATA_ATTR_PROXY, -++ VXLAN_DATA_ATTR_L2MISS, -++ VXLAN_DATA_ATTR_L3MISS, -++ VXLAN_DATA_ATTR_GBP, -+ __VXLAN_DATA_ATTR_MAX -+ }; -+ -diff --git a/package/network/config/netifd/patches/0004-netifd-vxlan-add-aging-and-maxaddress-options.patch b/package/network/config/netifd/patches/0004-netifd-vxlan-add-aging-and-maxaddress-options.patch -new file mode 100644 -index 0000000000000000000000000000000000000000..8a2b4424fe282492ecf64522ecf3d1b3ba106bbb ---- /dev/null -+++ b/package/network/config/netifd/patches/0004-netifd-vxlan-add-aging-and-maxaddress-options.patch -@@ -0,0 +1,56 @@ -+From 55a7b6b7f2f773c06a79cb7359ffdab54ba32450 Mon Sep 17 00:00:00 2001 -+From: Johannes Kimmel -+Date: Fri, 4 Sep 2020 04:59:43 +0200 -+Subject: [PATCH 4/4] netifd: vxlan: add aging and maxaddress options -+ -+For both options the values can just be passed to the kernel. All -+unsigned values are accepted, thus no range checking required. -+ -+Signed-off-by: Johannes Kimmel -+--- -+ system-linux.c | 10 ++++++++++ -+ system.c | 2 ++ -+ system.h | 2 ++ -+ 3 files changed, 14 insertions(+) -+ -+--- a/system-linux.c -++++ b/system-linux.c -+@@ -3113,6 +3113,16 @@ static int system_add_vxlan(const char * -+ system_vxlan_map_bool_attr(msg, tb_data, IFLA_VXLAN_L3MISS , VXLAN_DATA_ATTR_L3MISS, false); -+ system_vxlan_map_bool_attr(msg, tb_data, IFLA_VXLAN_GBP , VXLAN_DATA_ATTR_GBP, false); -+ -++ if ((cur = tb_data[VXLAN_DATA_ATTR_AGEING])) { -++ uint32_t ageing = blobmsg_get_u32(cur); -++ nla_put_u32(msg, IFLA_VXLAN_AGEING, ageing); -++ } -++ -++ if ((cur = tb_data[VXLAN_DATA_ATTR_LIMIT])) { -++ uint32_t maxaddress = blobmsg_get_u32(cur); -++ nla_put_u32(msg, IFLA_VXLAN_LIMIT, maxaddress); -++ } -++ -+ if ((cur = tb[TUNNEL_ATTR_TOS])) { -+ char *str = blobmsg_get_string(cur); -+ unsigned tos = 1; -+--- a/system.c -++++ b/system.c -+@@ -46,6 +46,8 @@ static const struct blobmsg_policy vxlan -+ [VXLAN_DATA_ATTR_L2MISS] = { .name = "l2miss", .type = BLOBMSG_TYPE_BOOL }, -+ [VXLAN_DATA_ATTR_L3MISS] = { .name = "l3miss", .type = BLOBMSG_TYPE_BOOL }, -+ [VXLAN_DATA_ATTR_GBP] = { .name = "gbp", .type = BLOBMSG_TYPE_BOOL }, -++ [VXLAN_DATA_ATTR_AGEING] = { .name = "ageing", .type = BLOBMSG_TYPE_INT32 }, -++ [VXLAN_DATA_ATTR_LIMIT] = { .name = "maxaddress", .type = BLOBMSG_TYPE_INT32 }, -+ }; -+ -+ const struct uci_blob_param_list vxlan_data_attr_list = { -+--- a/system.h -++++ b/system.h -+@@ -51,6 +51,8 @@ enum vxlan_data { -+ VXLAN_DATA_ATTR_L2MISS, -+ VXLAN_DATA_ATTR_L3MISS, -+ VXLAN_DATA_ATTR_GBP, -++ VXLAN_DATA_ATTR_AGEING, -++ VXLAN_DATA_ATTR_LIMIT, -+ __VXLAN_DATA_ATTR_MAX -+ }; -+ diff --git a/buildscript b/buildscript index e0a4bfaa..47b29c13 100755 --- a/buildscript +++ b/buildscript @@ -4,9 +4,9 @@ builddir=./build # OpenWrt: package hashes correspond to core repo version -OPENWRTREV="v19.07.7" -PACKAGEREV="90af10d01579425369bd474051b6d3ddaf32a7e3" -ROUTINGREV="e26b4745209655976b7d124465b1dc53ade632f9" +OPENWRTREV="v21.02.0-rc1" +PACKAGEREV="4ceeb8fc90ed2c2e650ddddc855e7ed1df071c22" +ROUTINGREV="5b4d4c7fb6a97cac68c7d8b156fd0ab27bab4dcc" # Gluon packages: master from 2020-02-04 GLUONREV="12e41d0ff07ec54bbd67a31ab50d12ca04f2238c" diff --git a/feed_patches/openwrt/0030-micrond-show-stdout-and-stderr-in-log.patch b/feed_patches/openwrt/0030-micrond-show-stdout-and-stderr-in-log.patch deleted file mode 100644 index 3d7afe7e..00000000 --- a/feed_patches/openwrt/0030-micrond-show-stdout-and-stderr-in-log.patch +++ /dev/null @@ -1,44 +0,0 @@ -From: Adrian Schmutzler -Date: Wed, 22 Apr 2020 16:57:34 +0200 -Subject: micrond: show stdout and stderr in log - -So far, all output created by scripts run with micrond has been -discarded. Since there is no reason for that and it also does not -match the expected behavior, this enables both stdout and stderr -output for the service. - -If not desired, a user can still use >/dev/null or similar in his/her -micrond jobs to disable output easily and similar to what it would be -on other systems. - -Signed-off-by: Adrian Schmutzler ---- - utils/micrond/Makefile | 2 +- - utils/micrond/files/etc/init.d/micrond | 2 ++ - 2 files changed, 3 insertions(+), 1 deletion(-) - -diff --git a/utils/micrond/Makefile b/utils/micrond/Makefile -index ba063b674..c979025bb 100644 ---- a/utils/micrond/Makefile -+++ b/utils/micrond/Makefile -@@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk - - PKG_NAME:=micrond - PKG_VERSION:=1 --PKG_RELEASE:=1 -+PKG_RELEASE:=2 - PKG_LICENSE:=BSD-2-clause - - include $(INCLUDE_DIR)/package.mk -diff --git a/utils/micrond/files/etc/init.d/micrond b/utils/micrond/files/etc/init.d/micrond -index 1eef2ef52..35a3b9e70 100755 ---- a/utils/micrond/files/etc/init.d/micrond -+++ b/utils/micrond/files/etc/init.d/micrond -@@ -9,5 +9,7 @@ start_service() { - procd_open_instance - procd_set_param command /usr/sbin/micrond "$CRONDIR" - procd_set_param respawn -+ procd_set_param stdout 1 -+ procd_set_param stderr 1 - procd_close_instance - } diff --git a/feed_patches/routing/0011-babeld-Include-PKG_RELEASE-in-babeld-version.patch b/feed_patches/routing/0001-babeld-Include-PKG_RELEASE-in-babeld-version.patch similarity index 69% rename from feed_patches/routing/0011-babeld-Include-PKG_RELEASE-in-babeld-version.patch rename to feed_patches/routing/0001-babeld-Include-PKG_RELEASE-in-babeld-version.patch index b481d16a..e85bd91b 100644 --- a/feed_patches/routing/0011-babeld-Include-PKG_RELEASE-in-babeld-version.patch +++ b/feed_patches/routing/0001-babeld-Include-PKG_RELEASE-in-babeld-version.patch @@ -1,7 +1,6 @@ -From f114914490740247f2b6ca705f0f7055db9681ab Mon Sep 17 00:00:00 2001 From: Adrian Schmutzler Date: Mon, 30 Sep 2019 17:09:10 +0200 -Subject: [PATCH 1/2] babeld: Include PKG_RELEASE in babeld version +Subject: babeld: Include PKG_RELEASE in babeld version This will account for custom patches added, as otherwise version would stay the same. @@ -9,17 +8,14 @@ would stay the same. Signed-off-by: Adrian Schmutzler [fabian@blaese.de: revise version string] Signed-off-by: Fabian Bläse ---- - babeld/Makefile | 5 +++++ - 1 file changed, 5 insertions(+) diff --git a/babeld/Makefile b/babeld/Makefile -index 022d0b8..78fdf83 100644 +index 0b611286092464528135c15e100b3d6928f5a677..b0ed749e98714bf146b4e4be34d71484447b8ecb 100644 --- a/babeld/Makefile +++ b/babeld/Makefile -@@ -48,6 +48,11 @@ MAKE_FLAGS+= \ - CFLAGS="$(TARGET_CFLAGS)" \ +@@ -49,6 +49,11 @@ MAKE_FLAGS+= \ LDLIBS="" \ + LDLIBS+="-lubus -lubox" +define Build/Configure + echo "babeld-$(PKG_VERSION)+fff$(PKG_RELEASE)" > $(PKG_BUILD_DIR)/version @@ -29,6 +25,3 @@ index 022d0b8..78fdf83 100644 define Package/babeld/install $(INSTALL_DIR) $(1)/usr/sbin $(INSTALL_BIN) $(PKG_BUILD_DIR)/babeld $(1)/usr/sbin/ --- -2.25.1 - diff --git a/feed_patches/routing/0002-Add-batman-adv-patch-to-remove-gw-mode-switch-messag.patch b/feed_patches/routing/0002-Add-batman-adv-patch-to-remove-gw-mode-switch-messag.patch deleted file mode 100644 index c272b6c2..00000000 --- a/feed_patches/routing/0002-Add-batman-adv-patch-to-remove-gw-mode-switch-messag.patch +++ /dev/null @@ -1,46 +0,0 @@ -From f8c90adf89a45d9cfd5e189f28d0250e06710764 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Fabian=20Bl=C3=A4se?= -Date: Wed, 11 Jul 2018 13:39:06 +0200 -Subject: [PATCH] Add batman-adv patch to remove gw mode switch message - -Signed-off-by: Fabian Bläse ---- - .../0000-Remove-gw-mode-switch-message.patch | 26 +++++++++++++++++++ - 1 file changed, 26 insertions(+) - create mode 100644 batman-adv/patches/0000-Remove-gw-mode-switch-message.patch - -diff --git a/batman-adv/patches/0000-Remove-gw-mode-switch-message.patch b/batman-adv/patches/0000-Remove-gw-mode-switch-message.patch -new file mode 100644 -index 0000000..fb49d6c ---- /dev/null -+++ b/batman-adv/patches/0000-Remove-gw-mode-switch-message.patch -@@ -0,0 +1,26 @@ -+From 5a99aa98460605dcc649c43b85ae87e36d326cdf Mon Sep 17 00:00:00 2001 -+From: =?UTF-8?q?Fabian=20Bl=C3=A4se?= -+Date: Wed, 11 Jul 2018 13:37:08 +0200 -+Subject: [PATCH] Remove gw mode switch message -+ -+Signed-off-by: Fabian Bläse -+--- -+ net/batman-adv/sysfs.c | 3 --- -+ 1 file changed, 3 deletions(-) -+ -+diff --git a/net/batman-adv/sysfs.c b/net/batman-adv/sysfs.c -+index f2eef43b..dc529d50 100644 -+--- a/net/batman-adv/sysfs.c -++++ b/net/batman-adv/sysfs.c -+@@ -508,9 +508,6 @@ static ssize_t batadv_store_gw_mode(struct kobject *kobj, -+ break; -+ } -+ -+- batadv_info(net_dev, "Changing gw mode from: %s to: %s\n", -+- curr_gw_mode_str, buff); -+- -+ /* Invoking batadv_gw_reselect() is not enough to really de-select the -+ * current GW. It will only instruct the gateway client code to perform -+ * a re-election the next time that this is needed. -+-- -+2.18.0 --- -2.25.1 -