[OpenWrt-Devel] [PATCH 2/3] netifd: add xfrm interface support scripts
Hans Dedecker
dedeckeh at gmail.com
Thu Jun 6 16:40:26 EDT 2019
Hi,
Comments inline
Hans
On Thu, Jun 6, 2019 at 3:52 PM André Valentin <avalentin at marcant.net> wrote:
>
> This package adds scripts for xfrm interfaces support.
> Example configuration via /etc/config/network:
>
> config interface 'xfrm0'
> option proto 'xfrm'
> option mtu '1300'
> option zone 'VPN'
> option tunlink 'wan'
> option ifid 30
>
> config interface 'xfrm0_static'
> option proto 'static'
> option ifname '@xfrm0'
> option ip6addr 'fe80::1/64'
> option ipaddr '10.0.0.1/30'
>
>
> ---
> package/network/config/xfrm/Makefile | 44 +++++++++++++++++++++++++
> package/network/config/xfrm/files/xfrm.sh | 54 +++++++++++++++++++++++++++++++
> 2 files changed, 98 insertions(+)
> create mode 100644 package/network/config/xfrm/Makefile
> create mode 100755 package/network/config/xfrm/files/xfrm.sh
>
> diff --git a/package/network/config/xfrm/Makefile b/package/network/config/xfrm/Makefile
> new file mode 100644
> index 0000000000..943a4ba326
> --- /dev/null
> +++ b/package/network/config/xfrm/Makefile
> @@ -0,0 +1,44 @@
> +#
> +# Copyright (C) 2014 OpenWrt.org
> +#
> +# This is free software, licensed under the GNU General Public License v2.
> +# See /LICENSE for more information.
> +#
Please leave the Copyright header out as I don't think you have any
contractual agreement with OpenWrt
> +
> +include $(TOPDIR)/rules.mk
> +
> +PKG_NAME:=xfrm
> +PKG_VERSION:=1
> +PKG_RELEASE:=3
Why is PKG_RELEASE set to 3 ?
> +PKG_LICENSE:=GPL-2.0
> +
> +include $(INCLUDE_DIR)/package.mk
> +
> +define Package/xfrm/Default
> + SECTION:=net
> + CATEGORY:=Network
> + MAINTAINER:=Andre Valentin <avalentin at marcant.net>
> +endef
> +
> +define Package/xfrm
> +$(call Package/xfrm/Default)
> + TITLE:=XFRM IPsec Tunnel Interface config support
> + DEPENDS:=+kmod-xfrm-interface
> +endef
> +
> +define Package/xfrm/description
> + XFRM IPsec Tunnel Interface config support (IPv4 and IPv6) in /etc/config/network.
> +endef
> +
> +define Build/Compile
> +endef
> +
> +define Build/Configure
> +endef
> +
> +define Package/xfrm/install
> + $(INSTALL_DIR) $(1)/lib/netifd/proto
> + $(INSTALL_BIN) ./files/xfrm.sh $(1)/lib/netifd/proto/xfrm.sh
> +endef
> +
> +$(eval $(call BuildPackage,xfrm))
> diff --git a/package/network/config/xfrm/files/xfrm.sh b/package/network/config/xfrm/files/xfrm.sh
> new file mode 100755
> index 0000000000..b93e090e90
> --- /dev/null
> +++ b/package/network/config/xfrm/files/xfrm.sh
> @@ -0,0 +1,54 @@
> +#!/bin/sh
> +
> +[ -n "$INCLUDE_ONLY" ] || {
> + . /lib/functions.sh
> + . /lib/functions/network.sh
> + . ../netifd-proto.sh
> + init_proto "$@"
> +}
> +
> +proto_xfrm_setup() {
> + local cfg="$1"
> + local mode="xfrm"
> +
> + local df tunlink ifid mtu zone
> + json_get_vars df tunlink ifid mtu zone
> +
> + proto_init_update "$cfg" 1
> +
> + proto_add_tunnel
> + json_add_string mode "$mode"
> + json_add_int mtu "${mtu:-1280}"
> + [ -n "$tunlink" ] && json_add_string link "$tunlink"
> +
> + json_add_object 'data'
> + [ -n "$ifid" ] && json_add_int ifid "$ifid"
> + json_close_object
> +
> + proto_close_tunnel
> +
> + proto_add_data
> + [ -n "$zone" ] && json_add_string zone "$zone"
> + proto_close_data
> +
> + proto_send_update "$cfg"
> +}
> +
> +proto_xfrm_teardown() {
> + local cfg="$1"
> +}
> +
> +proto_xfrm_init_config() {
> + no_device=1
> + available=1
> +
> + proto_config_add_int "mtu"
> + proto_config_add_string "tunlink"
> + proto_config_add_string "zone"
> + proto_config_add_int "ifid"
> +}
> +
> +
> +[ -n "$INCLUDE_ONLY" ] || {
> + [ -f /lib/modules/$(uname -r)/xfrm_interface.ko -o -d /sys/module/xfrm_interface ] && add_protocol xfrm
> +}
> --
> 2.11.0
>
>
> _______________________________________________
> openwrt-devel mailing list
> openwrt-devel at lists.openwrt.org
> https://lists.openwrt.org/mailman/listinfo/openwrt-devel
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel
More information about the openwrt-devel
mailing list