Manual Page Result
0
Command: shmif | Section: 4 | Source: NetBSD | File: shmif.4
SHMIF(4) FreeBSD Kernel Interfaces Manual SHMIF(4)
NAME
shmif - rump kernel shared memory network interface
SYNOPSIS
#include <rump/rump.h>
int
rump_pub_shmif_create(const char *path, int *ifnum);
DESCRIPTION
The shmif interface uses a memory mapped regular file as a virtual
Ethernet bus. All interfaces connected to the same bus see each others'
traffic.
Using a memory mapped regular file as a bus has two implications:
1. The bus identifier is not in flat global namespace.
2. Configuring and using the interface is possible without superuser
privileges on the host (normal host file access permissions for the
bus hold).
It is not possible to directly access the host networking facilities from
a rump kernel using purely shmif. However, traffic can be routed to
another rump kernel instance which provides both shmif and virt(4)
networking.
An shmif interface can be created in two ways:
o Programmatically by calling rump_pub_shmif_create(). The bus
pathname is passed in path. The number of the newly created
interface is available after a successful call by dereferencing
ifnum.
o Dynamically at runtime with ifconfig(8) or equivalent using the
create command. In this case the bus path must be configured with
ifconfig(8) linkstr before the interface address can be configured.
Destroying an shmif interface is possible only via ifconfig(8) destroy.
An shmif interface emulates TX/RX offload options in software. They are
specified by ifconfig(8). Alternatively, its if_capenable flag is
directly specified by environment variable RUMP_SHMIF_CAPENABLE, for
example:
0x7ff80 for all TX/RX offload
0x6aa80 for all TX offload
0x15500 for all RX offload
See /usr/include/net/if.h for more details.
SEE ALSO
rump(3), virt(4), ifconfig(8)
FreeBSD 14.1-RELEASE-p8 December 12, 2018 FreeBSD 14.1-RELEASE-p8