SM Partitions.conf File Format
This appendix presents the content and format of the OpenSM conf/opensm/partitions.conf file.
OpenSM Partition configuration
===============================
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 always
have full membership in default
partition. All other end ports will have
full membership if
the partition configuration file is not found or cannot
be accessed, or limited membership if
the file exists and can be accessed
but there is no rule for
the Default partition.
Effectively, this
amounts to the same as if
one of the following rules
below appear in the partition configuration file:
In the case
of no rule for
the Default partition:
Default=0x7fff
: ALL=limited, SELF=full ;
In the case
of no partition configuration file or file cannot be accessed:
Default=0x7fff
: ALL=full ;
File Format
===========
Comments:
Line content followed after \'#\' character is comment and ignored by
parser.
General file format:
<Partition Definition>:[<newline>]<Partition Properties>;
Partition Definition:
[PartitionName][=PKey][,ipoib_bc_flags][,defmember=full|limited]
PartitionName - string, will 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.
ipoib_bc_flags - used to indicate/specify IPoIB capability of this
partition.
defmember=full|limited - specifies default
membership for
port guid
list. Default is limited.
ipoib_bc_flags:
ipoib_flag|[mgroup_flag]*
ipoib_flag - indicates that this
partition may be used for
IPoIB, as
a result the IPoIB broadcast group will be created with
the flags given, if
any.
Partition Properties:
[<Port list>|<MCast Group>]* | <Port list>
Port list:
<Port Specifier>[,<Port Specifier>]
Port Specifier:
<PortGUID>[=[full|limited]]
PortGUID - GUID of partition member EndPort. Hexadecimal
numbers should start from 0x, decimal numbers
are accepted too.
full or limited - indicates full or limited membership for
this
port. When omitted (or unrecognized) limited
membership is assumed.
MCast Group:
mgid=gid[,mgroup_flag]*<newline>
- gid specified is verified to be a Multicast address
IP groups are verified to match the rate and mtu of the
broadcast group. The P_Key bits of the mgid for
IP
groups are verified to either match the P_Key specified
in by "Partition Definition"
or if
they are 0x0000
the
P_Key will be copied into those bits.
mgroup_flag:
rate=<val> - specifies rate for
this
MC group
(default
is 3
(10GBps))
mtu=<val> - specifies MTU for
this
MC group
(default
is 4
(2048
))
sl=<val> - specifies SL for
this
MC group
(default
is 0
)
scope=<val> - specifies scope for
this
MC group
(default
is 2
(link local)). Multiple scope settings
are permitted for
a partition.
NOTE: This overwrites the scope nibble of the specified
mgid. Furthermore specifying multiple scope
settings will result in multiple MC groups
being created.
qkey=<val> - specifies the Q_Key for
this
MC group
(default
: 0x0b1b
for
IP groups, 0
for
other groups)
WARNING: changing this
for
the broadcast group may
break
IPoIB on client nodes!!!
tclass=<val> - specifies tclass for
this
MC group
(default
is 0
)
FlowLabel=<val> - specifies FlowLabel for
this
MC group
(default
is 0
)
newline: '\n'
Note that values for
rate, mtu, and scope, for
both partitions and multicast
groups, should be specified as defined in the IBTA specification (for
example,
mtu=4
for
2048
).
There are several useful keywords for
PortGUID definition:
- 'ALL'
means all end ports in this
subnet.
- 'ALL_CAS'
means all Channel Adapter end ports in this
subnet.
- 'ALL_SWITCHES'
means all Switch end ports in this
subnet.
- 'ALL_ROUTERS'
means all Router end ports in this
subnet.
- 'SELF'
means subnet manager's port.
Empty list means no ports in this
partition.
Notes:
-----
White space is permitted between delimiters ('='
, ','
,':'
,';'
).
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 ;
Default=0x7fff
: ALL, ALL_SWITCHES=full, SELF=full ;
NewPartition , ipoib : 0x123456
=full, 0x3456789034
=limited, 0x2134af2306
;
YetAnotherOne = 0x300
: SELF=full ;
YetAnotherOne = 0x300
: ALL=limited ;
ShareIO = 0x80
, defmember=full : 0x123451
, 0x123452
;
# 0x123453
, 0x123454
will be limited
ShareIO = 0x80
: 0x123453
, 0x123454
, 0x123455
=full;
# 0x123456
, 0x123457
will be limited
ShareIO = 0x80
: defmember=limited : 0x123456
, 0x123457
, 0x123458
=full;
ShareIO = 0x80
, defmember=full : 0x123459
, 0x12345a
;
ShareIO = 0x80
, defmember=full : 0x12345b
, 0x12345c
=limited, 0x12345d
;
# multicast groups added to default
Default=0x7fff
,ipoib:
mgid=ff12:401b::0707
,sl=1
# random IPv4 group
mgid=ff12:601b::16
# MLDv2-capable routers
mgid=ff12:401b::16
# IGMP
mgid=ff12:601b::2
# All routers
mgid=ff12::1
,sl=1
,Q_Key=0xDEADBEEF
,rate=3
,mtu=2
# random group
ALL=full;
Note:
----
The following rule is equivalent to how OpenSM used to run prior to the
partition manager:
Default=0x7fff
,ipoib:ALL=full;