networking: introduce passt / pasta

Introducing the pasta package as an alternative for non-priviledged
container networking:

https://passt.top/passt/about/

   passt: Plug A Simple Socket Transport
   passt implements a translation layer between a Layer-2 network interface and native
   Layer-4 sockets (TCP, UDP, ICMP/ICMPv6 echo) on a host. It doesn't require any
   capabilities or privileges, and it can be used as a simple replacement for Slirp.

   pasta: Pack A Subtle Tap Abstraction
   pasta (same binary as passt, different command) offers equivalent functionality,
   for network namespaces: traffic is forwarded using a tap interface inside the
   namespace, without the need to create further interfaces on the host, hence not
   requiring any capabilities or privileges.

   It also implements a tap bypass path for local connections: packets with a local
   destination address are moved directly between Layer-4 sockets, avoiding Layer-2
   translations, using the splice(2) and recvmmsg(2)/sendmmsg(2) system calls for
   TCP and UDP, respectively.

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
This commit is contained in:
Bruce Ashfield 2024-06-04 02:59:22 +00:00
parent e8214becb9
commit 179ed82251

View File

@ -0,0 +1,34 @@
SUMMARY = "User-mode networking daemons for virtual machines and namespaces"
LICENSE = "GPL-2.0-or-later & BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSES/GPL-2.0-or-later.txt;md5=3d26203303a722dedc6bf909d95ba815 \
file://LICENSES/BSD-3-Clause.txt;md5=c6c623ff088c13278097b9f79637ca77"
DEPENDS += "coreutils-native"
EXTRA_OEMAKE += "\
'DESTDIR=${D}' \
'prefix=${prefix}' \
'bindir=${bindir}' \
'sharedir=${datadir}' \
'sysconfdir=${sysconfdir}' \
"
SRC_URI = "git://passt.top/passt;branch=master"
PV = "2024_05_23+git"
SRCREV = "765eb0bf1651d20ca319eeb8b41ff35f52f2a29c"
S = "${WORKDIR}/git"
do_configure () {
:
}
do_compile () {
oe_runmake
}
do_install () {
oe_runmake install
}