[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