aboutsummaryrefslogtreecommitdiffstats
path: root/community/jool-tools
diff options
context:
space:
mode:
authorJakub Jirutka <jakub@jirutka.cz>2019-11-09 15:48:40 +0100
committerJakub Jirutka <jakub@jirutka.cz>2019-11-09 16:07:06 +0100
commitb1c0dca45d25efc6688e675249c9201f6cfd8e75 (patch)
tree5cacdbacf5fb9f199d7b2fbd9a2910d7f0d57e83 /community/jool-tools
parent4c11b21fb95fe5a73a4f231a025d4762bbe6e68d (diff)
downloadaports-b1c0dca45d25efc6688e675249c9201f6cfd8e75.tar.bz2
aports-b1c0dca45d25efc6688e675249c9201f6cfd8e75.tar.xz
community/jool-tools: add init scripts for jool and jool_siit
Diffstat (limited to 'community/jool-tools')
-rw-r--r--community/jool-tools/APKBUILD19
-rw-r--r--community/jool-tools/jool.conf37
-rw-r--r--community/jool-tools/jool.initd99
-rw-r--r--community/jool-tools/jool_siit.conf22
4 files changed, 173 insertions, 4 deletions
diff --git a/community/jool-tools/APKBUILD b/community/jool-tools/APKBUILD
index c598d0ce32..a0cf77545d 100644
--- a/community/jool-tools/APKBUILD
+++ b/community/jool-tools/APKBUILD
@@ -4,7 +4,7 @@ _projname=jool
pkgname=jool-tools
# Keep in sync with _ver in community/jool-modules-vanilla!
pkgver=4.0.6
-pkgrel=0
+pkgrel=1
pkgdesc="Userspace control tools for SIIT / NAT64 Jool"
url="https://www.jool.mx"
arch="all"
@@ -18,8 +18,11 @@ subpackages="
$pkgname-bash-completion:bashcomp:noarch
"
source="https://github.com/NICMx/Jool/releases/download/v$pkgver/$_projname-$pkgver.tar.gz
- joold.initd
+ jool.conf
+ jool_siit.conf
joold-socket.json
+ jool.initd
+ joold.initd
"
builddir="$srcdir/$_projname-$pkgver"
@@ -41,6 +44,11 @@ build() {
package() {
make install DESTDIR="$pkgdir"
+ install -D -m 644 "$srcdir"/jool.conf "$pkgdir"/etc/jool/jool.conf
+ install -D -m 644 "$srcdir"/jool_siit.conf "$pkgdir"/etc/jool/jool_siit.conf
+
+ install -D -m 755 "$srcdir"/jool.initd "$pkgdir"/etc/init.d/jool
+ ln -s jool "$pkgdir"/etc/init.d/jool_siit
}
joold() {
@@ -64,5 +72,8 @@ bashcomp() {
}
sha512sums="8648cc876d801b34c4bc9616da642727d1e49ed2937daa7fdca58c0fd80dbd1c432018af410c44c1d24224aba5289f726f43adc259cdf8193832d39a86d0f6a6 jool-4.0.6.tar.gz
-c53ac4e0bf44c80596244396f3a56965be1ef279806c47601f0ce1ce803dc21a6a8e5d020fb0f3abae1c9a106c7eef8e1bb2fe7a47d6c8a346351397ed0608ec joold.initd
-15758922ba83219f7edf34d93d825fcafb354b551a79f9b70e486faebcb154f55a52806aca6f7b9ec0d8277caa64a06a2525829be41c538cb3c678a78112b5e9 joold-socket.json"
+4ae4c20fde75a0fdaed1c7c46ab5078297846b0734d31c7053575ff549984617a5486727c98f442125c6abfe8b170cde23ae4c24a4d6ff14b2ce31490bd46633 jool.conf
+a48c84c49c24dd6639b86393fa7870b91fa700ba1e561e2440db1f4a94f3393171407a3cc683f4fc7a26a591578ec732dd3f708c1b4c45787a6e7ec038576357 jool_siit.conf
+15758922ba83219f7edf34d93d825fcafb354b551a79f9b70e486faebcb154f55a52806aca6f7b9ec0d8277caa64a06a2525829be41c538cb3c678a78112b5e9 joold-socket.json
+2eefae657e75d264838b435be38178cb3fe98f429f2367cf7cd08646c637f4a8ad3e226b4d7f7d460b28b81b8def9a5f5fd2617e2dd1c0c11889775e25951b21 jool.initd
+c53ac4e0bf44c80596244396f3a56965be1ef279806c47601f0ce1ce803dc21a6a8e5d020fb0f3abae1c9a106c7eef8e1bb2fe7a47d6c8a346351397ed0608ec joold.initd"
diff --git a/community/jool-tools/jool.conf b/community/jool-tools/jool.conf
new file mode 100644
index 0000000000..cedef7340a
--- /dev/null
+++ b/community/jool-tools/jool.conf
@@ -0,0 +1,37 @@
+{
+ "comment": "Sample configuration for the NAT64 Jool service.",
+
+ "instance": "default",
+ "framework": "netfilter",
+
+ "global": {
+ "comment": "Sample pool6 prefix",
+ "pool6": "64:ff9b::/96"
+ },
+
+ "comment": "Sample pool4 table",
+ "pool4": [
+ {
+ "protocol": "TCP",
+ "prefix": "192.0.2.1",
+ "port range": "61001-65535"
+ }, {
+ "protocol": "UDP",
+ "prefix": "192.0.2.1",
+ "port range": "61001-65535"
+ }
+ ],
+
+ "comment": "Sample BIB table",
+ "bib": [
+ {
+ "protocol": "TCP",
+ "ipv6 address": "2001:db8::1#80",
+ "ipv4 address": "192.0.2.1#61080"
+ }, {
+ "protocol": "UDP",
+ "ipv6 address": "2001:db8::2#10000",
+ "ipv4 address": "192.0.2.1#65535"
+ }
+ ]
+}
diff --git a/community/jool-tools/jool.initd b/community/jool-tools/jool.initd
new file mode 100644
index 0000000000..e666c45729
--- /dev/null
+++ b/community/jool-tools/jool.initd
@@ -0,0 +1,99 @@
+#!/sbin/openrc-run
+
+case "${RC_SVCNAME#*[.-]}" in
+ jool[_-]siit)
+ name="SIIT"
+ description="Stateless IP/ICMP Translator"
+ command="/usr/bin/jool_siit"
+ kmod_name="jool_siit"
+ ;;
+ *)
+ name="NAT64"
+ description="Stateful NAT64"
+ kmod_name="jool"
+ command="/usr/bin/jool"
+ ;;
+esac
+
+: ${cfgfile:="/etc/jool/$RC_SVCNAME.conf"}
+
+required_files="$cfgfile"
+
+depends() {
+ need net
+}
+
+start_pre() {
+ resolve_instance_name
+
+ # Don't load module if it's already loaded.
+ if modprobe -qn "$kmod_name" && ! modprobe -qn --first-time "$kmod_name"; then
+ return 0
+ fi
+
+ ebegin "Loading $kmod_name kernel module"
+ modprobe -q $kmod_name
+ eend $?
+}
+
+start() {
+ ebegin "Loading $name instance $instance_name"
+ $command -i "$instance_name" file handle "$cfgfile"
+ eend $?
+}
+
+stop_pre() {
+ resolve_instance_name
+}
+
+stop() {
+ case $(instance_status) in
+ Running)
+ ebegin "Unloading $name instance $instance_name"
+ $command instance remove "$instance_name"
+ eend $?
+ ;;
+ *)
+ ewarn "WARNING: $name instance $instance_name is not running"
+ return 0
+ ;;
+ esac
+}
+
+status() {
+ resolve_instance_name
+
+ case "$(instance_status)" in
+ Running)
+ einfo "status: running"
+ return 0
+ ;;
+ Dead)
+ if service_started || service_crashed; then
+ eerror "status: crashed"
+ return 32
+ else
+ einfo "status: stopped"
+ return 3
+ fi
+ ;;
+ *)
+ eerror "status: error"
+ $command -i "$instance_name" instance status >&2
+ return 32
+ ;;
+ esac
+}
+
+instance_status() {
+ $command -i "$instance_name" instance status 2>/dev/null | head -1
+}
+
+resolve_instance_name() {
+ instance_name=$(sed -En 's/.*"instance":\s*"([^"]+)".*/\1/p' "$cfgfile")
+
+ if [ -z "$instance_name" ] && [ "${RC_SVCNAME#*[.-]}" != "$RC_SVCNAME" ]; then
+ instance_name="${RC_SVCNAME#*[.-]}"
+ fi
+ : ${instance_name:="default"}
+}
diff --git a/community/jool-tools/jool_siit.conf b/community/jool-tools/jool_siit.conf
new file mode 100644
index 0000000000..627827781f
--- /dev/null
+++ b/community/jool-tools/jool_siit.conf
@@ -0,0 +1,22 @@
+{
+ "comment": "Sample configuration for the SIIT Jool service.",
+
+ "instance": "default",
+ "framework": "netfilter",
+
+ "global": {
+ "comment": "Sample pool6 prefix",
+ "pool6": "2001:db8:aaaa::/96"
+ },
+
+ "comment": "Sample EAM table",
+ "eamt": [
+ {
+ "ipv6 prefix": "2001:db8:bbbb::",
+ "ipv4 prefix": "192.0.2.0"
+ }, {
+ "ipv6 prefix": "2001:db8:cccc::/120",
+ "ipv4 prefix": "203.0.113.0/24"
+ }
+ ]
+}