[dpdk-dev] [PATCH v7 1/9] doc: add switch representation documentation

Kovacevic, Marko marko.kovacevic at intel.com
Mon Apr 16 17:55:07 CEST 2018


Small changes commented below.


> Add document to describe the  model for representing switching capable
> devices in DPDK, using a general ethdev port model and through port
> representors. This document also details the port model and the rte_flow
> semantics required for flow programming, as well as listing some example
> use cases.
> 
> Signed-off-by: Adrien Mazarguil <adrien.mazaguil at 6wind.com>
> Signed-off-by: Declan Doherty <declan.doherty at intel.com>
> ---
>  doc/guides/prog_guide/index.rst                 |   1 +
>  doc/guides/prog_guide/switch_representation.rst | 837
> ++++++++++++++++++++++++
>  2 files changed, 838 insertions(+)

<...>

> +- As virtual devices, they may be more limited than their physical
> +  counterparts, for instance by exposing only a subset of device
> +  configuration callbacks and/or by not necessarily having Rx/Tx capability.
> +
> +- Among other things, they can be used to assign MAC addresses to the
> +  resource they represent.
> +
> +- Applications can tell port representors apart from other physcial of
> +virtual
> +  port by checking the dev_flags field within their device information
> +  structure for the RTE_ETH_DEV_REPRESENTOR bit-field.

physcial / physical


> +.. code-block:: c
> +
> +  struct rte_eth_dev_info {
> +	..
> +	uint32_t dev_flags; /**< Device flags */
> +	..
> +  };

In the code block above tabs were used you can use spaces instead

<...>

> +Extensions
> +~~~~~~~~~~
> +
> +Compared to creating a brand new dedicated interface, **rte_flow** was
> +deemed flexible enough to manage representor traffic only with minor
> +extensions:
> +
> +- Using physical ports, PF, VF or port representors as targets.
> +
> +- Affecting traffic that is not necessarily addressed to the DPDK port
> +ID a
> +  flow rule is associated with (e.g. forcing VF traffic redirection to PF).
> +
> +For advanced uses:
> +
> +- Rule-based packet counters.
> +
> +- The ability to combine several identical actions for traffic
> +duplication
> +  (e.g. VF representor in addition to a physical port).
> +
> +- Dedicated actions for traffic encapsulation / decapsulation before
> +  reaching a endpoint.
> +

^^^^^^^^^^^^^
reaching an endpoint


<...>

> +Switching Examples
> +------------------
> +
> +This section provides practical examples based on the established
> +Testpmd flow command syntax [2]_, in the context described in `traffic
> +steering`_
> +
> +::
> +
> +      .-------------.                 .-------------. .-------------.
> +      | hypervisor  |                 |    VM 1     | |    VM 2     |
> +      | application |                 | application | | application |
> +      `--+---+---+--'                 `----------+--' `--+----------'
> +         |   |   |                               |       |
> +         |   |   `-------------------.           |       |
> +         |   `---------.             |           |       |
> +         |             |             |           |       |
> +   .----(A)----. .----(B)----. .----(C)----.     |       |
> +   | port_id 3 | | port_id 4 | | port_id 5 |     |       |
> +   `-----+-----' `-----+-----' `-----+-----'     |       |
> +         |             |             |           |       |
> +       .-+--.    .-----+-----. .-----+-----. .---+--. .--+---.
> +       | PF |    | VF 1 rep. | | VF 2 rep. | | VF 1 | | VF 2 |
> +       `-+--'    `-----+-----' `-----+-----' `--(D)-' `-(E)--'
> +         |             |             |           |       |
> +         |             |   .---------'           |       |
> +         `-----.       |   |   .-----------------'       |
> +               |       |   |   |   .---------------------'
> +               |       |   |   |   |
> +            .--|-------|---|---|---|--.
> +            |  |       |   `---|---'  |
> +            |  |       `-------'      |
> +            |  `---------.            |
> +            `------------|------------'
> +                         |
> +                    .---(F)----.
> +                    | physical |
> +                    |  port 0  |
> +                    `----------'
> +
> +By default, PF (**A**) can communicate with the physical port it is
> +associated with (**F**), while VF 1 (**D**) and VF 2 (**E**) are
> +isolated and restricted to communicate with the hypervisor application
> +through their respective representors (**B** and **C**) if supported.
> +
> +Examples in subsequent sections apply to hypervisor applications only
> +and are based on port representors **A**, **B** and **C**.
> +
> +.. [2] `Flow syntax
> +
> +<http://dpdk.org/doc/guides/testpmd_app_ug/testpmd_funcs.html#flow-
> synt
> +ax>`
> +

^^^^^^^^^^^^^^^^^^^^^^^^^
You're missing an underscore to complete the link for the case above its not clickable at the moment

<...>

Reviewed-by: Marko Kovacevic <marko.kovacevic at intel.com>


More information about the dev mailing list