From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail04.ics.ntt-tx.co.jp (mail05.ics.ntt-tx.co.jp [210.232.35.69]) by dpdk.org (Postfix) with ESMTP id 82A061B39C for ; Fri, 30 Nov 2018 06:43:33 +0100 (CET) Received: from gwchk03.silk.ntt-tx.co.jp (gwchk03.silk.ntt-tx.co.jp [10.107.0.111]) by mail04.ics.ntt-tx.co.jp (unknown) with ESMTP id wAU5hVpm001642; Fri, 30 Nov 2018 14:43:31 +0900 Received: (from root@localhost) by gwchk03.silk.ntt-tx.co.jp (unknown) id wAU5hVdw028345; Fri, 30 Nov 2018 14:43:31 +0900 Received: from gwchk.silk.ntt-tx.co.jp [10.107.0.110] by gwchk03.silk.ntt-tx.co.jp with ESMTP id QAA27149; Fri, 30 Nov 2018 14:41:19 +0900 Received: from imss04.silk.ntt-tx.co.jp (localhost [127.0.0.1]) by imss04.silk.ntt-tx.co.jp (unknown) with ESMTP id wAU5fJFW001774; Fri, 30 Nov 2018 14:41:19 +0900 Received: from mgate01.silk.ntt-tx.co.jp (smtp02.silk.ntt-tx.co.jp [10.107.0.37]) by imss04.silk.ntt-tx.co.jp (unknown) with ESMTP id wAU5fJVH001768; Fri, 30 Nov 2018 14:41:19 +0900 Message-Id: <201811300541.wAU5fJVH001768@imss04.silk.ntt-tx.co.jp> Received: from localhost by mgate01.silk.ntt-tx.co.jp (unknown) id wAU5fJ5M014150 ; Fri, 30 Nov 2018 14:41:19 +0900 From: x-fn-spp@sl.ntt-tx.co.jp To: ferruh.yigit@intel.com, ogawa.yasufumi@lab.ntt.co.jp Cc: spp@dpdk.org Date: Fri, 30 Nov 2018 14:41:09 +0900 X-Mailer: git-send-email 2.18.0 In-Reply-To: <20181130054118.24543-1-x-fn-spp@sl.ntt-tx.co.jp> References: <20181130054118.24543-1-x-fn-spp@sl.ntt-tx.co.jp> X-TM-AS-MML: No Subject: [spp] [PATCH 01/10] docs: add spp_mirror in overview section X-BeenThere: spp@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Soft Patch Panel List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 30 Nov 2018 05:43:34 -0000 From: Hideyuki Yamashita Add overview of spp_mirror beside spp_vf. Signed-off-by: Hideyuki Yamashita Signed-off-by: Yasufumi Ogawa --- docs/guides/spp_vf/overview.rst | 71 +++++++++++++++++++++++++++++++++-------- 1 file changed, 58 insertions(+), 13 deletions(-) diff --git a/docs/guides/spp_vf/overview.rst b/docs/guides/spp_vf/overview.rst index 4773213..dd957d4 100644 --- a/docs/guides/spp_vf/overview.rst +++ b/docs/guides/spp_vf/overview.rst @@ -6,24 +6,44 @@ Overview ======== -SPP_VF provides SR-IOV like network functionality using DPDK for NFV. +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. -PP_VF distributes incoming packets to VMs with referring to virtual -MAC address like Virtual Function(VF) of SR-IOV. -Virtual MAC address can be defined by commands from spp -controller(``spp_vf.py``). +``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_VF is multi-process and multi-thread applications. A SPP_VF process -is referred to as ``spp_vf`` in this document. Each ``spp_vf`` has -one manager thread and component threads. The manager thread provides -function for command processing and creating the component threads. -The component threads have its own multiple components, ports and -classifier tables including Virtual MAC address. +``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. +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 +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. @@ -31,4 +51,29 @@ by looking up destination MAC address in the packet. .. figure:: ../images/spp_vf/spp_vf_overview.* :width: 70% - Overview of SPP VF + Overview of spp_vf + + +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. +:numref:`figure_spp_mirror_overview` 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. + +.. _figure_spp_mirror_overview: + +.. figure:: ../images/spp_vf/spp_mirror_overview.* + :width: 70% + + Overview of spp_mirror -- 2.7.4