QoS Policy file syntax

* Empty lines are ignored
* Leading and trailing blanks, as well as empty lines, are ignored, so the
  indentation in the example is just for better readability
* Comments are started with the pound sign (#) and terminated by EOL
* Comments may appear only in a separate line
* Keywords that denote section/subsection start have matching closing keywords
* Any keyword should be the first non-blank in the line

QoS Policy file example

    # Port Groups define sets of ports to be used later in the settings
    port-groups
        # using port GUIDs
        port-group
            name: Storage
            # "use" is just a description that is used for logging.
            #  Other than that, it is just a commentary
            use: our SRP storage targets
            port-guid: 0x1000000000000001
            port-guid: 0x1000000000000002
        end-port-group

        port-group
            name: Virtual Servers
            use: node desc and IB port num
# The syntax of the port name is as follows: "hostname/CA-num/Pnum".
            # "hostname" and "CA-num" are compared to the first 2 words of
            # NodeDescription, and "Pnum" is a port number on that node.
            port-name: vs1/HCA-1/P1
            port-name: vs3/HCA-1/P1
            port-name: vs3/HCA-2/P2
        end-port-group

        # using partitions defined in the partition policy
        port-group
            name: Group for Partition 1
            use: default settings
            partition: Part1
        end-port-group

        # using node types CA|ROUTER|SWITCH
        port-group
            name: Routers
            use: all routers
            node-type: ROUTER
        end-port-group

    end-port-groups

    qos-setup

        # define all types of VLArb tables. The length of the tables should
        # match the physically supported tables by their target ports
        vlarb-tables
            # scope defines the exact ports the VLArb tables apply to
            vlarb-scope
                # defining VLArb tables on all the ports that belong to
                # port group 'Storage', and on all the ports connected
                # to ports of port group 'Storage'
                group: Storage
                # "across" means all the ports that are connected to ports
                # that belong to the specified port group
                across: Storage
                # VLArb table holds VL and weight pairs
                vlarb-high: 0:255,1:127,2:63,3:31,4:15,5:7,6:3,7:1
                vlarb-low: 8:255,9:127,10:63,11:31,12:15,13:7,14:3
                vl-high-limit: 10
            end-vlarb-scope
            # There can be several scopes
        end-vlarb-tables

        sl2vl-tables
# Scope defines the exact devices and in/out ports tables apply to. # Note: if the same port is matching several rules the *FIRST* one applies.
            sl2vl-scope
                # SL2VL tables are orgnized as SL2VL(in-port,out-port)
                # "from: n,m" means we define the SL2VL(n,*) and SL2VL(m,*)
                # "to: n,m" means we define the SL2VL(*,n) and SL2VL(*,m)
                #
                # The following example specifies that all the SL2VL tables
# entries should be defined for all the ports of group Part1:
                group: Part1
                from: *
                to: *
# SL2VL table has to have 16 values at max - one for each SL. # If the user specifies less than 16 values, all the missing
                # VL values will be implicitly set to 0
                sl2vl-table: 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,7
            end-sl2vl-scope

            sl2vl-scope
# "across-to" is a combination of "across" keyword (definition can be found
                # in VLArb tables section) and "to" keyword.
# "across: PortGroupName" refers to all the ports that are connected
                # to ports that belong to PortGroupName.
                #
                # Example of "across-to" usage:
# A user has a set of 'special' nodes (e.g. storage nodes), and all
                #   the traffic to these nodes has to get specific VL.
# The solution is to define port group (i.g. "Storage") that will # include all the ports of these nodes, and then to configure SL2VL # tables on all the switch ports that are connected to the Storage
                #   port group by specifying "across-to: Storage".
                #
                across-to: Storage2
# Similar to "across-to", "across-from" is a combination of "across"
                # and "to" keywords
                across-from: Storage1
                sl2vl-table: 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0
            end-sl2vl-scope
        end-sl2vl-tables

    end-qos-setup


    qos-levels

        # the first one is just setting SL
        qos-level
            use: for the lowest priority communication
            sl: 15
            packet-life: 16
        end-qos-level
        # the second sets SL and QoS Class
        qos-level
            use: low latency best bandwidth
            sl: 0
        end-qos-level
# the whole set: SL, MTU-Limit, Rate-Limit, Packet Lifetime, Path Bits
        qos-level
            use: just an example
            sl: 0
            mtu-limit: 1
            rate-limit: 1
            packet-life: 12
# Path Bits can be used e.g. to provide a different routes through the
            # subnet to a particular port
            path-bits: 2,4,8-32
        end-qos-level

    end-qos-levels


# Match rules are scanned in a first-fit manner (like firewall rules table)
    qos-match-rules

        # matching by single criteria: class (list of values and ranges)
        qos-match-rule
            # just a description
            use: low latency by class 7-9 or 11
            qos-class: 7-9,11
            # number of qos-level to apply to the matching PR/MPR
            qos-level-sn: 1
        end-qos-match-rule
        # show matching by destination group AND service-ids
        qos-match-rule
            use: Storage targets connection
            destination: Storage
            service-id: 22,4719-5000
            qos-level-sn: 2
        end-qos-match-rule
        # show matching by source group only
        qos-match-rule
            use: bla bla
            source: Storage
            qos-level-sn: 3
        end-qos-match-rule

    end-qos-match-rules

What creates this file? If we expect an administrator to create this manually, then I think we something much, much simpler.

- Sean
_______________________________________________
general mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to