mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2026-07-27 07:57:27 +00:00
recipes-connectivity: Add tayga recipe
Recipe for TAYGA - an out-of-kernel stateless NAT64 implementation for Linux
Signed-off-by: Pawel Langowski <pawel.langowski@3mdeb.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
(cherry picked from commit 470b24bc04)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
This commit is contained in:
committed by
Armin Kuster
parent
ed85a95131
commit
f748a33d66
@@ -0,0 +1,18 @@
|
|||||||
|
|
||||||
|
This patch addresses the following clang failure: tayga-0.9.2/nat64.c:119:6:
|
||||||
|
error: call to undeclared function 'writev'; ISO C99 and later do not support
|
||||||
|
implicit function declarations [-Wimplicit-function-declaration]
|
||||||
|
|
||||||
|
Upstream-Status: Pending
|
||||||
|
Signed-off-by: Pawel Langowski <pawel.langowski@3mdeb.com>
|
||||||
|
|
||||||
|
--- tayga.h 2023-09-29 14:38:05.005837695 +0200
|
||||||
|
+++ tayga-2.h 2023-09-29 14:37:45.560837257 +0200
|
||||||
|
@@ -20,6 +20,7 @@
|
||||||
|
#include <sys/stat.h>
|
||||||
|
#include <sys/ioctl.h>
|
||||||
|
#include <sys/socket.h>
|
||||||
|
+#include <sys/uio.h>
|
||||||
|
#include <netinet/in.h>
|
||||||
|
#include <arpa/inet.h>
|
||||||
|
#include <unistd.h>
|
||||||
@@ -0,0 +1,103 @@
|
|||||||
|
#
|
||||||
|
# Sample configuration file for TAYGA 0.9.2
|
||||||
|
#
|
||||||
|
# Modify this to use your own addresses!!
|
||||||
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
# TUN device that TAYGA will use to exchange IPv4 and IPv6 packets with the
|
||||||
|
# kernel. You may use any name you like, but `nat64' is recommended.
|
||||||
|
#
|
||||||
|
# This device may be created before starting the tayga daemon by running
|
||||||
|
# `tayga --mktun`. This allows routing and firewall rules to be set up prior
|
||||||
|
# to commencement of packet translation.
|
||||||
|
#
|
||||||
|
# Mandatory.
|
||||||
|
#
|
||||||
|
tun-device nat64
|
||||||
|
|
||||||
|
#
|
||||||
|
# TAYGA's IPv4 address. This is NOT your router's IPv4 address! TAYGA
|
||||||
|
# requires its own address because it acts as an IPv4 and IPv6 router, and
|
||||||
|
# needs to be able to send ICMP messages. TAYGA will also respond to ICMP
|
||||||
|
# echo requests (ping) at this address.
|
||||||
|
#
|
||||||
|
# This address can safely be located inside the dynamic-pool prefix.
|
||||||
|
#
|
||||||
|
# Mandatory.
|
||||||
|
#
|
||||||
|
ipv4-addr 192.168.254.1
|
||||||
|
|
||||||
|
#
|
||||||
|
# TAYGA's IPv6 address. This is NOT your router's IPv6 address! TAYGA
|
||||||
|
# requires its own address because it acts as an IPv4 and IPv6 router, and
|
||||||
|
# needs to be able to send ICMP messages. TAYGA will also respond to ICMP
|
||||||
|
# echo requests (ping6) at this address.
|
||||||
|
#
|
||||||
|
# You can leave ipv6-addr unspecified and TAYGA will construct its IPv6
|
||||||
|
# address using ipv4-addr and the NAT64 prefix.
|
||||||
|
#
|
||||||
|
# Optional if the NAT64 prefix is specified, otherwise mandatory. It is also
|
||||||
|
# mandatory if the NAT64 prefix is 64:ff9b::/96 and ipv4-addr is a private
|
||||||
|
# (RFC1918) address.
|
||||||
|
#
|
||||||
|
#ipv6-addr 2001:db8:1::2
|
||||||
|
ipv6-addr fdaa:bb:1::1
|
||||||
|
|
||||||
|
#
|
||||||
|
# The NAT64 prefix. The IPv4 address space is mapped into the IPv6 address
|
||||||
|
# space by prepending this prefix to the IPv4 address. Using a /96 prefix is
|
||||||
|
# recommended in most situations, but all lengths specified in RFC 6052 are
|
||||||
|
# supported.
|
||||||
|
#
|
||||||
|
# This must be a prefix selected from your organization's IPv6 address space
|
||||||
|
# or the Well-Known Prefix 64:ff9b::/96. Note that using the Well-Known
|
||||||
|
# Prefix will prohibit IPv6 hosts from contacting IPv4 hosts that have private
|
||||||
|
# (RFC1918) addresses, per RFC 6052.
|
||||||
|
#
|
||||||
|
# The NAT64 prefix need not be specified if all required address mappings are
|
||||||
|
# listed in `map' directives. (See below.)
|
||||||
|
#
|
||||||
|
# Optional.
|
||||||
|
#
|
||||||
|
##prefix 2001:db8:1:ffff::/96
|
||||||
|
prefix 64:ff9b::/96
|
||||||
|
|
||||||
|
#
|
||||||
|
# Dynamic pool prefix. IPv6 hosts which send traffic through TAYGA (and do
|
||||||
|
# not correspond to a static map or an IPv4-translatable address in the NAT64
|
||||||
|
# prefix) will be assigned an IPv4 address from the dynamic pool. Dynamic
|
||||||
|
# maps are valid for 124 minutes after the last matching packet is seen.
|
||||||
|
#
|
||||||
|
# If no unassigned addresses remain in the dynamic pool (or no dynamic pool is
|
||||||
|
# configured), packets from unknown IPv6 hosts will be rejected with an ICMP
|
||||||
|
# unreachable error.
|
||||||
|
#
|
||||||
|
# Optional.
|
||||||
|
#
|
||||||
|
dynamic-pool 192.168.254.0/24
|
||||||
|
|
||||||
|
#
|
||||||
|
# Persistent data storage directory. The dynamic.map file, which saves the
|
||||||
|
# dynamic maps that are created from dynamic-pool, is stored in this
|
||||||
|
# directory. Omit if you do not need these maps to be persistent between
|
||||||
|
# instances of TAYGA.
|
||||||
|
#
|
||||||
|
# Optional.
|
||||||
|
#
|
||||||
|
data-dir /var/spool/tayga
|
||||||
|
|
||||||
|
#
|
||||||
|
# Establishes a single-host map. If an IPv6 host should be consistently
|
||||||
|
# reachable at a specific IPv4 address, the mapping can be specified in a
|
||||||
|
# `map' directive. (IPv6 hosts numbered with an IPv4-translatable address do
|
||||||
|
# not need map directives.)
|
||||||
|
#
|
||||||
|
# IPv4 addresses specified in the `map' directive can safely be located inside
|
||||||
|
# the dynamic-pool prefix.
|
||||||
|
#
|
||||||
|
# Optional.
|
||||||
|
#
|
||||||
|
#map 192.168.5.42 2001:db8:1:4444::1
|
||||||
|
#map 192.168.5.43 2001:db8:1:4444::2
|
||||||
|
#map 192.168.255.2 2001:db8:1:569::143
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
[Unit]
|
||||||
|
SourcePath=/usr/sbin/tayga
|
||||||
|
Description=LSB: userspace NAT64
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=forking
|
||||||
|
ExecStart=/usr/sbin/tayga -d --config /etc/tayga.conf
|
||||||
|
RemainAfterExit=yes
|
||||||
|
TimeoutStopSec=infinity
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
LICENSE = "GPL-2.0-only"
|
||||||
|
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
|
||||||
|
|
||||||
|
SRC_URI = " \
|
||||||
|
http://www.litech.org/tayga/tayga-${PV}.tar.bz2 \
|
||||||
|
file://tayga.conf \
|
||||||
|
file://tayga.service \
|
||||||
|
file://0001-include-sys-uio.patch;striplevel=0 \
|
||||||
|
"
|
||||||
|
SRC_URI[sha256sum] = "2b1f7927a9d2dcff9095aff3c271924b052ccfd2faca9588b277431a44f0009c"
|
||||||
|
|
||||||
|
SYSTEMD_PACKAGES = "${PN}"
|
||||||
|
SYSTEMD_SERVICE:${PN} = "tayga.service"
|
||||||
|
|
||||||
|
do_install:append() {
|
||||||
|
install -m 0644 ${WORKDIR}/tayga.conf ${D}${sysconfdir}/tayga.conf
|
||||||
|
install -d ${D}${systemd_unitdir}/system/
|
||||||
|
install -m 0644 ${WORKDIR}/tayga.service ${D}${systemd_unitdir}/system/
|
||||||
|
}
|
||||||
|
|
||||||
|
inherit autotools systemd
|
||||||
Reference in New Issue
Block a user