xfrm: support 'multicast' attribute on interfaces
authorPhilip Prindeville <philipp@redfish-solutions.com>
Mon, 7 Dec 2020 20:19:30 +0000 (13:19 -0700)
committerHans Dedecker <dedeckeh@gmail.com>
Fri, 11 Dec 2020 19:53:36 +0000 (20:53 +0100)
You shouldn't need the overhead of GRE just to add multicast
capability on a point-to-point interface (for instance, you might
want to run mDNS over IPsec transport connections, and Avahi
requires IFF_MULTICAST be set on interfaces, even point-to-point
ones).

Borrowed heavily from:

    b3c9321b9e gre: Support multicast configurable gre interfaces

Signed-off-by: Philip Prindeville <philipp@redfish-solutions.com>
package/network/config/xfrm/Makefile
package/network/config/xfrm/files/xfrm.sh

index 1b3b99adb008855a0d8304f1ee20ac46c2c934e0..bcee89f82ce624cc02fedabdb0e796c293cfe7f7 100644 (file)
@@ -2,7 +2,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=xfrm
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 PKG_LICENSE:=GPL-2.0
 
 include $(INCLUDE_DIR)/package.mk
index 1bd1958726deaa0e83a2d659c264ff537bc7a967..ca7c3380e6eaa9b4a83df3101da5cc4f4f47d107 100755 (executable)
@@ -11,8 +11,8 @@ proto_xfrm_setup() {
        local cfg="$1"
        local mode="xfrm"
 
-       local tunlink ifid mtu zone
-       json_get_vars tunlink ifid mtu zone
+       local tunlink ifid mtu zone multicast
+       json_get_vars tunlink ifid mtu zone multicast
 
        [ -z "$tunlink" ] && {
                proto_notify_error "$cfg" NO_TUNLINK
@@ -36,6 +36,8 @@ proto_xfrm_setup() {
 
        json_add_string link "$tunlink"
 
+       json_add_boolean multicast "${multicast:-1}"
+
        json_add_object 'data'
        [ -n "$ifid" ] && json_add_int ifid "$ifid"
        json_close_object
@@ -61,6 +63,7 @@ proto_xfrm_init_config() {
        proto_config_add_string "tunlink"
        proto_config_add_string "zone"
        proto_config_add_int "ifid"
+       proto_config_add_boolean "multicast"
 }