xfrm: support 'multicast' attribute on interfaces

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>
This commit is contained in:
Philip Prindeville 2020-12-07 13:19:30 -07:00 committed by Hans Dedecker
parent 882ca13d92
commit 5d2b577a53
2 changed files with 6 additions and 3 deletions

View File

@ -2,7 +2,7 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=xfrm PKG_NAME:=xfrm
PKG_RELEASE:=2 PKG_RELEASE:=3
PKG_LICENSE:=GPL-2.0 PKG_LICENSE:=GPL-2.0
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk

View File

@ -11,8 +11,8 @@ proto_xfrm_setup() {
local cfg="$1" local cfg="$1"
local mode="xfrm" local mode="xfrm"
local tunlink ifid mtu zone local tunlink ifid mtu zone multicast
json_get_vars tunlink ifid mtu zone json_get_vars tunlink ifid mtu zone multicast
[ -z "$tunlink" ] && { [ -z "$tunlink" ] && {
proto_notify_error "$cfg" NO_TUNLINK proto_notify_error "$cfg" NO_TUNLINK
@ -36,6 +36,8 @@ proto_xfrm_setup() {
json_add_string link "$tunlink" json_add_string link "$tunlink"
json_add_boolean multicast "${multicast:-1}"
json_add_object 'data' json_add_object 'data'
[ -n "$ifid" ] && json_add_int ifid "$ifid" [ -n "$ifid" ] && json_add_int ifid "$ifid"
json_close_object json_close_object
@ -61,6 +63,7 @@ proto_xfrm_init_config() {
proto_config_add_string "tunlink" proto_config_add_string "tunlink"
proto_config_add_string "zone" proto_config_add_string "zone"
proto_config_add_int "ifid" proto_config_add_int "ifid"
proto_config_add_boolean "multicast"
} }