OpenSM Partition configuration
===============================

The default name of OpenSM partitions configuration file is
'/etc/opensm/partitions.conf'. The default may be changed by
using --Pconfig (-P) option with OpenSM.

The default partition will be created by OpenSM unconditionally even
when partition configuration file does not exist or cannot be accessed.

The default partition has P_Key value 0x7fff. OpenSM's port will have
full membership in default partition. All other end ports will have
partial membership.


File Format
===========

Comments:
--------

Line content followed after '#' character is comment and ignored by
parser.


General file format:
-------------------

<Partition Definition>:<PortGUIDs list> ;


Partition Definition:
--------------------

[PartitionName][=PKey][,flag[=value]]

PartitionName - string, to be used with logging. When omitted
                empty string will be used.
PKey          - P_Key value for this partition. Only low 15 bits will
                be used. When omitted will be autogenerated.
flag          - used to indicate IPoIB capability of this partition.

Currently recognized flags are:

ipoib       - indicates that this partition may be used for IPoIB, as
              result IPoIB capable MC group will be created.
rate=<val>  - specifies rate for this IPoIB MC group (default is 3 (10GBps))
mtu=<val>   - specifies MTU for this IPoIB MC group (default is 4 (2048))
sl=<val>    - specifies SL for this IPoIB MC group (default is 0)
scope=<val> - specifies scope for this IPoIB MC group (default is 2 (link
local))

Note that values for 'rate', 'mtu'. and 'scope' should be specified as defined
in the IBTA specification (for example mtu=4 for 2048).


PortGUIDs list:
--------------

[PortGUID[=full|=limited]] [,PortGUID[=full|=limited]] [,PortGUID] ...

PortGUID     - GUID of partition member EndPort. Hexadecimal numbers
               should start from 0x, decimal numbers are accepted too.
full or      - indicates full or limited membership for this port. When
  limited      omitted (or unrecognized) limited membership is assumed.

There are two useful keywords for PortGUID definition:

- 'ALL' means all end ports in this subnet.
- 'SELF' means subnet manager's port.

Empty list means no ports in this partition.


Notes:
-----

White spaces are permitted between delimiters ('=', ',',':',';').

The Line can be wrapped after ':' followed after Partition Definition and
between.

PartitionName does not need to be unique, PKey does need to be unique.
If PKey is repeated then those partition configurations will be merged
and first PartitionName will be used (see also next note).

It is possible to split partition configuration in more than one
definition, but then PKey should be explicitly specified (otherwise
different PKey values will be generated for those definitions).


Examples:
--------

Default=0x7fff : ALL, SELF=full ;

NewPartition , ipoib : 0x123456=full, 0x3456789034=limi, 0x2134af2306 ;

YetAnotherOne = 0x300 : SELF=full ;
YetAnotherOne = 0x300 : ALL=limited ;


Note:
----

The following rule is equivalent to how OpenSM used to run prior to the
partition manager:

Default=0x7fff,ipoib:ALL=full;

