summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta-networking/recipes-connectivity/tayga/files/0001-include-sys-uio.patch18
-rw-r--r--meta-networking/recipes-connectivity/tayga/files/tayga.conf103
-rw-r--r--meta-networking/recipes-connectivity/tayga/files/tayga.service12
-rw-r--r--meta-networking/recipes-connectivity/tayga/tayga_0.9.2.bb21
4 files changed, 154 insertions, 0 deletions
diff --git a/meta-networking/recipes-connectivity/tayga/files/0001-include-sys-uio.patch b/meta-networking/recipes-connectivity/tayga/files/0001-include-sys-uio.patch
new file mode 100644
index 0000000000..0c6f1609af
--- /dev/null
+++ b/meta-networking/recipes-connectivity/tayga/files/0001-include-sys-uio.patch
@@ -0,0 +1,18 @@
1
2This patch addresses the following clang failure: tayga-0.9.2/nat64.c:119:6:
3error: call to undeclared function 'writev'; ISO C99 and later do not support
4implicit function declarations [-Wimplicit-function-declaration]
5
6Upstream-Status: Pending
7Signed-off-by: Pawel Langowski <pawel.langowski@3mdeb.com>
8
9--- tayga.h 2023-09-29 14:38:05.005837695 +0200
10+++ tayga-2.h 2023-09-29 14:37:45.560837257 +0200
11@@ -20,6 +20,7 @@
12 #include <sys/stat.h>
13 #include <sys/ioctl.h>
14 #include <sys/socket.h>
15+#include <sys/uio.h>
16 #include <netinet/in.h>
17 #include <arpa/inet.h>
18 #include <unistd.h>
diff --git a/meta-networking/recipes-connectivity/tayga/files/tayga.conf b/meta-networking/recipes-connectivity/tayga/files/tayga.conf
new file mode 100644
index 0000000000..c1b6163a45
--- /dev/null
+++ b/meta-networking/recipes-connectivity/tayga/files/tayga.conf
@@ -0,0 +1,103 @@
1#
2# Sample configuration file for TAYGA 0.9.2
3#
4# Modify this to use your own addresses!!
5#
6
7#
8# TUN device that TAYGA will use to exchange IPv4 and IPv6 packets with the
9# kernel. You may use any name you like, but `nat64' is recommended.
10#
11# This device may be created before starting the tayga daemon by running
12# `tayga --mktun`. This allows routing and firewall rules to be set up prior
13# to commencement of packet translation.
14#
15# Mandatory.
16#
17tun-device nat64
18
19#
20# TAYGA's IPv4 address. This is NOT your router's IPv4 address! TAYGA
21# requires its own address because it acts as an IPv4 and IPv6 router, and
22# needs to be able to send ICMP messages. TAYGA will also respond to ICMP
23# echo requests (ping) at this address.
24#
25# This address can safely be located inside the dynamic-pool prefix.
26#
27# Mandatory.
28#
29ipv4-addr 192.168.254.1
30
31#
32# TAYGA's IPv6 address. This is NOT your router's IPv6 address! TAYGA
33# requires its own address because it acts as an IPv4 and IPv6 router, and
34# needs to be able to send ICMP messages. TAYGA will also respond to ICMP
35# echo requests (ping6) at this address.
36#
37# You can leave ipv6-addr unspecified and TAYGA will construct its IPv6
38# address using ipv4-addr and the NAT64 prefix.
39#
40# Optional if the NAT64 prefix is specified, otherwise mandatory. It is also
41# mandatory if the NAT64 prefix is 64:ff9b::/96 and ipv4-addr is a private
42# (RFC1918) address.
43#
44#ipv6-addr 2001:db8:1::2
45ipv6-addr fdaa:bb:1::1
46
47#
48# The NAT64 prefix. The IPv4 address space is mapped into the IPv6 address
49# space by prepending this prefix to the IPv4 address. Using a /96 prefix is
50# recommended in most situations, but all lengths specified in RFC 6052 are
51# supported.
52#
53# This must be a prefix selected from your organization's IPv6 address space
54# or the Well-Known Prefix 64:ff9b::/96. Note that using the Well-Known
55# Prefix will prohibit IPv6 hosts from contacting IPv4 hosts that have private
56# (RFC1918) addresses, per RFC 6052.
57#
58# The NAT64 prefix need not be specified if all required address mappings are
59# listed in `map' directives. (See below.)
60#
61# Optional.
62#
63##prefix 2001:db8:1:ffff::/96
64prefix 64:ff9b::/96
65
66#
67# Dynamic pool prefix. IPv6 hosts which send traffic through TAYGA (and do
68# not correspond to a static map or an IPv4-translatable address in the NAT64
69# prefix) will be assigned an IPv4 address from the dynamic pool. Dynamic
70# maps are valid for 124 minutes after the last matching packet is seen.
71#
72# If no unassigned addresses remain in the dynamic pool (or no dynamic pool is
73# configured), packets from unknown IPv6 hosts will be rejected with an ICMP
74# unreachable error.
75#
76# Optional.
77#
78dynamic-pool 192.168.254.0/24
79
80#
81# Persistent data storage directory. The dynamic.map file, which saves the
82# dynamic maps that are created from dynamic-pool, is stored in this
83# directory. Omit if you do not need these maps to be persistent between
84# instances of TAYGA.
85#
86# Optional.
87#
88data-dir /var/spool/tayga
89
90#
91# Establishes a single-host map. If an IPv6 host should be consistently
92# reachable at a specific IPv4 address, the mapping can be specified in a
93# `map' directive. (IPv6 hosts numbered with an IPv4-translatable address do
94# not need map directives.)
95#
96# IPv4 addresses specified in the `map' directive can safely be located inside
97# the dynamic-pool prefix.
98#
99# Optional.
100#
101#map 192.168.5.42 2001:db8:1:4444::1
102#map 192.168.5.43 2001:db8:1:4444::2
103#map 192.168.255.2 2001:db8:1:569::143
diff --git a/meta-networking/recipes-connectivity/tayga/files/tayga.service b/meta-networking/recipes-connectivity/tayga/files/tayga.service
new file mode 100644
index 0000000000..0bffeb92a5
--- /dev/null
+++ b/meta-networking/recipes-connectivity/tayga/files/tayga.service
@@ -0,0 +1,12 @@
1[Unit]
2SourcePath=/usr/sbin/tayga
3Description=LSB: userspace NAT64
4
5[Service]
6Type=forking
7ExecStart=/usr/sbin/tayga -d --config /etc/tayga.conf
8RemainAfterExit=yes
9TimeoutStopSec=infinity
10
11[Install]
12WantedBy=multi-user.target
diff --git a/meta-networking/recipes-connectivity/tayga/tayga_0.9.2.bb b/meta-networking/recipes-connectivity/tayga/tayga_0.9.2.bb
new file mode 100644
index 0000000000..36d35e6dee
--- /dev/null
+++ b/meta-networking/recipes-connectivity/tayga/tayga_0.9.2.bb
@@ -0,0 +1,21 @@
1LICENSE = "GPL-2.0-only"
2LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
3
4SRC_URI = " \
5 http://www.litech.org/tayga/tayga-${PV}.tar.bz2 \
6 file://tayga.conf \
7 file://tayga.service \
8 file://0001-include-sys-uio.patch;striplevel=0 \
9 "
10SRC_URI[sha256sum] = "2b1f7927a9d2dcff9095aff3c271924b052ccfd2faca9588b277431a44f0009c"
11
12SYSTEMD_PACKAGES = "${PN}"
13SYSTEMD_SERVICE:${PN} = "tayga.service"
14
15do_install:append() {
16 install -m 0644 ${WORKDIR}/tayga.conf ${D}${sysconfdir}/tayga.conf
17 install -d ${D}${systemd_unitdir}/system/
18 install -m 0644 ${WORKDIR}/tayga.service ${D}${systemd_unitdir}/system/
19}
20
21inherit autotools systemd