netmap
create netmap
create netmap name <ifname>|valeXXX:YYY [hw-addr <mac-addr>] [pipe] [master|slave]
netmap is a framework for very fast packet I/O from userspace.
VALE is an equally fast in-kernel software switch using the
netmap API. netmap includes netmap pipes, a shared
memory packet transport channel. Together, they provide a high speed
user-space interface that allows VPP to patch into a linux namespace, a
linux container, or a physical NIC without the use of DPDK. Netmap/VALE
generates the netmap.ko kernel module that needs to be loaded
before netmap interfaces can be created.
https://github.com/luigirizzo/netmap - Netmap/VALE repo.
https://github.com/vpp-dev/netmap - VPP development package for Netmap/VALE, which is a snapshot of the Netmap/VALE repo with minor changes to work with containers and modified kernel drivers to work with NICs.
Create a netmap interface that will attach to a linux interface.
The interface must already exist. Once created, a new netmap interface
will exist in VPP with the name netmap-<ifname>, where
<ifname> takes one of two forms:
ifname - Linux interface to bind too.
valeXXX:YYY -
- Where
valeXXXis an arbitrary name for a VALE interface that must start with
valeand is less than 16 characters.
- Where
Where
YYYis an existing linux namespace.
This command has the following optional parameters:
hw-addr <mac-addr> - Optional ethernet address, can be in either X:X:X:X:X:X unix or X.X.X cisco format.
pipe - Optional flag to indicate that a
netmap pipeinstance should be created.master | slave - Optional flag to indicate whether VPP should be the master or slave of the
netmap pipe. Only considered ifpipeis entered. Defaults toslaveif not entered.
Example of how to create a netmap interface tied to the linux
namespace vpp1:
create netmap name vale00:vpp1 hw-addr 02:FE:3F:34:15:9B pipe master
netmap-vale00:vpp1
Once the netmap interface is created, enable the interface using:
set interface state netmap-vale00:vpp1 up
Declaration: netmap_create_command extras/deprecated/netmap/cli.c line 152
Implementation: netmap_create_command_fn
delete netmap
delete netmap name <ifname>|valeXXX:YYY
Delete a netmap interface. Use the <ifname> to identify
the netmap interface to be deleted. In VPP, netmap interfaces are
named as netmap-<ifname>, where <ifname>
takes one of two forms:
ifname - Linux interface to bind too.
valeXXX:YYY -
- Where
valeXXXis an arbitrary name for a VALE interface that must start with
valeand is less than 16 characters.
- Where
Where
YYYis an existing linux namespace.
Example of how to delete a netmap interface named netmap-vale00:vpp1:
delete netmap name vale00:vpp1
Declaration: netmap_delete_command extras/deprecated/netmap/cli.c line 215
Implementation: netmap_delete_command_fn