From 30818f0ab15d02dee199e20a5c83c986666aa3ef Mon Sep 17 00:00:00 2001
From: Fabian Blaese <fabian@blaese.de>
Date: Mon, 28 Jan 2019 18:08:50 +0100
Subject: [PATCH] packages/fff: Add fff-ra package
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This Package adds a router advertisement daemon and
appropriate Freifunk Franken specific configuration for it.

The ra_default option is set to '2' to force the default flag,
even if no default route for ipv6 is present.
This is necessary, because otherwise fc00::/7 targets would be
unreachable, since odhcpd is unable to send specific routes inside a RA.
This won't affect clients ability to reach hosts which have a dual stack
connection, typical network stacks prefer IPv4 over IPv6 ULA when no
public IPv6 address is available.

Signed-off-by: Fabian Bläse <fabian@blaese.de>
Reviewed-by: Christian Dresel <fff@chrisi01.de>
---
 src/packages/fff/fff-ra/Makefile              | 40 +++++++++++++++++++
 .../fff-ra/files/etc/uci-defaults/90-fff-ra   | 11 +++++
 2 files changed, 51 insertions(+)
 create mode 100644 src/packages/fff/fff-ra/Makefile
 create mode 100644 src/packages/fff/fff-ra/files/etc/uci-defaults/90-fff-ra

diff --git a/src/packages/fff/fff-ra/Makefile b/src/packages/fff/fff-ra/Makefile
new file mode 100644
index 00000000..64b02eaa
--- /dev/null
+++ b/src/packages/fff/fff-ra/Makefile
@@ -0,0 +1,40 @@
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=fff-ra
+PKG_VERSION:=1
+PKG_RELEASE:=1
+
+PKG_BUILD_DIR:=$(BUILD_DIR)/fff-ra
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/fff-ra
+    SECTION:=base
+    CATEGORY:=Freifunk
+    TITLE:=Freifunk-Franken Router Advertisements
+    URL:=https://www.freifunk-franken.de
+    DEPENDS:=+odhcpd
+endef
+
+define Package/fff-ra/description
+    This is the fff-ra for the Freifunk Franken Firmware
+    It is used to configure odhcpd to send Router Advertisements for use as gateway.
+endef
+
+define Build/Prepare
+    echo "all: " > $(PKG_BUILD_DIR)/Makefile
+endef
+
+define Build/Configure
+    # nothing
+endef
+
+define Build/Compile
+    # nothing
+endef
+
+define Package/fff-ra/install
+    $(CP) ./files/* $(1)/
+endef
+
+$(eval $(call BuildPackage,fff-ra))
diff --git a/src/packages/fff/fff-ra/files/etc/uci-defaults/90-fff-ra b/src/packages/fff/fff-ra/files/etc/uci-defaults/90-fff-ra
new file mode 100644
index 00000000..0a1c446e
--- /dev/null
+++ b/src/packages/fff/fff-ra/files/etc/uci-defaults/90-fff-ra
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+uci batch <<EOF
+	set dhcp.mesh=dhcp
+	set dhcp.mesh.interface='mesh'
+	set dhcp.mesh.ra='server'
+	set dhcp.mesh.ra_default='2'
+	set dhcp.mesh.ra_management='0'
+EOF
+
+exit 0
-- 
GitLab