On 11.02.2019 3:01, Ophir Munk wrote:
> This details how to configure representors ports.
> 
> Signed-off-by: Ophir Munk <[email protected]>
> ---
>  Documentation/topics/dpdk/phy.rst | 80 
> +++++++++++++++++++++++++++++++++++++++
>  1 file changed, 80 insertions(+)
> 
> diff --git a/Documentation/topics/dpdk/phy.rst 
> b/Documentation/topics/dpdk/phy.rst
> index 1470623..3792fde 100644
> --- a/Documentation/topics/dpdk/phy.rst
> +++ b/Documentation/topics/dpdk/phy.rst
> @@ -219,6 +219,86 @@ For more information please refer to the `DPDK Port 
> Hotplug Framework`__.
>  
>  __ http://dpdk.org/doc/guides/prog_guide/port_hotplug_framework.html#hotplug
>  
> +.. _representors:
> +
> +Representors
> +------------
> +
> +DPDK representors enable configuring a phy port to a guest (VM) machine.
> +
> +OVS resides in the hypervisor which has one or more physical interfaces also
> +known as the physical functions (PFs). If a PF supports SR-IOV it can be used
> +to enable communication with the VMs via Virtual Functions (VFs).
> +The VFs are virtual PCIe devices created from the physical Ethernet 
> controller.
> +
> +DPDK models a physical interface as a rte device on top of which an eth
> +device is created.
> +DPDK (version 18.xx) introduced the representors eth devices.
> +A representor device represents the VF eth device (VM side) on the hypervisor
> +side and operates on top of a PF.
> +Representors are multi devices created on top of one PF.
> +
> +For more information, refer to the `DPDK documentation`__.
> +
> +__ https://doc.dpdk.org/guides-18.11/prog_guide/switch_representation.html
> +
> +Prior to port representors there was a one-to-one relationship between the PF
> +and the eth device. With port representors the relationship becomes one PF to
> +many eth devices.
> +In case of two representors ports, when one of the ports is closed - the PCI
> +bus cannot be detached until the second representor port is closed as well.
> +
> +.. _representors-configuration:
> +
> +When configuring a PF-based port, OVS traditionally assigns the device PCI
> +address in devargs. For an existing bridge called ``br0`` and PCI address
> +``0000:08:00.0`` an ``add-port`` command is written as::
> +
> +    $ ovs-vsctl add-port br0 dpdk-pf -- set Interface dpdk-pf type=dpdk \
> +       options:dpdk-devargs=0000:08:00.0
> +
> +When configuring a VF-based port, DPDK uses an extended devargs syntax which
> +has the following format::
> +
> +    BDBF,representor=[<representor id>]
> +
> +This syntax shows that a representor is an enumerated eth device (with
> +a representor ID) which uses the PF PCI address.
> +The following commands add representors 3 and 5 using PCI device address
> +``0000:08:00.0``::
> +
> +    $ ovs-vsctl add-port br0 dpdk-rep3 -- set Interface dpdk-rep3 type=dpdk \
> +       options:dpdk-devargs=0000:08:00.0,representor=[3]
> +
> +    $ ovs-vsctl add-port br0 dpdk-rep5 -- set Interface dpdk-rep5 type=dpdk \
> +       options:dpdk-devargs=0000:08:00.0,representor=[5]
> +
> +.. important::
> +
> +   Representors ports are configured prior to OVS invocation and 
> independently
> +   of it, or by other means as well. Please consult a NIC vendor instructions
> +   on how to establish representors. 

It'll be good to have configuration example for at least one commonly used NIC
(ixgbe/i40e ?). Or maybe a link to the docs where the process described.

What do you think ?
Ian, maybe you could add some example, since you have already tried it in 
practice?

> To verify their correct configuration,
> +   execute::
> +
> +    $ ovs-vsctl show
> +
> +   and make sure no errors are indicated.
> +
> +.. _multi-dev-configuration:
> +
> +
> +Port representors are an example of multi devices. There are NICs which 
> support
> +multi devices by other methods than representors for which a generic devargs
> +syntax is used. The generic syntax is based on the device mac address::
> +
> +    class=eth,mac=<MAC address>
> +
> +For example, the following command adds a port to a bridge called ``br0`` 
> using
> +an eth device whose mac address is ``00:11:22:33:44:55``::
> +
> +    $ ovs-vsctl add-port br0 dpdk-mac -- set Interface dpdk-mac type=dpdk \
> +       options:dpdk-devargs="class=eth,mac=00:11:22:33:44:55"
> +
>  Jumbo Frames
>  ------------
>  
> 
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to