Go to main content

Managing Network Virtualization and Network Resources in Oracle® Solaris 11.4

Exit Print View

Updated: November 2020
 
 

Configuring Flows With Dedicated Ring Groups

Flows share the resources such as rings and interrupts of the underlying datalink. Flows can also have their own dedicated ring groups to perform flow classification by using the underlying physical datalink. Currently, only the Intel XL710 10/40 Gigabit Ethernet controller NIC supports configuring flows with dedicated ring groups. The dedicated ring groups provides the following benefits for the flows:

  • Provides hardware SLA enforcement

  • Improves data path performance

  • Saves CPU utilization of flows

  • Improves resource isolation

How to Create a Flow With a Dedicated Ring Group

Before You Begin

Ensure that your role has the appropriate rights profile to perform this procedure. See Using Rights Profiles to Perform Network Configuration.

  1. Check if the underlying datalink supports dedicated (exclusive) ring group.
    1. Display the ring-group property of a datalink to ensure that the datalink supports exclusive ring group.
      $ dladm show-linkprop -p ring-group datalink

      If the underlying datalink supports dedicated ring group, the value of the ring-group property is displayed as exclusive. If the underlying link does not support dedicated ring group, you cannot add a flow with a dedicated ring group to the underlying datalink.

    2. Check the ring group resource availability for the underlying datalink.
      $ dladm show-phys -G datalink
  2. Create a flow by setting the hw-flow property to on and setting the other required attributes.
    $ flowadm add-flow -l datalink -a transport=trans-protocol,local_ip=IPaddr, \
        local_port=port,remote_ip=IPaddr,remote_port=port -phw-flow=on flowname

    Note -  You can only create flows with the following combination of attributes for the NIC, XL710:
    • With the transport protocol udp, you need to set the attributes local_ip and local_port.

    • With the transport protocol tcp, you need to set the attributes local_ip, local_port, and remote_port.

    For more information, see the i40e(4D) man page.


  3. Display the flow and the flow properties.
    $ flowadm
    $ flowadm show-flowprop flowname
Example 86  Creating a Flow With Dedicated Ring Group

The following example shows how to create a flow with dedicated ring group.

$ dladm show-linkprop -p ring-group net2
LINK     PROPERTY        PERM VALUE        EFFECTIVE    DEFAULT   POSSIBLE
net2     ring-group      r-   exclusive    exclusive      --      shared
                                                                  exclusive

You can add flows with exclusive ring group to a datalink only if the underlying datalink supports exclusive ring group.

Check the resource availability for the ring group of the underlying datalink.

$ dladm show-phys -G net2
LINK            RG-AVAIL    RG-INUSE-UMAC RG-INUSE-VNIC RG-INUSE-FLOW
net2            268         0             0             0
$ flowadm add-flow -l net3 -a transport=tcp,local_ip=203.0.113.2/27, \
local_port=5002,remote_ip=203.0.113.35/27,remote_port=5001 -p hw-flow=on tcpflow1
$ flowadm
FLOW        LINK     PROTO LADDR             LPORT RADDR             RPORT  DIR
tcpflow1    net3     tcp   203.0.113.2/27    5002  203.0.113.35/27   5001   bi
$ flowadm show-flowprop tcpflow1
FLOW        PROPERTY   PERM VALUE      EFFECTIVE    DEFAULT   POSSIBLE
tcpflow1    max-bw     rw   --         --           --        --
tcpflow1    dscp       rw   --         --           --        0-63
tcpflow1    hw-flow    rw   on         on           auto      auto,off
tcpflow1    bw-share   rw   --         --           --        1-100
tcpflow1    ofaction   rw   --         --           --        --