[ovs-dev] [PATCH 7/8] doc: Split Jumbo Frames guide between two docs

Stokes, Ian ian.stokes at intel.com
Mon Apr 9 15:17:39 UTC 2018


> While there is some duplication going on here, that's not necessarily a
> bad thing. If nothing else, it lets us remove one more overly-detailed
> step from the howto.
> 

I think it's cleaner to move Jumbo frames to its own doc altogether rather than splitting in two.
>From the point of view flagging known issues and future maintenance this will help.

Maybe just add a small section in both phy and vhost user noting Jumbo frames are supported and then link to the main jumbo frame doc.

Ian

> Signed-off-by: Stephen Finucane <stephen at that.guru>
> ---
>  Documentation/howto/dpdk.rst             | 52 ++-------------------------
> -----
>  Documentation/topics/dpdk/phy.rst        | 24 +++++++++++++++
>  Documentation/topics/dpdk/vhost-user.rst | 36 ++++++++++++++++++++++
>  3 files changed, 63 insertions(+), 49 deletions(-)
> 
> diff --git a/Documentation/howto/dpdk.rst b/Documentation/howto/dpdk.rst
> index 1a72e90bf..ba01810f8 100644
> --- a/Documentation/howto/dpdk.rst
> +++ b/Documentation/howto/dpdk.rst
> @@ -48,9 +48,9 @@ number of dpdk devices found in the log file::
>      $ ovs-vsctl add-port br0 dpdk-p1 -- set Interface dpdk-p1 type=dpdk \
>          options:dpdk-devargs=0000:01:00.1
> 
> -Some NICs (i.e. Mellanox ConnectX-3) have only one PCI address associated
> -with multiple ports. Using a PCI device like above won't work. Instead,
> below -usage is suggested::
> +Some NICs (i.e. Mellanox ConnectX-3) have only one PCI address
> +associated with multiple ports. Using a PCI device like above won't
> +work. Instead, below usage is suggested::
> 
>      $ ovs-vsctl add-port br0 dpdk-p0 -- set Interface dpdk-p0 type=dpdk \
>          options:dpdk-devargs="class=eth,mac=00:11:22:33:44:55:01"
> @@ -85,52 +85,6 @@ To stop ovs-vswitchd & delete bridge, run::
>      $ ovs-appctl -t ovsdb-server exit
>      $ ovs-vsctl del-br br0
> 
> -Jumbo Frames
> -------------
> -
> -By default, DPDK ports are configured with standard Ethernet MTU (1500B).
> To -enable Jumbo Frames support for a DPDK port, change the Interface's -
> ``mtu_request`` attribute to a sufficiently large value. For example, to
> add a -DPDK Phy port with MTU of 9000::
> -
> -    $ ovs-vsctl add-port br0 dpdk-p0 -- set Interface dpdk-p0 type=dpdk \
> -          options:dpdk-devargs=0000:01:00.0 mtu_request=9000
> -
> -Similarly, to change the MTU of an existing port to 6200::
> -
> -    $ ovs-vsctl set Interface dpdk-p0 mtu_request=6200
> -
> -Some additional configuration is needed to take advantage of jumbo frames
> with -vHost ports:
> -
> -1. *mergeable buffers* must be enabled for vHost ports, as demonstrated
> in the
> -   QEMU command line snippet below::
> -
> -       -netdev type=vhost-user,id=mynet1,chardev=char0,vhostforce \
> -       -device virtio-net-
> pci,mac=00:00:00:00:00:01,netdev=mynet1,mrg_rxbuf=on
> -
> -2. Where virtio devices are bound to the Linux kernel driver in a guest
> -   environment (i.e. interfaces are not bound to an in-guest DPDK
> driver), the
> -   MTU of those logical network interfaces must also be increased to a
> -   sufficiently large value. This avoids segmentation of Jumbo Frames
> received
> -   in the guest. Note that 'MTU' refers to the length of the IP packet
> only,
> -   and not that of the entire frame.
> -
> -   To calculate the exact MTU of a standard IPv4 frame, subtract the L2
> header
> -   and CRC lengths (i.e. 18B) from the max supported frame size.  So, to
> set
> -   the MTU for a 9018B Jumbo Frame::
> -
> -       $ ip link set eth1 mtu 9000
> -
> -When Jumbo Frames are enabled, the size of a DPDK port's mbuf segments
> are -increased, such that a full Jumbo Frame of a specific size may be
> accommodated -within a single mbuf segment.
> -
> -Jumbo frame support has been validated against 9728B frames, which is the
> -largest frame size supported by Fortville NIC using the DPDK i40e driver,
> but -larger frames and other DPDK NIC drivers may be supported. These
> cases are -common for use cases involving East-West traffic only.
> -
>  .. _dpdk-ovs-in-guest:
> 
>  OVS with DPDK Inside VMs
> diff --git a/Documentation/topics/dpdk/phy.rst
> b/Documentation/topics/dpdk/phy.rst
> index 93aff628c..d49269567 100644
> --- a/Documentation/topics/dpdk/phy.rst
> +++ b/Documentation/topics/dpdk/phy.rst
> @@ -216,3 +216,27 @@ Flow Control
> 
>  Flow control is available for DPDK physical ports. For more information,
> refer  to :ref:`dpdk-flow-control`.
> +
> +Jumbo Frames
> +------------
> +
> +By default, ``dpdk`` ports are configured with standard Ethernet MTU
> (1500B).
> +To enable Jumbo Frames support for such a port, change the interface's
> +``mtu_request`` attribute to a sufficiently large value. For example,
> +to add a ``dpdk`` port with MTU of 9000, run::
> +
> +    $ ovs-vsctl add-port br0 dpdk-p0 -- set Interface dpdk-p0 type=dpdk \
> +        options:dpdk-devargs=0000:01:00.0 mtu_request=9000
> +
> +Similarly, to change the MTU of an existing port to 6200::
> +
> +    $ ovs-vsctl set Interface dpdk-p0 mtu_request=6200
> +
> +When Jumbo Frames are enabled, the size of a DPDK port's mbuf segments
> +are increased, such that a full Jumbo Frame of a specific size may be
> +accommodated within a single mbuf segment.
> +
> +Jumbo frame support has been validated against 9728B frames, which is
> +the largest frame size supported by Fortville NIC using the DPDK i40e
> +driver, but larger frames and other DPDK NIC drivers may be supported.
> +These cases are common for use cases involving East-West traffic only.
> diff --git a/Documentation/topics/dpdk/vhost-user.rst
> b/Documentation/topics/dpdk/vhost-user.rst
> index d84d99246..7b2777121 100644
> --- a/Documentation/topics/dpdk/vhost-user.rst
> +++ b/Documentation/topics/dpdk/vhost-user.rst
> @@ -458,6 +458,42 @@ Sample XML
> 
>  .. _QEMU documentation: http://git.qemu-
> project.org/?p=qemu.git;a=blob;f=docs/specs/vhost-
> user.txt;h=7890d7169;hb=HEAD
> 
> +Jumbo Frames
> +------------
> +
> +By default, vHost User ports are configured with standard Ethernet MTU
> (1500B).
> +To enable Jumbo Frames support for such a port, you must:
> +
> +- Enable *mergeable buffers* for the ports, as demonstrated in the QEMU
> +  command line snippet below::
> +
> +      -netdev type=vhost-user,id=mynet1,chardev=char0,vhostforce \
> +      -device
> + virtio-net-pci,mac=00:00:00:00:00:01,netdev=mynet1,mrg_rxbuf=on
> +
> +- Where virtio devices are bound to the Linux kernel driver in a guest
> +  environment (i.e. interfaces are not bound to an in-guest DPDK
> +driver), the
> +  MTU of those logical network interfaces must also be increased to a
> +  sufficiently large value. This avoids segmentation of Jumbo Frames
> +received
> +  in the guest. For example::
> +
> +       $ ip link set eth1 mtu 9000
> +
> +  .. note::
> +
> +     The 'MTU' refers to the length of the IP packet only, and not that
> of the
> +     entire frame. To calculate the exact MTU of a standard IPv4 frame,
> +     subtract the L2 header and CRC lengths (i.e. 18B) from the max
> supported
> +     frame size. As a result, the actual size of the frame above is
> 9018B.
> +
> +When Jumbo Frames are enabled, the size of a DPDK port's mbuf segments
> +are increased, such that a full Jumbo Frame of a specific size may be
> +accommodated within a single mbuf segment.
> +
> +Jumbo frame support has been validated against 9728B frames, which is
> +the largest frame size supported by Fortville NIC using the DPDK i40e
> +driver, but larger frames and other DPDK NIC drivers may be supported.
> +These cases are common for use cases involving East-West traffic only.
> +
>  vhost-user Dequeue Zero Copy (experimental)
>  -------------------------------------------
> 
> --
> 2.14.3
> 
> _______________________________________________
> dev mailing list
> dev at openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev


More information about the dev mailing list