1. Overview¶
This section describes an overview of SPP’s extensions, spp_vf
and
spp_mirror
.
SPP provides a connectivity between DPDK processes as a virtual patch panel.
However, It is not sufficient considering more practical usecases.
For instance, you might need a classification for incoming packets if you have
multiple processes as destinations. You might also need to duplicate packets
for monitoring or inspection.
spp_vf
is a SPP secondary process for forwarding packets to multiple
destination ports with a MAC address classification. It is also supported to
merge from several source ports to aggregate packets to a destination port.
spp_mirror
is an another kind of secondary process to duplicate incoming
packets. This feature is intended to use as a
TaaS
feature for port mirroring introduced in OpenStack.
1.1. spp_vf¶
spp_vf
provides a SR-IOV like network feature.
spp_vf
forwards incoming packets to several destination VMs by referring
MAC address like as a Virtual Function (VF) of SR-IOV.
spp_vf
is a multi-process and multi-thread application.
Each of spp_vf
has one manager thread and worker threads called as
components.
The manager thread provides a function for parsing a command and creating the
components.
The component threads have its own multiple components, ports and classifier
tables including Virtual MAC address.
This is an example of network configuration, in which one
classifier_mac
,
one merger and four forwarders are running in spp_vf
process
for two destinations of vhost interface.
Incoming packets from rx on host1 are sent to each of vhosts of VM
by looking up destination MAC address in the packet.
1.2. spp_mirror¶
spp_mirror
is an implementation of
TaaS
as a SPP secondary process for port mirroring.
TaaS stands for TAP as a Service.
spp_mirror
consists of one manager thread and worker threads as similar to
spp_vf
, but just one worker role for mirroring.
Fig. 1.9 shows an overview of use of spp_mirror
in which spp_mirror
process receives packets from ring:0
in spp_vf
for duplicating the packets for monitoring.
Worker thread mirror
has two of tx rings for forwaring the packets to the
destination and a monitor application running on VM3.