<?xml version="1.0" encoding="utf-8"?>
<Config>
<!-- Common FM configuration, applies to all FM instances/subnets -->
<Common>
<!-- Various sets of Applications which may be used in Virtual Fabrics -->
<!-- Applications defined here are available for use in all FM instances. -->
<!-- Additional Applications may be defined here or per FM instance. -->
<!-- Applications specified per FM instance will add to -->
<!-- instead of replace these Application definitions. -->
<Applications>
<!-- Each Application can have one or more ServiceIDs and/or MGIDs. -->
<!-- These will be matched against PathRecord and Multicast SA queries -->
<!-- so that the returned SLID/DLID, PKey, SL, etc are appropriate for -->
<!-- the Virtual Fabric(VF) which contains the application(s). -->
<!-- Every Application must have a unique <Name> -->
<!-- The name must be unique among all Application names within an -->
<!-- FM instance. -->
<!-- When defined at Common level must be unique within all instances. -->
<!-- The name is limited to 64 characters and is case sensitive. -->
<!-- ServiceIDs are 64 bit values which identify applications within the -->
<!-- PathRecord query and are typically used within the InfiniBand -->
<!-- Communication Manager (CM) protocol to identify the application for -->
<!-- a connection request. -->
<!-- In many ways ServiceIDs are IBs equivalent of TCP "socket ports". -->
<!-- ServiceIDs can be specified in the following ways in the -->
<!-- Application section: -->
<!-- a single ServiceID: <ServiceID>0x1234567812345678</ServiceID> -->
<!-- a range of ServiceIDs: -->
<!--- <ServiceIDRange>0-0xffffffffffffffff</ServiceIDRange> -->
<!-- a masked compare of ServiceID: -->
<!--- <ServiceIDMasked>0x120003567*0xff000ffff</ServiceIDMasked> -->
<!-- Matches ServiceIDs which when ANDed with 2nd value (the -->
<!-- mask) match the 1st value -->
<!-- all others not in any VF: <Select>UnmatchedServiceID</Select> -->
<!-- UnmatchedServiceID matches all applications' ServiceIDs -->
<!-- which match none of the Virtual Fabrics after filtering -->
<!-- by src/dest/requester. -->
<!-- Can be used as an easy catch-all. -->
<!-- MGIDs (IB Multicast GIDs) are 128 bit values which identify -->
<!-- multicast groups for Unreliable Datagram applications such as IPoIB -->
<!-- MGIDs are represented as two 64 bit values separated by a colon (:) -->
<!-- This way of representing 128 bit values is the same as used in -->
<!-- other FastFabric Tools such as opasaquery, opashowmc, etc. -->
<!-- MGIDs can be specified in the following ways in the Application -->
<!-- section: -->
<!-- a single MGID: <MGID>0xabc:0x123567</MGID> -->
<!-- a range of MGIDs: -->
<!-- <MGIDRange>0:0-0xffffffffffffffff:0xffffffffffffffff</MGIDRange> -->
<!-- a masked compare of MGID: -->
<!-- <MGIDMasked>0xabc:0x120003567*0xfff:0xff000ffff</MGIDMasked> -->
<!-- Matches MGIDs which when ANDed with 2nd value (the -->
<!-- mask) match the 1st value. -->
<!-- all others not in any VF: <Select>UnmatchedMGID</Select> -->
<!-- UnmatchedMGID matches all applications' MGIDs which match -->
<!-- none of the Virtual Fabrics after filtering by -->
<!-- src/dest/requester. -->
<!-- Can be used as an easy catch-all -->
<!-- A special case is SA queries. This special "application" allows -->
<!-- SA query operations to be assigned to an appropriate VF. -->
<!-- SA queries must use the default Partition Key (0x7fff or 0xffff). -->
<!-- However other aspects of SA access can be controlled (SL, etc). -->
<!-- This syntax allows an Application to be specified which includes -->
<!-- SA queries: <Select>SA</Select> -->
<!-- In addition, an Application can include another Application via: -->
<!-- <IncludeApplication>myapplication</IncludeApplication> -->
<!-- This will include all the ServiceIDs and MGIDs in the given -->
<!-- Application. -->
<!-- Loops (including the parent Application) are not allowed. -->
<!-- There is a nesting limit of 32. -->
<!-- Some predefined Applications follow. These are also a good set -->
<!-- of examples to cut/paste to make other site specific applications: -->
<!-- All Applications, can be used when per Application VFs not needed -->
<Application>
<Name>All</Name>
<!-- Selects all service ID's -->
<ServiceIDRange>0-0xffffffffffffffff</ServiceIDRange>
<!-- selects all MGID's -->
<MGIDRange>0:0-0xffffffffffffffff:0xffffffffffffffff</MGIDRange>
<!-- these are redundant in this case, but don't hurt -->
<Select>UnmatchedServiceID</Select>
<Select>UnmatchedMGID</Select>
</Application>
<!-- An application just consisting of SA queries -->
<Application>
<Name>SA</Name>
<Select>SA</Select>
</Application>
<!-- An application just consisting of PA queries -->
<Application>
<Name>PA</Name>
<ServiceID>0x1100d03c34845555</ServiceID>
</Application>
<!-- An application just consisting of PM sweep traffic -->
<Application>
<Name>PM</Name>
<Select>PM</Select>
</Application>
<!-- IPv4 over IB (IETF UD mode) for all partitions -->
<Application>
<Name>IPv4</Name>
<!-- MGID = 0xffFS401bPPPP0000:00000000GGGGGGGG -->
<!-- where F=flags, S=scope, P=PKey and G=IP Multicast Group -->
<MGIDMasked>0xff00401b00000000:0*0xff00ffff0000ffff:0xffffffff00000000</MGIDMasked>
</Application>
<!-- Sample of IPv4 over IB (IETF UD mode) for PKey 0x8002/0x0002 -->
<Application>
<Name>IPv4_0002</Name>
<!-- MGID = 0xffFS401bPPPP0000:00000000GGGGGGGG -->
<!-- where F=flags, S=scope, P=PKey and G=IP Multicast Group -->
<MGIDMasked>0xff00401b80020000:0*0xff00ffffffffffff:0xffffffff00000000</MGIDMasked>
</Application>
<!-- IPv6 over IB (IETF UD mode) for all partitions -->
<Application>
<Name>IPv6</Name>
<!-- MGID = 0xffFS601bPPPPGGGG:GGGGGGGGGGGGGGGG -->
<!-- where F=flags, S=scope, P=PKey and G=IP Multicast Group -->
<MGIDMasked>0xff00601b00000000:0*0xff00ffff00000000:0</MGIDMasked>
</Application>
<!-- Sample of IPv6 over IB (IETF UD mode) for PKey 0x8002/0x0002 -->
<Application>
<Name>IPv6_0002</Name>
<!-- MGID = 0xffFS601bPPPPGGGG:GGGGGGGGGGGGGGGG -->
<!-- where F=flags, S=scope, P=PKey and G=IP Multicast Group -->
<MGIDMasked>0xff00601b80020000:0*0xff00ffffffff0000:0</MGIDMasked>
</Application>
<!-- IPoIB Connected Mode (IPv4 and IPv6) -->
<Application>
<Name>IPoIBCM</Name>
<!-- Unlike UD mode the ServiceID does not include PKey -->
<!-- ServiceID = 0x1000000000XXXXXX where XXXXXX is QPN -->
<ServiceIDMasked>0x1000000000000000*0xffffffffff000000</ServiceIDMasked>
</Application>
<!-- Reliable Datagram Service (RDS) (for Oracle) -->
<Application>
<Name>RDS</Name>
<!-- ServiceID = 0x000000000106XXXX where XXXX is socket "port number" -->
<ServiceIDRange>0x0000000001060000-0x000000000106ffff</ServiceIDRange>
</Application>
<!-- Unfortunately, none of the OFA Verbs MPIs use the SA nor CM. -->
<!-- Hence to put an MPI job in its own Virtual Fabric, the PKey/SL of -->
<!-- the desired Virtual fabric must be manually provided to the MPI run -->
<Application>
<Name>VerbsMPI</Name>
<!-- <ServiceID>TBD</ServiceID> -->
</Application>
<!-- HPC Libraries (MPI, SHMEM, etc) which use PSM can query the SA and -->
<!-- hence can use service IDs to select the desired Virtual Fabric. -->
<!-- when separating PSM Control from Data Traffic: -->
<!-- 1st Service ID in range is used for Control traffic. -->
<!-- This will be the service ID used on the command line. -->
<Application>
<Name>PSM_Control</Name>
<ServiceIDRange>0x1000117500000000-0x1000117500000007</ServiceIDRange>
<!-- for simplicity, when serviceId is needed on mpirun command line -->
<!-- we also allow serviceId 0x1 to 0x7. -->
<ServiceIDRange>0x1-0x7</ServiceIDRange>
</Application>
<!-- when separating PSM Control from Data Traffic: -->
<!-- Control Service ID +8 is used for Eager/Bulk traffic. -->
<!-- Do NOT use this service ID on the command line. -->
<Application>
<Name>PSM_Data</Name>
<ServiceIDRange>0x1000117500000008-0x100011750000000f</ServiceIDRange>
<!-- for simplicity, when serviceId is needed on mpirun command line -->
<!-- we also allow serviceId 0x9 to 0xf. -->
<ServiceIDRange>0x9-0xf</ServiceIDRange>
</Application>
<!-- When not separating PSM Control from Data Traffic, map all -->
<!-- PSM Service IDs as one application -->
<Application>
<Name>PSM</Name>
<ServiceIDRange>0x1000117500000000-0x100011750000000f</ServiceIDRange>
<!-- for simplicity, when serviceId is needed on mpirun command line -->
<!-- we also allow serviceId 0x1 to 0xf -->
<ServiceIDRange>0x1-0xf</ServiceIDRange>
</Application>
<Application>
<Name>ibacm</Name>
<!-- MGID = 0xff154001PPPP00RR:MM00000000000000 -->
<!-- where P=PKey, R=Rate and M=MTU -->
<!-- Rate: 9 (75gb), 12 (50gb), 15 (25gb), 16 (100gb) -->
<!-- MTU: 4 (2K), 5 (4K) -->
<MGIDMasked>0xff15400100000000:0*0xffffffff0000ff00:0x00ffffffffffffff</MGIDMasked>
</Application>
<Application>
<Name>iSER</Name>
<!-- ServiceID = 0x000000000106XXXX where XXXX is socket "port number" -->
<!-- <ServiceIDRange>0x0000000001060000-0x000000000106FFFF</ServiceIDRange> -->
<!-- Default port 3260 = 0x0CBC -->
<ServiceID>0x0000000001060CBC</ServiceID>
</Application>
<Application>
<Name>Lustre</Name>
<!-- ServiceID = 0x000000000106XXXX where XXXX is socket "port number" -->
<!-- <ServiceIDRange>0x0000000001060000-0x000000000106FFFF</ServiceIDRange> -->
<!-- Default port 987 = 0x03DB -->
<ServiceID>0x00000000010603DB</ServiceID>
</Application>
<Application>
<Name>RDMA_Apps</Name>
<ServiceIDRange>0x0000000001000000-0x0000000001FFFFFF</ServiceIDRange>
</Application>
<!-- all the common networking protocols/applications -->
<Application>
<Name>Networking</Name>
<IncludeApplication>IPv4</IncludeApplication>
<IncludeApplication>IPv6</IncludeApplication>
<IncludeApplication>IPoIBCM</IncludeApplication>
<IncludeApplication>RDS</IncludeApplication>
</Application>
<!-- all the common storage protocols/applications -->
<Application>
<Name>Storage</Name>
<IncludeApplication>iSER</IncludeApplication>
<IncludeApplication>Lustre</IncludeApplication>
</Application>
<!-- all the common compute protocols/applications -->
<Application>
<Name>Compute</Name>
<IncludeApplication>VerbsMPI</IncludeApplication>
<IncludeApplication>PSM</IncludeApplication>
</Application>
<!-- default application used by VFs created by opafmvf tool --> <!--#SM_0_mt_enable#=-->
<Application> <!--#SM_0_mt_enable#=-->
<Name>Tenant_Apps</Name> <!--#SM_0_mt_enable#=-->
<IncludeApplication>Compute</IncludeApplication> <!--#SM_0_mt_enable#=-->
</Application> <!--#SM_0_mt_enable#=-->
<!--#SM_0_mt_enable#=-->
<!-- This is a catchall which can be used to identify all applications -->
<!-- which are not part of some other vFabric. -->
<Application>
<Name>AllOthers</Name>
<Select>UnmatchedServiceID</Select>
<Select>UnmatchedMGID</Select>
</Application>
</Applications>
<!-- Various Groups of Ports/Nodes which may be used in Virtual Fabrics -->
<!-- DeviceGroups defined here are available for use in all FM instances. -->
<!-- Additional DeviceGroups may be defined here or per FM instance. -->
<!-- DeviceGroups specified per FM instance will add to -->
<!-- instead of replace these DeviceGroup definitions. -->
<DeviceGroups>
<!-- Each DeviceGroup can have one or more Nodes/Ports (e.g. Devices). -->
<!-- These will be matched against PathRecord and Multicast SA queries -->
<!-- so that the returned SLID/DLID, PKey, SL, etc are appropriate for -->
<!-- the Virtual Fabric(VF) which contains the Device(s). -->
<!-- Devices in a DeviceGroup but not found in the fabric are ignored. -->
<!-- Every DeviceGroup must have a unique <Name> -->
<!-- The name must be unique among all DeviceGroup names within an -->
<!-- FM instance. -->
<!-- When defined at Common level must be unique within all instances. -->
<!-- The name is limited to 64 characters and is case sensitive. -->
<!-- Devices can be explicitly specified in the following ways in the -->
<!-- DeviceGroup section: -->
<!-- A SystemImageGUID: <SystemImageGUID>0x123567</SystemImageGUID> -->
<!-- selects all nodes and ports in the system -->
<!-- A NodeGUID: <NodeGUID>0x123567</NodeGUID> -->
<!-- selects all ports in the node (a FI or SW is a single node) -->
<!-- A PortGUID: <PortGUID>0x123567</PortGUID> -->
<!-- selects a specific port -->
<!-- A NodeDesc: <NodeDesc>Some Name</NodeDesc> -->
<!-- selects all nodes exactly matching given name -->
<!-- typically will match exactly one, but multiple nodes with -->
<!-- same NodeDesc is possible. -->
<!-- Wild card rules that can be used in NodeDesc specification: -->
<!-- * Wild card is 0 or more of any combination of: -->
<!-- (A-Z)(a-z)(0-9) "-" "," "=" "." "_" -->
<!-- ? Wild card is 0 or 1 of any combination of: -->
<!-- (A-Z)(a-z)(0-9) "-" "," "=" "." "_" -->
<!-- [##-##] can be used to specify a range of numbers -->
<!-- (ie: node[1-4] matches nodes named node1, node2, -->
<!-- node3, node4) -->
<!-- leading zeros may be specified and must match -->
<!-- (ie: node[06-10] matches nodes named node06, node07, -->
<!-- node08, node09, node10, but does not match node6) -->
<!-- more than one range can be specified -->
<!-- (ie: rack[1-2]node[01-02] matches nodes named -->
<!-- rack1node01, rack1node02, rack2node01, rack2node02 -->
<!-- :[##-##] can be used to specify a range of ports -->
<!-- (ie: switch:[2-4] would match node name "switch", -->
<!-- ports 2,3, and 4 -->
<!-- Wild card Examples: -->
<!-- <NodeDesc>SWITCH*</NodeDesc> -->
<!-- <NodeDesc>HFI?</NodeDesc> -->
<!-- <NodeDesc>HFI[1-4]</NodeDesc> -->
<!-- <NodeDesc>?SWITCH[0-1]</NodeDesc> -->
<!-- <NodeDesc>?SWITCH[0-1]:[2-3]</NodeDesc> -->
<!-- <NodeDesc>SWITCH</NodeDesc> -->
<!-- Devices can be generically specified in the following ways in the -->
<!-- DeviceGroup section: -->
<!-- All FIs: <NodeType>FI</NodeType> -->
<!-- All Switches: <NodeType>SW</NodeType> -->
<!-- The values above are case insensitive: FI, SW -->
<!-- Each of the above selects all ports on the selected nodes. -->
<!-- The above can be combined as desired in the same DeviceGroup. -->
<!-- Some special types of Devices can be generically specified in -->
<!-- the following ways in the DeviceGroup section: -->
<!-- All Devices: <Select>All</Select> -->
<!-- This FM Instance's Port: <Select>Self</Select> -->
<!-- All HFIs directly connected: <Select>HFIDirectConnect</Select> -->
<!-- Both HFI ports which are directly connected to each other -->
<!-- with no switch. A typical back to back configuration -->
<!-- All TFIs: <Select>TFIs</Select> -->
<!-- A TFI is a passive device e.g. storage unit or gateway -->
<!-- which reports a Device Management Agent capability -->
<!-- This DeviceGroup will select all ports on all TFI devices -->
<!-- All Switch Enhanced Port 0s: <Select>SWE0</Select> -->
<!-- All Switch Port 0 with Enhanced Port 0 in Capability Mask. -->
<!-- By definition will also include all Embedded SMs. -->
<!-- The values above are case insensitive: -->
<!-- All, Self, SWE0, HFIDirectConnect, TFIs -->
<!-- The above can be combined as desired in the same DeviceGroup. -->
<!-- In addition, a DeviceGroup can include another DeviceGroup via: -->
<!-- <IncludeGroup>mygroup</IncludeGroup> -->
<!-- This will include all the Devices in the given DeviceGroup. -->
<!-- It is valid to have more than 1 specification match the same device -->
<!-- in which case the device is only included in the DeviceGroup once. -->
<!-- Some predefined DeviceGroups follow. These are also a good set -->
<!-- of examples to cut/paste to make other site specific DeviceGroups: -->
<!-- All Nodes/Ports, can be used when Device specific VFs not needed -->
<DeviceGroup>
<Name>All</Name>
<Select>All</Select>
</DeviceGroup>
<!-- All Fabric Interfaces, includes HFIs and TFIs -->
<DeviceGroup>
<Name>AllFIs</Name>
<NodeType>FI</NodeType>
</DeviceGroup>
<DeviceGroup>
<Name>AllTFIs</Name>
<Select>TFIs</Select>
</DeviceGroup>
<!-- All ports on all Switches -->
<DeviceGroup>
<Name>AllSWs</Name>
<NodeType>SW</NodeType>
</DeviceGroup>
<!-- All Enhanced Port 0 ports on all Switches -->
<DeviceGroup>
<Name>AllSWE0s</Name>
<Select>SWE0</Select>
</DeviceGroup>
<!-- All End-Nodes including Enhanced Port 0 ports on all Switches -->
<DeviceGroup>
<Name>AllEndNodes</Name>
<IncludeGroup>AllFIs</IncludeGroup>
<IncludeGroup>AllSWE0s</IncludeGroup>
</DeviceGroup>
<!-- Both ports in an HFI connected to HFI configuration -->
<DeviceGroup>
<Name>HFIDirectConnect</Name>
<Select>HFIDirectConnect</Select>
</DeviceGroup>
<!-- All nodes which have MgmtAllowed set -->
<DeviceGroup>
<Name>AllMgmtAllowed</Name>
<Select>AllMgmtAllowed</Select>
</DeviceGroup>
<!-- Just the port running this FM Instance -->
<DeviceGroup>
<Name>Self</Name>
<Select>Self</Select>
</DeviceGroup>
<!-- Example using specific device selection -->
<DeviceGroup>
<Name>Example</Name>
<SystemImageGUID>0x123567812345678</SystemImageGUID>
<NodeGUID>0x123567812345678</NodeGUID>
<PortGUID>0x123567812345678</PortGUID>
<NodeDesc>Some Name</NodeDesc>
<IncludeGroup>AllSWE0s</IncludeGroup>
</DeviceGroup>
<!-- Group for all nodes matching wild carded NodeDesc -->
<DeviceGroup>
<Name>Rack1DG</Name>
<NodeDesc>*Rack1*</NodeDesc>
</DeviceGroup>
<!--#SM_0_mt_enable#=-->
<!-- DeviceGroups found in specified directory, added via opafmconfigpp --> <!--#SM_0_mt_enable#=-->
<!-- INCLUDE:DG_DIR=/etc/opa-fm/dgs --> <!--#SM_0_mt_enable#=-->
</DeviceGroups>
<!-- Quality of Service Configuration -->
<!-- QOSGroups defined here are available for use in all FM instances -->
<!-- If any QOSGroup is Enabled, all Enabled VirtualFabrics must -->
<!-- specify a <QOSGroup>. -->
<!-- Additional QOSGroups may be defined here or per FM instance. -->
<QOSGroups>
<!-- Every QOSGroup must have a unique <Name> -->
<!-- The name must be unique among all QOSGroup names within an -->
<!-- FM instance. -->
<!-- When defined at Common level, must be unique within all instances. -->
<!-- The name is limited to 64 characters and is case sensitive. -->
<!-- Enable: <Enable>0</Enable> -->
<!-- To access a QOSGroup within a VirtualFabric, the QOSGroup -->
<!-- Must be enabled. QOSGroups default to Disabled. -->
<!-- The following QOS parameters are supported. See VirtualFabrics for -->
<!-- more information. -->
<!-- High Priority: <HighPriority>0</HighPriority> -->
<!-- Bandwidth Allocation: <Bandwidth>100%</Bandwidth> -->
<!-- Packet Lifetime Multiplier: <PktLifeTimeMult>2</PktLifeTimeMult> -->
<!-- Base Service Level: <BaseSL>0</BaseSL> -->
<!-- Multicast Service Level: <MulticastSL>1</MulticastSL> -->
<!-- FlowControlDisable: <FlowControlDisable>0</FlowControlDisable> -->
<!-- Preemption Rank: <PreemptRank>0</PreemptRank> -->
<!-- HoqLife: <HoqLife>8ms</HoqLife> -->
<!--#SM_0_mt_enable#=-->
<!-- Example Low priority QOS configuration --> <!--#SM_0_mt_enable#=-->
<QOSGroup> <!--#SM_0_mt_enable#=-->
<Name>LowPriority</Name> <!--#SM_0_mt_enable#=-->
<Enable>1</Enable> <!--#SM_0_mt_enable#=-->
<!--<BaseSL>0</BaseSL> --> <!--#SM_0_mt_enable#=-->
</QOSGroup> <!--#SM_0_mt_enable#=-->
<!--#SM_0_mt_enable#=-->
<!-- Example High priority QOS configuration --> <!--#SM_0_mt_enable#=-->
<QOSGroup> <!--#SM_0_mt_enable#=-->
<Name>HighPriority</Name> <!--#SM_0_mt_enable#=-->
<Enable>0</Enable> <!--#SM_0_mt_enable#=-->
<HighPriority>1</HighPriority> <!--#SM_0_mt_enable#=-->
</QOSGroup> <!--#SM_0_mt_enable#=-->
<!--#SM_0_mt_enable#=-->
<!-- Example Networking QOS configuration --> <!--#SM_0_mt_enable#=-->
<QOSGroup> <!--#SM_0_mt_enable#=-->
<Name>Networking</Name> <!--#SM_0_mt_enable#=-->
<Enable>0</Enable> <!--#SM_0_mt_enable#=-->
<Bandwidth>10%</Bandwidth> <!--#SM_0_mt_enable#=-->
<FlowControlDisable>0</FlowControlDisable> <!--#SM_0_mt_enable#=-->
</QOSGroup> <!--#SM_0_mt_enable#=-->
<!--#SM_0_mt_enable#=-->
<!-- default QOS used by VFs created by opafmvf tool --> <!--#SM_0_mt_enable#=-->
<QOSGroup> <!--#SM_0_mt_enable#=-->
<Name>Tenant_QOS</Name> <!--#SM_0_mt_enable#=-->
<Enable>1</Enable> <!--#SM_0_mt_enable#=-->
</QOSGroup> <!--#SM_0_mt_enable#=-->
</QOSGroups>
<!-- Virtual Fabric Configuration -->
<!-- VirtualFabrics defined here are available for use in all FM instances -->
<!-- Additional VirtualFabrics may be defined here or per FM instance. -->
<!-- VirtualFabrics specified per FM instance will add to -->
<!-- instead of replace these VirtualFabric definitions. -->
<VirtualFabrics>
<!-- Each VirtualFabric (VF) is comprised of: -->
<!-- 1. one or more Groups of devices -->
<!-- 2. AND one or more sets of Applications -->
<!-- 3. AND administrator policies -->
<!-- The Virtual Fabric will control the configuration of Security for -->
<!-- the given set of Devices and Applications in the overall Fabric. -->
<!-- Default for Security is 0(Off). -->
<!-- The Applications and DeviceGroups are matched against PathRecord and-->
<!-- Multicast SA queries so that the returned SLID/DLID, PKey, SL, etc -->
<!-- are consistent with the policies established for the VirtualFabric. -->
<!-- Devices in a DeviceGroup but not found in the fabric are ignored. -->
<!-- Every VirtualFabric must have a unique <Name> -->
<!-- The name must be unique among all VirtualFabric names within an -->
<!-- FM instance. -->
<!-- When defined at Common level must be unique within all instances. -->
<!-- The name is limited to 64 characters and is case sensitive. -->
<!-- Devices are specified by DeviceGroup Name in the following ways in -->
<!-- the VirtualFabric section: -->
<!-- As Full Members: <Member>group_name</Member> -->
<!-- such devices may talk to any other Member or LimitedMember -->
<!-- As Limited Members: <LimitedMember>group_name</LimitedMember> -->
<!-- When Security is 1 (On), LimitedMembers are not permitted -->
<!-- to talk to other LimitedMembers. -->
<!-- However LimitedMembers can always talk to Members. -->
<!-- If Security is 0 (Off) LimitedMembers are treated the same -->
<!-- as Members -->
<!-- This allows the user to easily turn off Security for a -->
<!-- Virtual Fabric without changing the rest of the definition. -->
<!-- When Security is on, LimitedMembers will not be able to -->
<!-- join multicast groups in the VirtualFabric. -->
<!-- Member and LimitedMember can each be specified more than once per -->
<!-- VirtualFabric if desired. -->
<!-- If a Device is in both the Members and LimitedMembers DeviceGroups, -->
<!-- they will be treated as Members. -->
<!-- This allows All to be specified as a LimitedMember, then selected -->
<!-- Members can be specified. Hence insuring the VirtualFabric -->
<!-- includes All devices while allowing a limited set of Members. -->
<!-- Applications are specified by Application Name via: -->
<!-- <Application>application_name</Application> -->
<!-- Application can be specified more than once per VirtualFabric if -->
<!-- desired. -->
<!-- The following Administrator Policies and Controls can be specified: -->
<!-- Enable/Disable: <Enable>1</Enable> -->
<!-- When Disabled (0) the VirtualFabric is ignored. -->
<!-- This allows the user to easily disable a VirtualFabric -->
<!-- without deleting it's definition. -->
<!-- Security: <Security>1</Security> -->
<!-- When On (1) the FM will provide security within this VF -->
<!-- and between other VFs. -->
<!-- When On, LimitedMembers cannot talk to each other in the VF. -->
<!-- When Off (0) the FM is free to manage Routes and PKeys as -->
<!-- it chooses and there are no guarantees. -->
<!-- When Off (0) LimitedMembers can talk to each other in the VF.-->
<!-- Partition Key: <PKey>0x1234</PKey> -->
<!-- By default the FM will pick an available PKey. -->
<!-- However if desired a user selected PKey can be specified. -->
<!-- Specification may be necessary such that it is known apriori -->
<!-- for applications which do not use SA PathRecord queries, -->
<!-- such as MPIs which use non-OFA compliant mechanisms for job -->
<!-- startup. -->
<!-- The PKey is a 15 bit value, ranging from 0x1 to 0x7fff. -->
<!-- The FM will use the appropriate high bit based on the -->
<!-- Security and Member/LimitedMember status per device. -->
<!-- Max MTU: <MaxMTU>2048</MaxMTU> -->
<!-- Maximum MTU for SM to return in any PathRecord or -->
<!-- Multicast group for the VirtualFabric. -->
<!-- Actual values may be further reduced by Hardware -->
<!-- capabilities or if the PathRecord or Multicast group is -->
<!-- requested to have a smaller MTU. -->
<!-- However, SM will consider it an error to create a Multicast -->
<!-- group with MTU larger than that of the VirtualFabric. -->
<!-- Value should be one of 2048, 4096, 8192, 10240, or Unlimited -->
<!-- If not specified the default MaxMTU will be Unlimited. -->
<!-- Max Rate: <MaxRate>100g</MaxRate> -->
<!-- Maximum static rate for SM to return in any PathRecord or -->
<!-- Multicast group for the VirtualFabric. -->
<!-- Similar behaviors to MaxMTU. -->
<!-- Value should be one of 25g, 50g, 75g, 100g, or Unlimited. -->
<!-- If not specified the default MaxRate will be Unlimited. -->
<!-- Active/Standby: <Standby>0</Standby> -->
<!-- A Virtual Fabric in Standby cannot pass traffic. -->
<!-- The active/standby state of a Virtual Fabric can be -->
<!-- changed dynamically (without restarting the FM). -->
<!-- Defaults to active (0). -->
<!-- QOS settings -->
<!-- QOS Enable: <QOS>0</QOS> -->
<!-- 0=disable, 1=enable, if 0 the QOS settings are ignored -->
<!-- High Priority: <HighPriority>0</HighPriority> -->
<!-- If set to one, this indicates high priority traffic which -->
<!-- does not require any bandwidth limiting. This would -->
<!-- typically include management or control traffic which is low -->
<!-- bandwidth, but critical to process in a timely manner. -->
<!-- An example is PM traffic where there is no reason to -->
<!-- restrict bandwidth since it is low volume, but it needs to -->
<!-- be serviced at a high priority. -->
<!-- When priority is set to High, any bandwidth allocation is -->
<!-- ignored for this Virtual Fabric. -->
<!-- Bandwidth Allocation: <Bandwidth>100%</Bandwidth> -->
<!-- 0-100% This is the minimum percentage of bandwidth which -->
<!-- should be given to this Virtual Fabric relative to other low -->
<!-- priority Virtual Fabrics. When there is no contention, this -->
<!-- Virtual Fabric could get more than this amount. -->
<!-- If unspecified, the SM evenly distributes remaining -->
<!-- bandwidth among all the Virtual Fabrics with unspecified -->
<!-- Bandwidth. -->
<!-- Total Bandwidth cannot exceed 95% for enabled Virtual -->
<!-- Fabrics with QoS enabled when there is at least 1 -->
<!-- enabled VF with QoS disabled. -->
<!-- Total Bandwidth cannot exceed 100% for enabled Virtual -->
<!-- Fabrics. VFs with QoS disabled share at least 5% BW and -->
<!-- all QoS enabled VFs require at least 1% BW. -->
<!-- If HighPriority is specified, this field is ignored. -->
<!-- Packet Lifetime Multiplier: <PktLifeTimeMult>2</PktLifeTimeMult> -->
<!-- Amount to multiply PktLifeTime by when reported by SM for -->
<!-- this Virtual Fabric. -->
<!-- This can permit PktLifeTime in PathRecords (and hence end to -->
<!-- end timeouts) to account for delays in Low Priority Virtual -->
<!-- Fabrics which are given low bandwidth allocations. -->
<!-- Value will be rounded up to the next power of 2. -->
<!-- 0 is invalid, default is 1 -->
<!-- Service Levels: -->
<!-- Up to 2 service levels can be specified per VF: BaseSL, -->
<!-- and MulticastSL. If the configuration does not include -->
<!-- either of these service levels, the SM will allocate -->
<!-- unique SLs from the unused SLs. The SM will only allocate -->
<!-- SLs required by the VF. If QoS is disabled on the VF, any -->
<!-- configured SLs will be ignored. All QoS disabled VFs share -->
<!-- the same SLs. -->
<!-- Base Service Level: <BaseSL>0</BaseSL> -->
<!-- Used for unicast traffic, and multicast traffic -->
<!-- (if MulticastSL is not specified). -->
<!-- Valid values: 0-15 -->
<!-- Multicast Service Level: <MulticastSL>1</MulticastSL> -->
<!-- Used to isolate Multicast traffic from other traffic. Some -->
<!-- routing algorithms may require a separate MulticastSL for -->
<!-- VFs with multicast groups. Any SL used to isolate Multicast -->
<!-- cannot be used as a BaseSL in any VF. -->
<!-- Valid values: 0-15 -->
<!-- FlowControlDisable: <FlowControlDisable>0</FlowControlDisable> -->
<!-- By default, the fabric uses link level flow control. -->
<!-- When link layer flow control has been disabled, packets will -->
<!-- be discarded by that VL when there are insufficient credits. -->
<!-- Disabling flow control for a vFabric can affect traffic on -->
<!-- VLs shared with other vFabrics, so the user is generally -->
<!-- advised not to disable flow control without care. -->
<!-- Preemption Rank: <PreemptRank>0</PreemptRank> -->
<!-- See SM Common / Instance - Fabric Programming for detailed -->
<!-- description of preemption configuration. -->
<!-- Preemption capability can be configured per Virtual Fabric -->
<!-- in terms of a rank, which is a value ranging from 0 to 127. -->
<!-- Rank 0 indicates that this VF cannot preempt nor be -->
<!-- preempted. Ranks of a higher value can preempt ranks of -->
<!-- a lower value (except ranks of 0) -->
<!-- If QOS is disabled then preemption is disabled and the rank -->
<!-- is 0. -->
<!-- HoqLife: -->
<!-- This timeout is specified per SM instance and may be -->
<!-- overridden per Virtual Fabric. See SM instance -->
<!-- representation for detailed configuration options. If not -->
<!-- specified per Virtual Fabric, default to the SM instance -->
<!-- values -->
<!-- Alternatively, a VirtualFabric can specify a QOSGroup instead of -->
<!-- individual QOS parameters. -->
<!-- QOSGroup: <QOSGroup>LowPriority</QOSGroup> -->
<!-- Specifies the name of the QOSGroup used by this VF. -->
<!-- If any QOSGroup is enabled, all VirtualFabrics must -->
<!-- specify a QOSGroup and no VirtualFabric may specify -->
<!-- any other QOS parameter. -->
<!-- If a VirtualFabric specifies a QOSGroup, it must -->
<!-- also specify a PKey. -->
<!-- OPA requires a "Admin" partition. -->
<!-- To meet this requirement there must be an enabled VirtualFabric: -->
<!-- * with a PKey of 0x7fff (or 0xffff) -->
<!-- * it must include the SA Application -->
<!-- * it must be the only enabled VF which includes the SA Application -->
<!-- * it must have All as a Member or LimitedMember -->
<!-- * as desired it may have additional Applications -->
<!-- * as desired it may have additional DeviceGroups as Member -->
<!-- * all other VF policies (Security, MTU ...) may be set as desired -->
<!-- Some predefined VirtualFabrics follow. These are also a good set -->
<!-- of examples to cut/paste to make other site specific VFs: -->
<!-- An example networking VF. When IPoIB runs, it will use the -->
<!-- 1st PKey on the given Port for the default (ib0 ...) network device -->
<!-- Hence its best to place the Networking/IPoIB VF 1st. -->
<!-- For additional IPoIB subnets which a node participates in, the PKey -->
<!-- needs to be manually specified to IPoIB as a "ipoib vlan" -->
<VirtualFabric>
<Name>Networking</Name>
<Enable>0</Enable>
<PKey>0x0002</PKey>
<Security>1</Security>
<QOS>1</QOS> <!--#SM_0_mt_enable#!-->
<Bandwidth>10%</Bandwidth> <!--#SM_0_mt_enable#!-->
<FlowControlDisable>0</FlowControlDisable> <!--#SM_0_mt_enable#!-->
<QOSGroup>Networking</QOSGroup> <!--#SM_0_mt_enable#=-->
<Member>All</Member> <!-- can use a smaller DeviceGroup if desired -->
<!-- Since IPoIB uses Multicast, LimitedMembers wouldn't make sense -->
<Application>Networking</Application>
</VirtualFabric>
<!--#SM_0_mt_enable#!-->
<!-- A default VF with all Devices and Applications --> <!--#SM_0_mt_enable#!-->
<!-- This is the default Virtual Fabric config --> <!--#SM_0_mt_enable#!-->
<VirtualFabric> <!--#SM_0_mt_enable#!-->
<Name>Default</Name> <!--#SM_0_mt_enable#!-->
<Enable>1</Enable> <!--#SM_0_mt_enable#!-->
<PKey>0x0001</PKey> <!--#SM_0_mt_enable#!-->
<Security>0</Security> <!--#SM_0_mt_enable#!-->
<QOS>0</QOS> <!--#SM_0_mt_enable#!-->
<Member>All</Member> <!--#SM_0_mt_enable#!-->
<Application>AllOthers</Application> <!--#SM_0_mt_enable#!-->
<MaxMTU>Unlimited</MaxMTU> <!--#SM_0_mt_enable#!-->
<MaxRate>Unlimited</MaxRate> <!--#SM_0_mt_enable#!-->
</VirtualFabric> <!--#SM_0_mt_enable#!-->
<!-- The Admin partition -->
<!-- This gives non-SMs limited privileges -->
<VirtualFabric>
<Name>Admin</Name>
<Enable>1</Enable>
<PKey>0x7fff</PKey> <!-- must be OPA Management PKey -->
<Security>1</Security>
<QOS>0</QOS> <!--#SM_0_mt_enable#!-->
<!-- <HighPriority>1</HighPriority> can make admin High priority --> <!--#SM_0_mt_enable#!-->
<QOSGroup>LowPriority</QOSGroup> <!--#SM_0_mt_enable#=-->
<!-- <QOSGroup>HighPriority</QOSGroup> can make admin High priority --> <!--#SM_0_mt_enable#=-->
<Member>HFIDirectConnect</Member> <!-- Both HFIs directly connected -->
<Member>AllMgmtAllowed</Member>
<Member>AllSWE0s</Member> <!-- so chassis CMU can access leafs & spines-->
<!-- <Member>AdminNodes</Member> add more FF/admin nodes if desired -->
<LimitedMember>All</LimitedMember>
<Application>SA</Application>
<Application>PA</Application>
<Application>PM</Application>
<!-- add other applications if desired -->
<!-- <MaxMTU>2048</MaxMTU> can reduce MTU, SA only uses MADs -->
</VirtualFabric>
<!-- VirtualFabrics found in specified directory, added via opafmconfigpp --> <!--#SM_0_mt_enable#=-->
<!-- INCLUDE:VF_DIR=/etc/opa-fm/vfs --> <!--#SM_0_mt_enable#=-->
<!-- This vFabric can be used as a simple catchall. When none of the --> <!--#SM_0_mt_enable#!-->
<!-- other enabled vFabrics include the "All" Application, this will --> <!--#SM_0_mt_enable#!-->
<!-- pick up the remaining applications. This is also very useful when --> <!--#SM_0_mt_enable#!-->
<!-- uncertain about how to identify applications of interest such as --> <!--#SM_0_mt_enable#!-->
<!-- storage devices or file systems with undocumented Service IDs --> <!--#SM_0_mt_enable#!-->
<VirtualFabric> <!--#SM_0_mt_enable#!-->
<Name>AllOthers</Name> <!--#SM_0_mt_enable#!-->
<Enable>0</Enable> <!--#SM_0_mt_enable#!-->
<Security>1</Security> <!--#SM_0_mt_enable#!-->
<QOS>1</QOS> <!--#SM_0_mt_enable#!-->
<Bandwidth>20%</Bandwidth> <!--#SM_0_mt_enable#!-->
<Member>All</Member> <!-- can be reduced in scope if desired --> <!--#SM_0_mt_enable#!-->
<Application>AllOthers</Application> <!--#SM_0_mt_enable#!-->
</VirtualFabric> <!--#SM_0_mt_enable#!-->
<!--#SM_0_mt_enable#!-->
<!-- a template for a storage Virtual Fabric --> <!--#SM_0_mt_enable#!-->
<!-- This vFabric can be used for Lustre traffic. The PKey field should --> <!--#SM_0_mt_enable#!-->
<!-- be specified to map Lustre traffic. The CMA in OFA currently --> <!--#SM_0_mt_enable#!-->
<!-- specifies the PKey and ServiceID in the path record query. The CMA --> <!--#SM_0_mt_enable#!-->
<!-- requires that the PKey match the PKey for networking traffic --> <!--#SM_0_mt_enable#!-->
<!-- (IPoIB). When setting up this vFabric the PKey should be configured --> <!--#SM_0_mt_enable#!-->
<!-- to be identical to the PKey used for IPoIB. For example if the --> <!--#SM_0_mt_enable#!-->
<!-- Default VF is used for IPoIB, the PKey of the Default VF and the --> <!--#SM_0_mt_enable#!-->
<!-- PKey of the Storage VF should match. In addition, either the --> <!--#SM_0_mt_enable#!-->
<!-- <Security> should be disabled OR the VF should be changed from --> <!--#SM_0_mt_enable#!-->
<!-- <LimitedMember> to <Member>. --> <!--#SM_0_mt_enable#!-->
<VirtualFabric> <!--#SM_0_mt_enable#!-->
<Name>Storage</Name> <!--#SM_0_mt_enable#!-->
<Enable>0</Enable> <!--#SM_0_mt_enable#!-->
<Security>1</Security> <!--#SM_0_mt_enable#!-->
<QOS>1</QOS> <!--#SM_0_mt_enable#!-->
<Bandwidth>20%</Bandwidth> <!--#SM_0_mt_enable#!-->
<!-- <Member>group_with_storage_targets</Member> --> <!--#SM_0_mt_enable#!-->
<LimitedMember>All</LimitedMember> <!--#SM_0_mt_enable#!-->
<Application>Storage</Application> <!--#SM_0_mt_enable#!-->
<!-- <PreemptRank>1</PreemptRank> others can preempt this vf --> <!--#SM_0_mt_enable#!-->
</VirtualFabric> <!--#SM_0_mt_enable#!-->
<!--#SM_0_mt_enable#!-->
<!-- a template for a compute Virtual Fabric --> <!--#SM_0_mt_enable#!-->
<!-- QOS is configured for utilization of 70% of the bandwidth for MPI --> <!--#SM_0_mt_enable#!-->
<VirtualFabric> <!--#SM_0_mt_enable#!-->
<Name>Compute</Name> <!--#SM_0_mt_enable#!-->
<Enable>0</Enable> <!--#SM_0_mt_enable#!-->
<PKey>0x0003</PKey> <!-- manually specify so can supply to MPI --> <!--#SM_0_mt_enable#!-->
<Security>1</Security> <!--#SM_0_mt_enable#!-->
<QOS>1</QOS> <!--#SM_0_mt_enable#!-->
<Bandwidth>70%</Bandwidth> <!--#SM_0_mt_enable#!-->
<!-- <Member>compute_nodes</Member> --> <!--#SM_0_mt_enable#!-->
<Member>All</Member> <!-- can be reduced in scope if desired --> <!--#SM_0_mt_enable#!-->
<!-- if using the PSM vFabric examples below, use VerbsMPI not Compute --> <!--#SM_0_mt_enable#!-->
<Application>Compute</Application> <!--#SM_0_mt_enable#!-->
<!-- <Application>VerbsMPI</Application> --> <!--#SM_0_mt_enable#!-->
<!-- <PreemptRank>127</PreemptRank> can preempt all others --> <!--#SM_0_mt_enable#!-->
<!-- <HoqLife>8ms</HoqLife> Override SM instance value --> <!--#SM_0_mt_enable#!-->
</VirtualFabric> <!--#SM_0_mt_enable#!-->
<!--#SM_0_mt_enable#!-->
<!-- when using Intel OmniPath Fabric HFIs with PSM technology,--> <!--#SM_0_mt_enable#!-->
<!-- there is no need to configure PKey nor SL. FM can freely select --> <!--#SM_0_mt_enable#!-->
<!-- since PSM will query the SA using the PSM ServiceIds when --> <!--#SM_0_mt_enable#!-->
<!-- PSM_PATH_REC="opp" --> <!--#SM_0_mt_enable#!-->
<VirtualFabric> <!--#SM_0_mt_enable#!-->
<Name>PSM_Compute</Name> <!--#SM_0_mt_enable#!-->
<Enable>0</Enable> <!--#SM_0_mt_enable#!-->
<Security>1</Security> <!--#SM_0_mt_enable#!-->
<QOS>1</QOS> <!--#SM_0_mt_enable#!-->
<Bandwidth>70%</Bandwidth> <!--#SM_0_mt_enable#!-->
<!-- <Member>compute_nodes</Member> --> <!--#SM_0_mt_enable#!-->
<Member>All</Member> <!-- can be reduced in scope if desired --> <!--#SM_0_mt_enable#!-->
<Application>PSM</Application> <!--#SM_0_mt_enable#!-->
</VirtualFabric> <!--#SM_0_mt_enable#!-->
<!--#SM_0_mt_enable#!-->
<!-- when using PSM, Control and Data traffic can be separated into --> <!--#SM_0_mt_enable#!-->
<!-- different vFabrics. --> <!--#SM_0_mt_enable#!-->
<!-- To do this, PSM must be run with PSM_PATH_REC="opp" --> <!--#SM_0_mt_enable#!-->
<!-- Then enable these two VFs instead of the MPI Compute ones above --> <!--#SM_0_mt_enable#!-->
<VirtualFabric> <!--#SM_0_mt_enable#!-->
<Name>PSM_Compute_Control</Name> <!--#SM_0_mt_enable#!-->
<Enable>0</Enable> <!--#SM_0_mt_enable#!-->
<Security>1</Security> <!--#SM_0_mt_enable#!-->
<QOS>1</QOS> <!--#SM_0_mt_enable#!-->
<HighPriority>1</HighPriority> <!-- admin traffic is High priority --> <!--#SM_0_mt_enable#!-->
<!-- <Member>compute_nodes</Member> --> <!--#SM_0_mt_enable#!-->
<Member>All</Member> <!-- can be reduced in scope if desired --> <!--#SM_0_mt_enable#!-->
<Application>PSM_Control</Application> <!--#SM_0_mt_enable#!-->
</VirtualFabric> <!--#SM_0_mt_enable#!-->
<!--#SM_0_mt_enable#!-->
<VirtualFabric> <!--#SM_0_mt_enable#!-->
<Name>PSM_Compute_Data</Name> <!--#SM_0_mt_enable#!-->
<Enable>0</Enable> <!--#SM_0_mt_enable#!-->
<Security>1</Security> <!--#SM_0_mt_enable#!-->
<QOS>1</QOS> <!--#SM_0_mt_enable#!-->
<Bandwidth>70%</Bandwidth> <!--#SM_0_mt_enable#!-->
<!-- <Member>compute_nodes</Member> --> <!--#SM_0_mt_enable#!-->
<Member>All</Member> <!-- can be reduced in scope if desired --> <!--#SM_0_mt_enable#!-->
<Application>PSM_Data</Application> <!--#SM_0_mt_enable#!-->
</VirtualFabric> <!--#SM_0_mt_enable#!-->
</VirtualFabrics>
<!-- PM Port Group Configuration -->
<!-- PM Port Groups allow the PM to gather and consolidate statistics for -->
<!-- the specified set of devices. In addition, the PM will always have -->
<!-- the All, HFIs and SWs groups. -->
<!-- PM Port Groups defined here are available for use in all FM instances -->
<!-- Additional PmPortGroups may be defined here or per FM instance. -->
<!-- PmPortGroups specified per FM instance will add to -->
<!-- instead of replace these PmPortGroup definitions. -->
<PmPortGroups>
<!-- Each PMPortGroup is comprised of: -->
<!-- 1. a name -->
<!-- 2. AND one or more sets of DeviceGroups to be monitored -->
<!-- 3. AND an enable/disable flag -->
<!-- All ports providing a Device Management Agent, typically IO devices -->
<PmPortGroup>
<Name>TFIs</Name>
<Monitor>AllTFIs</Monitor>
<Enable>0</Enable>
</PmPortGroup>
<!-- All ports on Fabric Interfaces, includes HFIs and TFIs -->
<PmPortGroup>
<Name>AllFIs</Name>
<Monitor>AllFIs</Monitor>
<Enable>0</Enable>
</PmPortGroup>
<!-- All ports in rack 1 as per DG -->
<PmPortGroup>
<Name>Rack1PG</Name>
<Monitor>Rack1DG</Monitor>
<Enable>0</Enable>
</PmPortGroup>
</PmPortGroups>
<!-- Shared Common config, applies to all components: SM, PM and FE -->
<!-- Most of the parameters below can also be set per component if needed -->
<Shared>
<!-- Configure maximum number of times an FM component can be restarted -->
<!-- after running less then StartupStableWait minutes before terminating the opafm service. -->
<StartupRetries>5</StartupRetries>
<!-- Amount of time in minutes before an instance is considered -->
<!-- successfully started and stable. -->
<StartupStableWait>10</StartupStableWait>
<!-- Max FI Ports, estimates switches assuming optimal Fat Tree. -->
<!-- Increase if non-optimal Fat Tree. -->
<!-- For ESM this will be automatically adjusted to ESM maximum -->
<SubnetSize>9216</SubnetSize> <!--SUBNET_SIZE:dec-->
<!-- Core file generation options to aid debug of Host FM crashes -->
<!-- Max core size in bytes or unlimited, Suffix of K, M or G should -->
<!-- be used to define larger limits. -->
<!-- values less than 8192 are treated as Megabytes -->
<!-- This sets the linux core dump soft ulimit for the FM. Hard ulimit -->
<!-- for root user on system must be appropriately set to permit this. -->
<!-- Default CoreDumpLimit is 10 GB -->
<CoreDumpLimit>10G</CoreDumpLimit>
<!-- Directory for Host FM core files -->
<!-- Actual core filenames will be controlled by linux kernel config. -->
<!-- The parent directory (/var/crash in default) must be pre-created. -->
<CoreDumpDir>/var/crash/opafm</CoreDumpDir>
<!-- Priority and Elevated Priority control failover for SM, PM. -->
<!-- Priority is used during initial negotiation, higher Priority wins. -->
<!-- ElevatedPriority is assumed by winning master, this can prevent -->
<!-- fallback when previous master comes back on line. -->
<Priority>0</Priority> <!-- 0 to 15, higher wins -->
<ElevatedPriority>0</ElevatedPriority> <!-- 0 to 15, higher wins -->
<!-- Sets log level option for SM, PM and FE -->
<!-- 0 = disable vast majority of logging output -->
<!-- 1 = fatal, error, warn (syslog CRIT, ERR, WARN)-->
<!-- 2 = +notice, progress (syslog NOTICE, INFO) -->
<!-- 3 = +INFO (syslog DEBUG) -->
<!-- 4 = +VERBOSE and some packet data (syslog DEBUG) -->
<!-- 5 = debug1 and debug2 trace info (syslog DEBUG) -->
<!-- 6 = debug3 and debug4 trace info (syslog DEBUG) -->
<!-- 7 = +function trace info (syslog DEBUG) -->
<!-- For ESM corresponding Chassis Logging must also be enabled -->
<!-- and Sm config applies to all managers. -->
<LogLevel>2</LogLevel>
<!-- Sets log output location for SM, PM and FE -->
<!-- By default log output is done via syslog. However if a LogFile -->
<!-- is specified, logging will be done to the given file. -->
<!-- LogMode further controls logging -->
<!-- ESM does not support LogFile -->
<!-- <LogFile>/var/log/fm.log</LogFile> --> <!-- log for all instances -->
<!-- Controls mode for logging by SM, PM and FE -->
<!-- low 2 bits control logging as follows: -->
<!-- Low Bit (0/1): -->
<!-- 0 - use normal logging levels -->
<!-- 1 - logging is quieted by downgrading the majority of -->
<!-- fatal, error, warn and progress log messages to level -->
<!-- 3 (INFO) and only outputting user actionable events when -->
<!-- LogLevel is 1 or 2. -->
<!-- Next Bit (0/2) (only affects logging when LogFile specified): -->
<!-- 0 - user actionable events go to syslog and LogFile -->
<!-- 2 - when LogFile specified, nothing goes to syslog -->
<!-- ESM does not support LogMode -->
<LogMode>0</LogMode> <!--SYSLOG_MODE:dec-->
<!-- Controls the Syslog Facility for SM, PM and FE -->
<!-- Can be: auth, authpriv, cron, daemon, ftp, kern, local0-local7, -->
<!-- lpr, mail, news, syslog, user, or uucp -->
<!-- ESM does not support SyslogFacility, select via chassis Logging -->
<SyslogFacility>local6</SyslogFacility>
<!-- OpenSSL FE network security parameters -->
<SslSecurityEnable>1</SslSecurityEnable> <!--FE_0_ssl_security_enable:dec==1-->
<SslSecurityDir>/usr/local/ssl/opafm</SslSecurityDir>
<SslSecurityFmCertificate>fm_cert.pem</SslSecurityFmCertificate>
<SslSecurityFmPrivateKey>fm_key.pem</SslSecurityFmPrivateKey>
<SslSecurityFmCaCertificate>fm_ca_cert.pem</SslSecurityFmCaCertificate>
<SslSecurityFmCertChainDepth>1</SslSecurityFmCertChainDepth>
<SslSecurityFmDHParameters>fm_dh_parms.pem</SslSecurityFmDHParameters>
<SslSecurityFmCaCRLEnable>0</SslSecurityFmCaCRLEnable>
<SslSecurityFmCaCRL>fm_ca_crl.pem</SslSecurityFmCaCRL>
<!-- Additional parameters for debug/development use -->
<Debug>0</Debug> <!-- debug mode for SM, PM and FE -->
<RmppDebug>0</RmppDebug> <!-- RMPP debug messages for SA, PM and FE -->
<!-- Alternative to use of LogLevel. Use of LogLevel recommended. -->
<!-- For each subsystem there can be a LogMask. The mask selects -->
<!-- severities of log messages to enable: -->
<!-- 0x1=fatal, 0x2=actionable error, 0x4=actionable warning, -->
<!-- 0x8=actionable notice, 0x10=actionable info, 0x20=error, 0x40=warn, -->
<!-- 0x80=notice, 0x100=progress, 0x200=info, 0x400=verbose, 0x800=data, -->
<!-- 0x1000=debug1, 0x2000=debug2, 0x4000=debug3, 0x8000=debug4 -->
<!-- 0x10000=func call, 0x20000=func args, 0x40000=func exit, -->
<!-- For Host SM, the Linux syslog service will need to have an -->
<!-- appropriate level of logging enabled. -->
<!-- For ESM corresponding Chassis Logging must also be enabled -->
<!-- and Sm config applies to all managers. -->
<!-- <CS_LogMask>0x00000000</CS_LogMask> -->
<!-- <MAI_LogMask>0x000001ff</MAI_LogMask> -->
<!-- <CAL_LogMask>0x000001ff</CAL_LogMask> -->
<!-- <DVR_LogMask>0x000001ff</DVR_LogMask> -->
<!-- <IF3_LogMask>0x000001ff</IF3_LogMask> -->
<!-- <SM_LogMask>0x000001ff</SM_LogMask> -->
<!-- <SA_LogMask>0x000001ff</SA_LogMask> -->
<!-- <PM_LogMask>0x000001ff</PM_LogMask> -->
<!-- <PA_LogMask>0x000001ff</PA_LogMask> -->
<!-- <FE_LogMask>0x000001ff</FE_LogMask> -->
<!-- <APP_LogMask>0x000001ff</APP_LogMask> -->
<!-- Controls the Configuration Consistency Check for SM, and PM -->
<!-- Setting can be completely disabled, or can be set to take action -->
<!-- by deactivating Standby SM or PM if configuration does not -->
<!-- pass the consistency check criteria. The default level is 2 -->
<!-- 1 = enable Configuration Consistency Checking without taking action -->
<!-- only logs a message when a consistency mismatch is detected -->
<!-- this is a debug option not recommended for typical use -->
<!-- 2 = enable Configuration Consistency Checking and take action -->
<!-- (log message and move standby to inactive state) -->
<!-- This parameter cannot be overridden in the SM or PM section. -->
<!-- <ConfigConsistencyCheckLevel>2</ConfigConsistencyCheckLevel> -->
</Shared>
<!-- Common SM (Subnet Manager) attributes -->
<Sm>
<!-- ESM does not support Start via XML configuration. Use CLI commands -->
<Start>1</Start> <!-- default SM startup for all instances -->
<!-- SM restart parameters can be configured separately; overrides Common.Shared settings -->
<!-- <StartupRetries>5</StartupRetries> -->
<!-- <StartupStableWait>10</StartupStableWait> -->
<!-- *************** SM Redundancy **************************** -->
<!-- MasterPingInterval is the interval secondary SM pings master. -->
<!-- Ping must fail MasterPingMaxFail times before secondary takes over. -->
<!-- Secondary SMs will synchronize their fabric database with the -->
<!-- master at DbSyncInterval -->
<MasterPingInterval>5</MasterPingInterval> <!-- in seconds --> <!--SM_0_master_ping_interval:dec-->
<MasterPingMaxFail>3</MasterPingMaxFail> <!--SM_0_master_ping_max_fail:dec-->
<DbSyncInterval>15</DbSyncInterval> <!-- in minutes, 0-> off --> <!--SM_0_dbsync_interval:dec-->
<!-- ********************* Fabric Routing **************************** -->
<!-- The following Routing Algorithms are supported -->
<!-- shortestpath - pick shortest path and balance lids on ISLs -->
<!-- fattree - A variation of shortestpath with better balancing -->
<!-- and improved SM performance on fat tree-like fabrics. -->
<!-- See section <FatTreeTopology> below. -->
<!-- dgshortestpath - A variation of shortestpath that uses the -->
<!-- RoutingOrder parameter to control the order in which -->
<!-- switch egress ports are assigned to LIDs being routed -->
<!-- through the fabric. This can provide a better balance -->
<!-- of traffic through fabrics with multiple types of end -->
<!-- nodes. -->
<!-- See the <DGShortestPathTopology> section, below, for -->
<!-- more information. -->
<!-- dor - Dimension ordered routing for use with mesh and torus -->
<!-- topologies cabled in port-to-dimension order. -->
<!-- See the <MeshTorusTopology> section below for more -->
<!-- information. (Intel Technical Preview) -->
<!-- hypercube - A variation of dg shortest path for enhanced -->
<!-- hypercube and mesh topologies. See section -->
<!-- <HypercubeTopology> below. (Supported via 3rd parties) -->
<RoutingAlgorithm>shortestpath</RoutingAlgorithm>
<!-- SpineFirstRouting - An option to avoid credit loops in complex -->
<!-- fabrics using Intel Switches. -->
<!-- Given equal length routes, this option routes through -->
<!-- director class switches spine first. This avoids -->
<!-- credit loops caused by routing via edge/leaf switches -->
<!-- instead of spines. -->
<SpineFirstRouting>1</SpineFirstRouting> <!--SM_0_spine_first_routing:dec-->
<!-- LID Mask Control: The LMC parameter provides a method for assigning multiple -->
<!-- LIDs to a single physical port, allowing the SM to configure the fabric with -->
<!-- multiple routes between each end node port, it further helps applications to -->
<!-- load balance traffic. This permits selected applications (such as MPIs using -->
<!-- Intel(R) PSM) to optimize performance and/or resiliency by using dispersive -->
<!-- routing. Default 0 assigns 1 LID per HFI. LMC is used for Failover/Redundant -->
<!-- Routing and for Dispersive Routing. -->
<Lmc>0</Lmc> <!-- assign 2^lmc LIDs to all FIs (Lmc can be 0-7) --> <!--SM_0_lmc:dec-->
<!-- LID Mask Control for Switch Port 0: Lmc for LID assignment to Switches with -->
<!-- an Enhanced Port 0 capability. LmcE0 and Lmc can be used for Failover/Redundant -->
<!-- Routing especially when in-band ULPs (such as IPoIB) are run on enhanced port 0 -->
<!-- of switch. LmcE0 cannot be used to enable/control Dispersive Routing, as its -->
<!-- applicable only to hosts -->
<LmcE0>0</LmcE0> <!-- assign 2^lmce0 LIDs to all Enhanced SW port 0 --> <!--SM_0_lmc_e0:dec-->
<ForceRebalance>0</ForceRebalance>
<!-- Toggle to force rebalancing routing every change -->
<!-- ******************** Fat Tree Topology **************************** -->
<!-- When the RoutingAlgorithm is set to fattree, the following section -->
<!-- is used to configure fat tree parameters. -->
<!-- FatTreeTopology: -->
<!-- To properly handle routing decisions, the SM needs to understand -->
<!-- some fabric topology information. Specifically, how many tiers -->
<!-- are in the fat tree and which tier a switch belongs to. This is -->
<!-- used to balance the tree and determine which links are up/down -->
<!-- for deadlock avoidance. -->
<!-- If all FIs are on the same tier, the SM can easily determine the -->
<!-- fat tree topology and tier a given switch resides in. If they -->
<!-- are not, a list of CoreSwitches will be used to identify the -->
<!-- topology. It is a good practice to specify the CoreSwitches -->
<!-- group explicitly and disable the FIsOnSameTier config, this will -->
<!-- determine the proper layout of the fabric in the event that some -->
<!-- of the HFIs are offline. -->
<FatTreeTopology>
<!-- The number of tiers in the fat tree. -->
<TierCount>3</TierCount>
<!-- Fabric topology will be discovered using information that all -->
<!-- HFIs are on the same tier in the fat tree. -->
<FIsOnSameTier>1</FIsOnSameTier>
<!-- Fabric topology will be discovered based on the location of the -->
<!-- core/root switches. The following must be setup if the HFIs are -->
<!-- not on the same tier. It's also a good practice to use the core -->
<!-- switches group to discover the fabric topology (in the event -->
<!-- that HFIs are offline). Note, FIsOnSameTier should be set to -->
<!-- zero when using the CoreSwitches discovery method. -->
<!-- <CoreSwitches>core_device_group</CoreSwitches> -->
<!-- Nodes may be specified for exclusion from initial round-robin -->
<!-- to give better route balancing of remaining nodes. -->
<!-- This may be useful in asymmetric fat trees or to initially -->
<!-- balance across compute nodes in the tree. -->
<!-- <RouteLast>hfi_device_group</RouteLast> -->
<!-- The following can be enabled to setup routing with a simple -->
<!-- round robin. Paths are selected without offsetting the start -->
<!-- such that the first HFI on a switch is routed through the first -->
<!-- ISL on the same tier, the second HFI on the second ISL, etc. in -->
<!-- a pass through type assignment. -->
<PassThrough>0</PassThrough>
<!-- For 3-tier fat trees, converge routes at core to get optimal -->
<!-- balance when down routing. -->
<Converge>0</Converge>
</FatTreeTopology>
<!-- **************** DG ShortestPath Topology ************************* -->
<!-- When the routing algorithm is set to "dgshortestpath" the following -->
<!-- section is used to configure the algorithm. -->
<!-- Overall, "dgshortestpath" routing is a form of "Min Hop" or -->
<!-- "Shortestpath" routing, except you can control the order in which -->
<!-- routes to end nodes are assigned. This can be used to ensure -->
<!-- diversity of routing within groups of devices as well as the entire -->
<!-- fabric overall. End nodes that are not members of any listed groups -->
<!-- will be routed last. -->
<DGShortestPathTopology>
<!-- RoutingOrder lists the device groups in the order they should -->
<!-- be handled. Each device group must have been declared in the -->
<!-- DeviceGroups section. -->
<!-- <RoutingOrder> -->
<!-- <DeviceGroup>Compute</DeviceGroup> -->
<!-- <DeviceGroup>All</DeviceGroup> -->
<!-- <DeviceGroup>Storage</DeviceGroup> -->
<!-- </RoutingOrder> -->
</DGShortestPathTopology>
<!-- **************** Mesh/Torus Topology **************************** -->
<!-- When the RoutingAlgorithm is set to dor, the following section is -->
<!-- to configure Mesh/Torus parameters. -->
<!-- MeshTorusTopology: -->
<!-- To properly handle fabric disruptions or installation mistakes -->
<!-- the SM needs to understand which switch ports will be used for -->
<!-- ISLs and which dimension each ISL is associated with. -->
<!-- The fabric must be constructed with all ISL connections in a -->
<!-- given dimension using consistent port numbers on each switch. -->
<!-- Also each dimension may be toroidal or non-toroidal. -->
<!-- For non-toroidal dimensions, the extra switch ports on the -->
<!-- edges of the mesh may be used for additional CAs. If the -->
<!-- non-toroidal dimension is of length 2, the same port can be -->
<!-- used on either end of the link. -->
<!-- The following Policies and Controls can be specified: -->
<!-- Dimension: -->
<!-- Port pair: <PortPair>i,j</PortPair> -->
<!-- The ports on neighbor switches which will be -->
<!-- connected for ISLs in a given dimension. There -->
<!-- should be 1 or more port pairs per dimension. -->
<!-- List one port pair per neighbor switch ISL -->
<!-- Toroidal: <Toroidal>1</Toroidal> -->
<!-- Indicates that the dimension is toroidal (closed loop) -->
<!-- Length: <Length>n</Length> -->
<!-- Indicates that the dimension is of length n. -->
<!-- RouteLast: -->
<!-- Nodes may be specified for exclusion from initial routing -->
<!-- to give better route balancing of remaining nodes. This -->
<!-- may be useful for balancing first across compute nodes -->
<!-- followed by I/O nodes to achieve diversity of routing -->
<!-- within these groups of devices as well as the fabric -->
<!-- overrall. -->
<!-- WarnThreshold: -->
<!-- Maximum number of warnings to be logged for each set of -->
<!-- invalid ISL connections found. ISL connections which are -->
<!-- in conflict with the Dimensions and PortPair definitions -->
<!-- specified in the MeshTorusTopology are considered invalid -->
<!-- and will be logged and ignored. -->
<!-- Default value is 5. Max value is 255. -->
<!-- Example of 2D (4x4) Torus with two ISLs in each dimension. -->
<!-- <MeshTorusTopology> -->
<!-- <Dimension> -->
<!-- <PortPair>1,2</PortPair> -->
<!-- <PortPair>3,4</PortPair> -->
<!-- <Toroidal>1</Toroidal> -->
<!-- <Length>4</Length> -->
<!-- </Dimension> -->
<!-- <Dimension> -->
<!-- <PortPair>5,6</PortPair> -->
<!-- <PortPair>7,8</PortPair> -->
<!-- <Toroidal>1</Toroidal> -->
<!-- <Length>4</Length> -->
<!-- </Dimension> -->
<!-- <RouteLast>hfi_device_group</RouteLast> -->
<!-- <WarnThreshold>5</WarnThreshold> -->
<!-- </MeshTorusTopology> -->
<!-- ********************* Hypercube Topology ************************ -->
<!-- Example of defining parameters for controlling the enhanced -->
<!-- hypercube routing algorithm. When the RoutingAlgorithm is set to -->
<!-- hypercube, this section is used to configure routing parameters. -->
<!-- EnhancedRoutingControl can be used to control the order that -->
<!-- ports are processed on a switch during routing through the use of -->
<!-- virtual port numbers. pPort represents a physical port number -->
<!-- for the Switch, whereas vPort represents a virtual number. The -->
<!-- routing is setup in virtual port order, which by default is the -->
<!-- same as physical port order. Any physical ports not listed will -->
<!-- get the next unused virtual port in increasing order. In the -->
<!-- example below, the ports on switches in group SwitchDeviceGroup1 -->
<!-- would be processed in the order 1 2 3 25 28 4 5 6 7 ... If the -->
<!-- Switches device group is not included in the EnhancedRoutingCtl, -->
<!-- that defines a default ordering for all switches not explicitly -->
<!-- listed. Also, a cost can be associated with a pPort. By default -->
<!-- the cost is defined with a base cost of 10. But an override can -->
<!-- be installed by defining an explicit cost. The shortest path is -->
<!-- actually the lowest cost path. If pPort is not specified, or -->
<!-- is 0, then that specifies that the cost is associated with all -->
<!-- ports for the Switches indicated in the device group (or for all -->
<!-- ports if the Switches device group is not specified). -->
<HypercubeTopology>
<!-- <EnhancedRoutingCtrl> -->
<!-- <Switches>SwitchDeviceGroup1</Switches> -->
<!-- <PortData> -->
<!-- <pPort>25</pPort> -->
<!-- <vPort>4</vPort> -->
<!-- </PortData> -->
<!-- <PortData> -->
<!-- <pPort>28</pPort> -->
<!-- <vPort>5</vPort> -->
<!-- <Cost>11</Cost> -->
<!-- </PortData> -->
<!-- </EnhancedRoutingCtrl> -->
<!-- <EnhancedRoutingCtrl> -->
<!-- <PortData> -->
<!-- <Cost>12</Cost> -->
<!-- </PortData> -->
<!-- </EnhancedRoutingCtrl> -->
<!-- Nodes may be specified for exclusion from initial round-robin -->
<!-- to give better route balancing of remaining nodes. This may -->
<!-- be useful to initially balance across compute nodes and then -->
<!-- over I/O nodes. -->
<!-- <RouteLast>hfi_device_group</RouteLast> -->
</HypercubeTopology>
<!-- **************** Pre-defined Topology Verification **************** -->
<!-- The PreDefinedTopology section is used for verifying the layout of -->
<!-- the fabric against a topology input file of the expected layout. -->
<!-- There are three modes of handling mismatches: Disabled, Warn, and -->
<!-- Enabled. Disabled ignores any mismatches on that field, Warn prints -->
<!-- a warning to the log file, and Enabled prints a warning to the log -->
<!-- file and quarantines the node from the fabric. -->
<!-- Field Definitions: -->
<!-- Enabled: -->
<!-- Whether or not this feature is enabled. -->
<!-- TopologyFilename: -->
<!-- Fully qualified filename of pre-defined input topology. -->
<!-- LogMessageThreshold: Number of warnings to output to log -->
<!-- Number of warnings to output to log file before suppressing -->
<!-- further warnings and only printing a summary at the end of -->
<!-- a sweep. Entering 0 disables this threshold. -->
<!-- FieldEnforcement: -->
<!-- Per-field enforcement levels for mismatch handling. -->
<!-- Field comparison is done on a validation link. Validation links are -->
<!-- found using (NodeGUID,PortNum) unless NodeGUID enforcement is -->
<!-- DISABLED, in which case (NodeDesc,PortNum) is used to find the -->
<!-- link. If there is more than one link matches by (NodeDesc,PortNum) -->
<!-- a log warning will be printed and false matches may occur. -->
<PreDefinedTopology>
<LogMessageThreshold>100</LogMessageThreshold>
<FieldEnforcement>
<NodeDesc>Warn</NodeDesc>
<NodeGUID>Warn</NodeGUID>
<PortGUID>Warn</PortGUID>
<UndefinedLink>Warn</UndefinedLink>
</FieldEnforcement>
</PreDefinedTopology>
<!-- **************** Fabric Multicast **************************** -->
<Multicast>
<!-- OPA has a limitation in that the SM must make the realizable -->
<!-- decision for a Multicast group at Multicast Join/Create time. -->
<!-- However later fabric changes (removal of links, loss of switches) -->
<!-- could make the multicast group unrealizable, but there is no -->
<!-- notice in OPA which the SM could send the end node. -->
<!-- To address this situation, the SM performs stricter Multicast -->
<!-- checking at Join/Create time. This means a Multicast join/create -->
<!-- is rejected if there are any Switch to Switch links which do -->
<!-- not have at least the MTU or Rate requested for the Multicast -->
<!-- group. Hence reducing the chance that a simple fabric failure -->
<!-- could make the group unrealizable. -->
<!-- When 1, this parameter disables the strict checking and accepts -->
<!-- Join/Create for which at least 1 viable fabric path exists. -->
<DisableStrictCheck>0</DisableStrictCheck> <!--SM_0_disable_mcast_check:dec-->
<!-- Number of Multicast LIDs available in fabric. -->
<!-- Must be set <= smallest Multicast forwarding table size of all -->
<!-- switches in fabric. -->
<MLIDTableCap>8192</MLIDTableCap> <!--SM_0_mcastMLidTableCap:dec-->
<!-- Should multicast spanning tree be pruned to its minimal size. -->
<!-- When disabled, multicast join and leave is optimized by -->
<!-- building the spanning tree to include all switches, -->
<!-- such that a HFI join/leave only requires a single switch update. -->
<!-- When enabled, multicast traffic will only propagate through -->
<!-- the minimal set of switches, reducing overhead in the fabric. -->
<!-- Recommended to be disabled for typical fabrics where multicast -->
<!-- is mainly used to support IPoIB ARP and DHCP. -->
<EnablePruning>0</EnablePruning>
<!-- Selecting root switch for Multicast Spanning Tree -->
<!-- Following algorithms are supported -->
<!-- LeastTotalCost - select switch with the least sum of costs to -->
<!-- all other switches. -->
<!-- LeastWorstCaseCost - select switch with the least worst case -->
<!-- cost to other switches. -->
<!-- SMNeighbor - select the switch next to the SM. -->
<RootSelectionAlgorithm>LeastTotalCost</RootSelectionAlgorithm>
<!-- After fabric changes, minimum cost improvement in percentage -->
<!-- required to change multicast spanning tree root switch. -->
<MinCostImprovement>50%</MinCostImprovement>
<!-- IPv6 (and possibly other applications) can create numerous -->
<!-- Multicast groups. Each multicast group needs an MLID. -->
<!-- In the case of IPv6, there is 1 Solicited-Node multicast group -->
<!-- per FI port. -->
<!-- This results in an excessively large number of multicast groups. -->
<!-- Also in large fabrics, this quickly exceeds MLIDTableCap. -->
<!-- To address this situation, the MLIDShare fields allow groups of -->
<!-- Multicast GIDs to share a limited number of MLIDs. -->
<!-- This can conserve the Hardware MLID tables so other uses of -->
<!-- Multicast can be optimized/efficient. -->
<!-- Allows specification of 32 separate groups of MGIDs. Each group -->
<!-- of MGIDs are combined into it's own unique set of MLIDs. -->
<!-- Each MGID is ANDed with MGIDMask then compared to MGIDValue. -->
<!-- On a match the MGID will be given a MLID within a pool of -->
<!-- MaxMLIDs. -->
<!-- MGIDs are 128 bits specified as 2 colon separated 64 bit values -->
<!-- MGIDs in the same MLIDShare group with the same PKey will never -->
<!-- share MLIDs. -->
<!-- <MaxMLIDsPerPKey> is an optional field that restricts the number of -->
<!-- of MLIDs that any one PKey can consume. For example: in the following -->
<!-- section, a maximum of 500 MLIDs can be shared, but can be restricted to -->
<!-- allow sharing 4 MLIDs per PKey for matching MGIDs. -->
<!-- This can be useful when a single partition creates a large number of MGIDs -->
<!-- that may consume all available MLIDs, leaving another virtual partition -->
<!-- without any MLIDs to allocate. Another case is when many VFs create MGIDs, -->
<!-- some of them consuming the maximum allowed, leaving the remaining ones -->
<!-- with no MLIDs to allocate. -->
<!-- IPv6 Solicited-Node multicast combined to 500 MLIDs -->
<MLIDShare>
<Enable>1</Enable>
<MGIDMask>0xffffffff0000ffff:0xffffffffff000000</MGIDMask>
<MGIDValue>0xff12601b00000000:0x00000001ff000000</MGIDValue>
<MaxMLIDs>500</MaxMLIDs>
<!-- <MaxMLIDsPerPKey>4</MaxMLIDsPerPKey> -->
</MLIDShare>
<!-- Catch-all for MGIDs not matched by another MLIDShare group -->
<MLIDShare>
<Enable>0</Enable> <!--#SM_0_mt_enable#!-->
<Enable>1</Enable> <!--#SM_0_mt_enable#=-->
<MGIDMask>0x0000000000000000:0x0000000000000000</MGIDMask>
<MGIDValue>0x0000000000000000:0x0000000000000000</MGIDValue>
<MaxMLIDs>8000</MaxMLIDs>
<MaxMLIDsPerPKey>8</MaxMLIDsPerPKey>
</MLIDShare>
<!-- *************************************************************** -->
<!-- Pre-Created Multicast Groups -->
<!-- These groups will be pre-created by the SM. -->
<!-- OFA requires this for IPoIB, config can specify others as needed -->
<!-- Every pre-created MulticastGroup can have one or more MGIDs. -->
<!-- The MGID must be unique among all MulticastGroups within an -->
<!-- FM instance. -->
<!-- When defined at Common level must be unique within all instances. -->
<!-- MGIDs are specified as two 64 bit values separated by a colon (:) -->
<!-- MGIDs can be specified in the following ways in the -->
<!-- MulticastGroup section: -->
<!-- a single MGID: <MGID>0xabc:0x123567</MGID> -->
<!-- If no MGIDs are specified, 4 IPv4 and/or 4 IPv6 multicast groups are -->
<!-- created depending on which application is defined in the matching VF -->
<!-- (Networking, IPv4 or IPv6) -->
<!-- The following Policies and Controls can be specified -->
<!-- Create: <Create>1</Create> -->
<!-- When Disabled (0), the MulticastGroup is ignored. -->
<!-- This allows the user to easily disable a MulticastGroup -->
<!-- without editing its definition. -->
<!-- Virtual Fabric: <VirtualFabric>name</VirtualFabric> -->
<!-- This controls the virtual fabric for which the -->
<!-- MulticastGroup is created. -->
<!-- Alternatively a <PKey> may be specified. -->
<!-- If neither is specified, the MGID will be created for all -->
<!-- Virtual Fabrics which contain the MGID as an Application -->
<!-- Static Rate: <Rate>25g</Rate> specified in natural format -->
<!-- e.g. one of '25g', '50g', '75g' or '100g' -->
<!-- MTU: <MTU>2048</MTU> specified in natural format -->
<!-- e.g. one of '2048', '4096', '8192' or '10240' -->
<!-- Service Level: <SL>0</SL> -->
<!-- SL can be specified, but must match the MulticastSL -->
<!-- (if present, otherwise the BaseSL) of the associated -->
<!-- VirtualFabric. -->
<!-- QKey: <QKey>0x0</QKey> -->
<!-- Traffic Class: <TClass>0x0</TClass> -->
<!-- IPoIB IPv4 and IPv6 multicast for all VFs which have IPoIB -->
<!-- as an application -->
<MulticastGroup>
<Create>1</Create> <!--SM_0_def_mc_create:dec-->
<PKey>0x0001</PKey> <!--#SM_0_def_mc_pkey:hex-->
<MTU>2048</MTU> <!--SM_0_def_mc_mtu:mtu-->
<Rate>25g</Rate> <!--SM_0_def_mc_rate-->
<!-- <SL>0</SL> --> <!--SM_0_def_mc_sl:dec-->
<QKey>0x0</QKey> <!--SM_0_def_mc_qkey:hex-->
<TClass>0x0</TClass> <!--SM_0_def_mc_tc:hex-->
</MulticastGroup>
<!-- Sample of IPoIB IPv4 and IPv6 multicast for 0x8002/0x0002 PKey -->
<!-- This can be useful if there are multiple IPoIB vFabrics -->
<!-- and its desired to have different multicast parameters (Rate, -->
<!-- MTU, etc) for each IPoIB vFabric. -->
<!-- Since IPoIB MGID includes PKey, we specify PKey not VirtualFabric -->
<!-- MGIDs specified must use the Full PKey (0x8000 bit set) -->
<MulticastGroup>
<Create>0</Create>
<PKey>0x0002</PKey>
<!-- PKey 0x8002/0x0002 is part of IPv4 MGID below -->
<!-- MGID = 0xffFS401bPPPP0000:00000000GGGGGGGG -->
<!-- where F=flags, S=scope, P=PKey and G=IP Multicast Group -->
<MGID>0xff12401b80020000:0x00000000ffffffff</MGID> <!-- bcast -->
<MGID>0xff12401b80020000:0x0000000000000001</MGID> <!-- all nodes -->
<MGID>0xff12401b80020000:0x0000000000000002</MGID> <!-- all routers -->
<MGID>0xff12401b80020000:0x00000000000000fb</MGID> <!-- all mDNS -->
<!-- PKey 0x8002/0x0002 is part of IPv6 MGIDs below -->
<!-- MGID = 0xffFS601bPPPPGGGG:GGGGGGGGGGGGGGGG -->
<!-- where F=flags, S=scope, P=PKey and G=IP Multicast Group -->
<MGID>0xff12601b80020000:0x0000000000000001</MGID> <!-- all nodes -->
<MGID>0xff12601b80020000:0x0000000000000002</MGID> <!-- all routers -->
<MGID>0xff12601b80020000:0x0000000000000016</MGID> <!-- all MLDV2 routers -->
<MGID>0xff12601b80020000:0x00000000000000fb</MGID> <!-- all mDNS -->
<MTU>2048</MTU>
<Rate>100g</Rate>
<QKey>0x0</QKey>
<TClass>0x0</TClass>
</MulticastGroup>
</Multicast>
<!-- **************** Fabric Programming **************************** -->
<!-- SwitchLifetime, HoqLife, and VLStallCount can be used to relieve -->
<!-- fabric congestion and avoid fabric deadlocks by discarding packets. -->
<!-- Discards help prevent backpressure from propagating deep into the -->
<!-- core of the fabric, however such discards will cause end nodes to -->
<!-- need to timeout and retransmit. -->
<!-- If a packet stays at the Head of a Switch Egress Port for more -->
<!-- than HoqLife, it is discarded. -->
<!-- Similarly a packet queued in a switch for more than SwitchLifetime -->
<!-- is discarded. -->
<!-- Specified as integer time using ns, us, ms, or s as units. -->
<!-- VLStallCount controls a second tier more aggressive discard. -->
<!-- If VLStallCount packets in a row are discarded due to HoqLife by a -->
<!-- given VL on an egress port. That egress port's VL enters the VL -->
<!-- Stalled State and discards all that VL's egress packets -->
<!-- for 8*HoqLife. -->
<!-- Packets discarded for any of these reasons will be included in the -->
<!-- TxDiscards counter which is query-able via FastFabric. -->
<!-- HoqLife can be automatically adjusted based on -->
<!-- Virtual Fabric configurations and preemption configurations -->
<!-- This feature is called TimerScaling, and can be enabled below. -->
<!-- Furthermore, HoqLife can be specified per -->
<!-- Virtual Fabric, overriding the global definition below. -->
<!-- When HoqLife is specified at the Virtual Fabric -->
<!-- level, the timeout scaling is automatically disabled for that VF -->
<TimerScalingEnable>0</TimerScalingEnable>
<SwitchLifetime>33ms</SwitchLifetime> <!--SM_0_switchlifetime:2n-->
<HoqLife>8ms</HoqLife> <!--SM_0_hoqlife:2n-->
<VLStallCount>7</VLStallCount> <!--SM_0_vlstall:dec-->
<!-- VL15FlowControlDisable can be used to turn off the link-level -->
<!-- reliable transport flow control behavior on VL15. -->
<!-- When reliable transport flow control has been disabled for a VL, -->
<!-- packets will be discarded by that VL when the packet length is -->
<!-- larger than the current available VL credit. -->
<VL15FlowControlDisable>1</VL15FlowControlDisable>
<!-- *************** Security Features ******************************-->
<!-- VL15CreditRate: Rate at which to return credits to a non-mgmt HFI. -->
<!-- Helps avoid VL15 Denial of Service attacks against the fabric -->
<!-- The field is defined as 1/(2^X) of the normal return rate. For -->
<!-- instance, if the field is set to 3, the credit return rate will be -->
<!-- 1/(2^3) = 1/8 (one eighth) the normal credit return rate. -->
<!-- Valid values are between 0 and 21, with 0 disabling the feature. -->
<VL15CreditRate>18</VL15CreditRate>
<!-- ****** VL Buffer Allocation Parameters *****************-->
<!-- VL Memory allocation can be fine tuned with the parameters -->
<!-- specified below. Normally, parameters from the port info are used -->
<!-- to drive the allocation according to a set of rules. However, the -->
<!-- parameters below can override the information returned from port -->
<!-- info, and also can be used to modify the rules to allow for more or -->
<!-- less dedicated memory / shared memory among the VLs. -->
<!-- MinSharedVLMemory is an integer representing a percentage of -->
<!-- overall Buffer memory that will be guaranteed to be shared -->
<!-- among a port's VLs (provided that the port supports -->
<!--- shared memory). If not specified, defaults to 0. -->
<!-- DedicatedVLMemMulti is an integer multiplier in the -->
<!-- range, 0 to 255 that can increase the -->
<!-- amount of dedicated memory per VL. It is specified in -->
<!-- multiples of MTUs for that VL. -->
<!-- If not specified, defaults to 1. -->
<!-- WireDepthOverride is an integer value (in bytes) that overrides -->
<!-- the wire depth returned in the port info. If not specified, -->
<!-- defaults to -1. -->
<!-- A value of -1 indicates to use the value from port info. -->
<!-- A value of 0 means to ignore Wire Depth, and use Replay Depth. -->
<!-- Any other value indicates a byte-value to use instead of wire -->
<!-- depth from port info. -->
<!-- ReplayDepthOverride is an integer value (in bytes) that overrides -->
<!-- the buffer depth returned in the port info. If not specified, -->
<!-- defaults to -1. Similar to WireDepthOverride as above. -->
<!-- A value of -1 indicates to use the value from port info. -->
<!-- A value of 0 means to ignore Replay Depth, and use Wire Depth. -->
<!-- Any other value indicates a byte-value to use instead of -->
<!-- replay depth from port info. -->
<!-- If both ReplayDepthOverride and WireDepthOverride are 0, then no -->
<!-- bytes are considered for data outstanding on the wire. -->
<MinSharedVLMem>0</MinSharedVLMem>
<DedicatedVLMemMulti>1</DedicatedVLMemMulti>
<WireDepthOverride>-1</WireDepthOverride>
<ReplayDepthOverride>-1</ReplayDepthOverride>
<!-- **************Link Policy************** -->
<!-- LinkPolicy -->
<!-- There is a separate LinkPolicy for HFI and ISL -->
<!-- These settings set bounds on acceptable Link Width values. -->
<!-- -->
<!-- MaxDroppedLanes -->
<!-- The link can chose to downgrade width by dropping lanes -->
<!-- that are not performing adequately. The link will drop -->
<!-- up to MaxDroppedLanes from the initial negotiated width. -->
<!-- Example: If a link comes up through LNI with an active -->
<!-- width of 4x and MaxDroppedLanes has a value of 1, the -->
<!--- link will be allowed to downgrade to 3x but no lower. -->
<!-- *Note: This setting is communicated to each SMA which is -->
<!-- then responsible for performing the downgrades. This -->
<!-- setting is independent of WidthPolicy discussed below -->
<!-- WidthPolicy -->
<!-- This enforces the initial negotiated width for the link. -->
<!-- "Supported" - The SM will disable links whose initial width -->
<!-- is not widest width supported by the devices -->
<!-- "2x" - disable any links initialized with less than 2 lanes-->
<!-- "3x" - disable any links initialized with less than 3 lanes-->
<!-- "4x" - disable any links initialized with less than 4 lanes-->
<!-- *Note that the "Supported" link policy is implicitly enabled when -->
<!-- using any of the available policies. -->
<HFILinkPolicy>
<MaxDroppedLanes>1</MaxDroppedLanes>
<WidthPolicy>
<Enable>1</Enable>
<Policy>Supported</Policy>
</WidthPolicy>
</HFILinkPolicy>
<ISLLinkPolicy>
<MaxDroppedLanes>1</MaxDroppedLanes>
<WidthPolicy>
<Enable>1</Enable>
<Policy>Supported</Policy>
</WidthPolicy>
</ISLLinkPolicy>
<!-- Long Term Port Quarantine Configuration -->
<!-- Port Quarantine allows the FM to minimize disruption from -->
<!-- problematic ports over a period of time. -->
<!-- -->
<!-- Flapping -->
<!-- Ports that are repeatedly bouncing are considered flapping -->
<!-- The FM will monitor bouncing ports over a sliding window -->
<!-- and quarantine them when bounce events exceeds the -->
<!-- configured threshold. -->
<!-- WindowSize -->
<!-- Size in minutes of the sliding window bounce events -->
<!-- are monitored over. A value of 0 disables flapping detection -->
<!-- HighThreshold -->
<!-- When bounce events equal or exceed high threshold, port will be -->
<!-- quarantined -->
<!-- LowThreshold -->
<!-- When bounce events is equal to or below low threshold, -->
<!-- port will be removed from quarantine. -->
<LongTermPortQuarantine>
<Enable>1</Enable>
<Flapping>
<WindowSize>15</WindowSize>
<HighThreshold>25</HighThreshold>
<LowThreshold>0</LowThreshold>
</Flapping>
</LongTermPortQuarantine>
<!-- Preemption Configuration -->
<!-- Preemption is based on packet size and a VL/VF Preemption matrix. -->
<!-- Preemption allows a "small" packet to preempt a "large" packet to -->
<!-- reduce latency. -->
<!-- "Small" packets are expected to be latency sensitive packets; -->
<!-- "Large" packets are expected to be less latency sensitive packets. -->
<!-- NOTE: These sizes represent PACKET sizes including all HEADERS -->
<!-- These sizes are configurable by the user: -->
<!-- LargePacket: The minimum size (in bytes) for a "Large" (and -->
<!-- therefore pre-emptible) packet. -->
<!-- Range is 512 to 8192 in 512 byte increments. -->
<!-- HW may impose additional constraints. -->
<!-- May also specify "MIN" or "MAX". Defaults to 4096 -->
<!-- SmallPacket: The maximum size (in bytes), for a "Small" (and -->
<!-- therefore a candidate for a preempting packet). -->
<!-- Range is 32 to 8192 in 32 byte increments. -->
<!-- HW may impose additional constraints. -->
<!-- May also specify "MIN" or "MAX". Defaults to 256 -->
<!-- PreemptLimit: Limit of total bytes for all preempting packets -->
<!-- which may preempt a given packet. Once limit is -->
<!-- reached no further packets may preempt the given -->
<!-- packet. -->
<!-- Range is 0 to 65024 in 256 byte increments. -->
<!-- HW may impose additional constraints. -->
<!-- May also specify "MIN", "MAX" or "INF" (infinite). -->
<!-- Defaults to 4096 bytes. -->
<!-- Preemption capability can be configured (enabled, disabled, ranked) -->
<!-- per Virtual Fabric via the PreemptRank parameter.-->
<!-- See Virtual Fabric configuration options for more info. -->
<Preemption>
<SmallPacket>256</SmallPacket>
<LargePacket>4096</LargePacket>
<PreemptLimit>4096</PreemptLimit>
</Preemption>
<!-- Configures support for OPA Congestion Control -->
<CongestionControl>
<!-- 1 = Enable, 0 = Disable -->
<Enable>0</Enable>
<!-- Turn on additional debug logging for CCA -->
<!-- 1 = Enable, 0 = Disable -->
<Debug>0</Debug>
<!-- CC settings applicable to all switches. -->
<!-- Default settings for switch are selected to provide the best -->
<!-- congestion control for various traffic mixes but may require -->
<!-- tuning for best performance -->
<Switch>
<!-- OPA CC SwitchCongestionSetting:Threshold -->
<!-- A value in the range 0 to 15. Used to determine when -->
<!-- to use congestion marking. Higher values indicate more -->
<!-- aggressive congestion thresholds. 0 disables congestion -->
<!-- marking. Default is 8. -->
<Threshold>8</Threshold>
<!-- OPA CC SwitchCongestionSetting:Packet Size -->
<!-- Minimum packet size to mark in 64 byte units. Packets -->
<!-- smaller than this size are ignored by congestion control. -->
<!-- Range is 0-162. -->
<PacketSize>0</PacketSize>
<!-- OPA CC SwitchCongestionSetting:Marking Rate -->
<!-- The average number of packets between packets that are -->
<!-- eligible to be marked with a Forward Explicit Congestion -->
<!-- Notification. Range is 0-65535. For Omni-Path Gen 1 switch -->
<!-- hardware, this value will be capped at 255 -->
<MarkingRate>0</MarkingRate>
<!-- OPA CC SwitchCongestionSetting: Victim Marking -->
<!-- Boolean value (0 or 1). A value of 0 will cause marking -->
<!-- of only sources of congestion. A value of 1 will cause -->
<!-- marking of both sources and victims of congestion -->
<VictimMarkingEnable>1</VictimMarkingEnable>
</Switch>
<!-- CC settings applicable to all fabric interfaces. -->
<!-- Congestion Control may require tuning for best performance -->
<!-- When using PSM, the CC settings for a given job -->
<!-- can be overridden with the following environment variables -->
<!-- PSM_DISABLE_CCA 0 -->
<Fi>
<!-- OPA CC FICongestionEntry:CCTI Increase -->
<!-- The number to be added to the CCTI on the receipt of a BECN-->
<!-- Range is 0-255. -->
<Increase>5</Increase>
<!-- OPA CC FICongestionEntry:CCTI Timer -->
<!-- Determines the amount of time that must elapse before -->
<!-- reducing the CCTI. Measured in multiples of 1.024 uS. -->
<!-- Range is 0 to 65535. -->
<Timer>10</Timer>
<!-- OPA CC FICongestionEntry:Trigger Threshold -->
<!-- When the CCTI is equal to this value, an event is logged -->
<!-- in the FI's congestion log. Range is 0-255. -->
<Threshold>8</Threshold>
<!-- OPA CC FICongestionEntry:CCTI Min -->
<!-- The minimum value for the CCTI, effective the minimum -->
<!-- injection rate delay for an SL or QP. Range is 0 to 255. -->
<Min>0</Min>
<!-- OPA CC CongestionControlTable:CCTI Limit -->
<!-- Maximum value for the CCTI. Range is 1-895. -->
<Limit>127</Limit>
<!-- Maximum injection rate delay in ns -->
<!-- The Congestion Control Table will be generated with Limit -->
<!-- entries such that the final entry will result in -->
<!-- DesiredMaxDelay for a maximum MTU packet. Value is in ns -->
<!-- and the range is 0 through (2^32)-1. -->
<DesiredMaxDelay>8300</DesiredMaxDelay>
</Fi>
</CongestionControl>
<!-- Configures support for AdaptiveRouting in Intel Switches -->
<!-- Adaptive Routing monitors the performance of the possible paths between -->
<!-- fabric endpoints and periodically rebalances the routes to reduce -->
<!-- congestion and achieve a more balanced packet load -->
<AdaptiveRouting>
<!-- 1 = Enable, 0 = Disable -->
<Enable>0</Enable> <!--SM_0_ar_enable:dec-->
<!-- When set, only adjust routes when they are lost. -->
<!-- If not set, adjust routes when they are lost and -->
<!-- when congestion is indicated. -->
<LostRouteOnly>0</LostRouteOnly> <!--SM_0_ar_lost_route_only:dec-->
<!-- Algorithm the switch should use when selecting an egress port -->
<!-- Algorithms are currently 0 = Random, 1 = Greedy and -->
<!-- 2 = GreedyRandom. Default is 2. -->
<Algorithm>2</Algorithm>
<!-- Update Frequency: Specifies the minimum time between -->
<!-- AR adjustments. Values range from 0 to 7 and are read as 2^n -->
<!-- times 64 ms. Default is 0. -->
<ARFrequency>0</ARFrequency>
<!-- Congestion threshold above which switch uses adaptive routing. -->
<!-- Congestion threshold is per-VL and measured by tag consumption percentage. -->
<!-- Values range from 0 to 7. -->
<!-- 7, 6, 5, 4 correspond to 55%, 60%, 65%, and 70%, respectively. -->
<!-- 3, 2, 1 correspond to 80%, 90%, and 100%, respectively. -->
<!-- 0 means "Use firmware default". Default is 3. -->
<!-- Higher Percentage means higher congestion is required before Adaptive -->
<!-- routing takes control. Higher Percentage is less sensitive, less adaptive. -->
<Threshold>3</Threshold>
</AdaptiveRouting>
<SaRespTime>1s</SaRespTime> <!-- maximum anticipated SA response time --> <!--SM_0_saRespTime:2n-->
<!-- Normally if SA cannot process a request because resources are -->
<!-- temporarily not available or an error is detected which may be -->
<!-- resolved when an in progress sweep completes, a busy status is -->
<!-- returned to the requester so the requester can delay and retry. -->
<!-- Setting NoReplyIfBusy to 1 results in no response being returned. -->
<!-- The default is 0, in which case the busy status will be returned. -->
<NoReplyIfBusy>0</NoReplyIfBusy>
<!-- Packet Lifetime Settings -->
<!-- These control the PktLifetime reported in PathRecord queries. -->
<!-- PktLifetime is used by OFA compliant applications to set the -->
<!-- Queue Pair timeout and retry intervals. Per the OPA/OFA algorithm -->
<!-- the Queue Pair timeout will typically be 2x or 4x these values. -->
<!-- When DynamicPacketLifetime is enabled, the PktLifetime reported -->
<!-- will depend on number of switch hops. -->
<!-- Hops01 is PktLifetime for 1 hop paths, Hops02 is 2 hop paths, etc. -->
<!-- When DynamicPacketLifetime is disabled, the PacketLifetime is -->
<!-- reported as the PKtLifetime for all paths. -->
<PacketLifetime>1s</PacketLifetime> <!--SM_0_saPacketLifetime:2n-->
<DynamicPacketLifetime>
<Enable>1</Enable> <!--SM_0_dynamicPlt:dec-->
<Hops01>67ms</Hops01> <!--SM_0_dynamicPlt_01:2n-->
<Hops02>134ms</Hops02> <!--SM_0_dynamicPlt_02:2n-->
<Hops03>134ms</Hops03> <!--SM_0_dynamicPlt_03:2n-->
<Hops04>268ms</Hops04> <!--SM_0_dynamicPlt_04:2n-->
<Hops05>268ms</Hops05> <!--SM_0_dynamicPlt_05:2n-->
<Hops06>268ms</Hops06> <!--SM_0_dynamicPlt_06:2n-->
<Hops07>268ms</Hops07> <!--SM_0_dynamicPlt_07:2n-->
<Hops08>536ms</Hops08> <!--SM_0_dynamicPlt_08:2n-->
<Hops09>536ms</Hops09> <!--SM_0_dynamicPlt_09:2n-->
</DynamicPacketLifetime>
<!-- PathRecord path selection and ordering. Most applications will -->
<!-- use the first path or only the first few paths. When LMC=0 this -->
<!-- setting makes no difference because there is only 1 src/dst address -->
<!-- per pair of ports. However when LMC!=0, there can be N=(1<<LMC) -->
<!-- addresses per port. This means there are N^2 possible combinations -->
<!-- of SLID and DLID which the SA could return in the Path Records. -->
<!-- However there are really only N combinations which represent -->
<!-- distinct outbound and return paths. All other combinations are -->
<!-- different mixtures of those N outbound and N return paths -->
<!-- Also important to note is that LMC for all FIs are typically the -->
<!-- same, while LMC for switches will be less. Generally redundant -->
<!-- paths and/or having a variety of paths is not critical for paths -->
<!-- to switches, but can be important for applications talking FI to FI -->
<!-- This parameter controls what combinations are returned and in what -->
<!-- order. For examples below lets assume SGID LMC=1 (2 LIDs) and -->
<!-- DGID LMC=2 (4 LIDs) -->
<!-- Minimal - return no more than 1 path per lid -->
<!-- SLID1/DLID1, SLID2/DLID2 (since SGID has 2 lids stop) -->
<!-- Pairwise - cover every lid on both sides at least once -->
<!-- SLID1/DLID1, SLID2/DLID2, SLID1/DLID3, SLID2/DLID4 -->
<!-- OrderAll - cover every combination, but start with pairwise set -->
<!-- SLID1/DLID1, SLID2/DLID2, SLID1/DLID3, SLID2/DLID4 -->
<!-- SLID1/DLID2, SLID1/DLID4, SLID2/DLID1, SLID2/DLID3 -->
<!-- SrcDstAll - cover every combination with simple all src, all dst -->
<!-- SLID1/DLID1, SLID1/DLID2, SLID1/DLID3, SLID1/DLID4 -->
<!-- SLID2/DLID1, SLID2/DLID2, SLID2/DLID3, SLID2/DLID4 -->
<PathSelection>Minimal</PathSelection>
<!-- When 1, this enables IBTA compliant SA query operation for -->
<!-- GetTable(PathRecord). As such a SGID and NumbPath is required -->
<!-- When 0, this allows interop with some non-compliant OFA queries -->
<!-- and permits GetTable(PathRecord) to specify either a SGID or SLID -->
<!-- and defaults numbPath to 127 if not specified. -->
<QueryValidation>0</QueryValidation>
<!-- EnforceVFPathRecord is a parameter that controls the search -->
<!-- scope for path records. It defaults to enabled (1), which -->
<!-- limits the scope to Virtual Fabrics. When disabled (0), -->
<!-- the scope is restricted to pkey/partition boundaries -->
<EnforceVFPathRecord>1</EnforceVFPathRecord>
<!-- These parameters tune how many concurrent SMA requests the SM -->
<!-- can have in flight while programming the SMAs in the fabric. -->
<SmaBatchSize>2</SmaBatchSize> <!-- max parallel requests to a given SMA --> <!--SM_0_sma_batch_size:dec-->
<MaxParallelReqs>3</MaxParallelReqs> <!-- total max req in parallel --> <!--SM_0_max_parallel_reqs:dec-->
<!-- SmaSpoofingCheck enables support for port level SMA security-->
<!-- checking related features. -->
<SmaSpoofingCheck>1</SmaSpoofingCheck>
<!-- **************** Fabric Sweep **************************** -->
<!-- The SM sweeps immediately upon fabric changes based on traps from -->
<!-- the switches. Since traps can be lost, the SM also has a slow -->
<!-- periodic sweep at SweepInterval to verify fabric config. This -->
<!-- interval can be zero (do not sweep) or between 3 and 86400 seconds. -->
<SweepInterval>300</SweepInterval> <!-- max seconds between sweeps --> <!--SM_0_timer:dec-->
<IgnoreTraps>0</IgnoreTraps> <!-- don't sweep nor log when traps occur -->
<TrapHoldDown>1</TrapHoldDown> <!-- seconds to delay sweep after trap -->
<!-- When MinRespTimeout below is set to 0: -->
<!-- The SM waits up to RespTimeout milliseconds for responses. -->
<!-- the SM will retry the request, with the same timeout, up to -->
<!-- MaxAttempts times before giving up. -->
<!-- Otherwise: -->
<!-- The SM will start with MinRespTimeout as the timeout value for -->
<!-- requests and increase the timeout with each retry until -->
<!-- MaxAttempts * RespTimeout amount of time has elapsed -->
<!-- Note: Be aware that the SA will also use MaxAttempts to limit the -->
<!-- number of RMPP retries -->
<MaxAttempts>3</MaxAttempts> <!--SM_0_max_retries:dec-->
<RespTimeout>250</RespTimeout> <!-- in milliseconds --> <!--SM_0_rcv_wait_msec:dec-->
<MinRespTimeout>35</MinRespTimeout> <!-- in milliseconds -->
<!-- The maximum time, in seconds, that the FM will spend waiting on -->
<!-- timeouts during a sweep. Beyond this limit, the FM will abandon -->
<!-- the current sweep, temporarily quarantine any ports that timed -->
<!-- out, and resweep. This is intended to limit the amount of time -->
<!-- the FM spends in any one sweep and increase responsiveness in -->
<!-- the presence of disruptions. -->
<CumulativeTimeoutLimit>300</CumulativeTimeoutLimit>
<!-- When there are a large number of fabric changes at once, the SM -->
<!-- could have lots of errors while attempting to access/program -->
<!-- devices which disappeared mid-sweep. If the SM has more than -->
<!-- SweepErrorsThreshold in a given sweep, it will give up and start -->
<!-- the sweep over. Should SweepAbandonThreshold sweeps fail in a row -->
<!-- the SM will will do its best to complete the sweep as is. -->
<SweepErrorsThreshold>0</SweepErrorsThreshold> <!--SM_0_topo_errors_threshold:dec-->
<SweepAbandonThreshold>3</SweepAbandonThreshold> <!--SM_0_topo_abandon_threshold:dec-->
<!-- If a given port issues more than TrapThreshold traps/minute -->
<!-- it will be disabled as an unstable port. 0 disables this feature. -->
<!-- The traps managed by this threshold are Traps 129-131. -->
<!-- These include traps for port Local Link Integrity threshold, -->
<!-- Excessive Buffer Overrun, and Flow Control Update watchdog timer. -->
<!-- Valid values to enable this feature are 10-100. -->
<TrapThreshold>0</TrapThreshold> <!--SM_0_trap_threshold:dec-->
<!-- TrapThresholdMinCount is minimum number of traps required -->
<!-- to consider that TrapThreshold rate has been been reached. -->
<!-- For example if TrapThreshold is set to 10 traps/minute and -->
<!-- TrapThresholdMinCount is set to 5, the port will be disabled -->
<!-- after 5 traps are received at the rate of 10 traps per minute -->
<!-- i.e. 5 traps in 30 seconds. -->
<!-- This value must be greater than 2. Default is 10. Ignored if -->
<!-- TrapThreshold is set to 0.-->
<!-- Larger values will increase accuracy of detecting trap rate -->
<!-- but also increase the time between a trap surge and the SM -->
<!-- disabling a port. Very small values can lead to a port being -->
<!-- disabled just after a few traps. -->
<TrapThresholdMinCount>10</TrapThresholdMinCount>
<!-- Multicast join/create/deletes result in a SM sweeps. -->
<!-- A pathological node can cause a denial of service attack by -->
<!-- excessive creates and deletes of multicast groups. The -->
<!-- following limits the number of multicast Set/Delete sequences -->
<!-- that a node can issue before the SM takes action to quiet -->
<!-- the node. -->
<!-- The number of deletes allowed within a given interval is limited -->
<!-- by the following parameters. -->
<!-- When McDosThreshold is zero, monitoring of MC DOS is disabled. -->
<McDosThreshold>0</McDosThreshold>
<!-- Default interval is 60 seconds. -->
<McDosInterval>60</McDosInterval>
<!-- McDosAction, the action to take if MC DOS is suspected. -->
<!-- 0 = Port will be disabled. -->
<!-- 1 = Port will be bounced. -->
<McDosAction>0</McDosAction>
<!-- Sometimes when a node is under heavy load, it may fail to respond -->
<!-- to SMA queries for a while. In order to prevent the SM from -->
<!-- dropping such nodes from the fabric, the SM will allow a node to be -->
<!-- non responsive for up to NonRespMaxCount sweeps and NonRespTimeout -->
<!-- seconds before dropping it from the fabric. -->
<NonRespTimeout>600</NonRespTimeout> <!-- in seconds --> <!--SM_0_non_resp_tsec:dec-->
<NonRespMaxCount>3</NonRespMaxCount> <!--SM_0_non_resp_max_count:dec-->
<!-- **************** SM Logging/Debug **************************** -->
<!-- When nodes appear or disappear from the fabric, a message is logged -->
<!-- This can set a threshold on how many such messages to output per -->
<!-- sweep. Once NodeAppearanceMsgThreshold messages are logged in a -->
<!-- given sweep, the remainder are output at a lower log level (INFO) -->
<!-- Hence avoiding excessive log messages when significant -->
<!-- fabric changes occur. 0 means no limit. -->
<NodeAppearanceMsgThreshold>100</NodeAppearanceMsgThreshold> <!--SM_0_node_appearance_msg_thresh:dec-->
<SmPerfDebug>0</SmPerfDebug> <!-- log additional SM sweep info --> <!--SM_0_sm_debug_perf:dec-->
<SaPerfDebug>0</SaPerfDebug> <!-- log additional SA query info --> <!--SM_0_sa_debug_perf:dec-->
<!-- <Debug>0</Debug> --> <!--#SM_0_debug:dec-->
<!-- <RmppDebug>0</RmppDebug> --> <!--#SM_0_sa_debug_rmpp:dec-->
<!-- **************** Miscellaneous **************************** -->
<LID>0</LID> <!-- lid for this SM, 0=pick any available --> <!--SM_0_lid:dec-->
<!-- The number of high order bits (set to one) used for multicast -->
<!-- addresses when the address is greater than 16 bits. -->
<MulticastMask>4</MulticastMask>
<!-- How are unicast LIDs & LMCs assigned to end-ports -->
<!-- Serial: iterate over unicast LID space and assign the next -->
<!-- contiguous unassigned LID range large enough for the LMC -->
<!-- settings in use. -->
<!-- Topology: assign LID and LMC values from ports defined in -->
<!-- ExpectedLinks in the topology file used by PreDefinedTopology -->
<!-- Requires that PreDefinedTopology be enabled. With LidStrategy -->
<!-- Topology, nodes not in the PreDefinedTopology file will not -->
<!-- be activated -->
<LidStrategy>Serial</LidStrategy>
<!-- DSAP is part of job startup scalability improvements -->
<!-- Refer to documentation for details on how to setup and use DSAP -->
<DsapInUse>0</DsapInUse>
<!-- Appliance nodes are nodes whose self-reported NodeGUIDs are -->
<!-- expected not to match the NeighborNodeGUID on the appliance node's -->
<!-- peer ports. SmAppliances is used to prevent these nodes from being -->
<!-- quarantined by SM. -->
<SmAppliances>
<Enable>0</Enable> <!-- Disable(0) or enable(1) appliance checking. -->
<!-- Add node GUID for appliance node as it will appear in appliance -->
<!-- node's peer ports' NeighborNodeGUID. Limited to five entries -->
<!-- (Appliance01 to Appliance05) -->
<!-- <Appliance01>0x001175010157e518</Appliance01> -->
<!-- <Appliance02>0x001175010157e518</Appliance02> -->
<!-- <Appliance03>0x001175010157e518</Appliance03> -->
<!-- <Appliance04>0x001175010157e518</Appliance04> -->
<!-- <Appliance05>0x001175010157e518</Appliance05> -->
</SmAppliances>
<!-- Force the resetting of all attributes (including LFTs) on a -->
<!-- resweep. Can be used to force devices out of a bad state. -->
<ForceAttributeRewrite>0</ForceAttributeRewrite>
<!-- Enables fabric activation optimization to reduce packet counts -->
<!-- during fabric bring up. 0-Disable, 1-Switches only, 2-All devices -->
<SwitchCascadeActivateEnable>1</SwitchCascadeActivateEnable>
<!-- Number of times to retry activation upon detecting an armed port -->
<!-- with a non-armed/active neighbor. -->
<NeighborNormalRetries>10</NeighborNormalRetries>
<!-- Number of port bounce events to log before suppressing the rest. -->
<!-- 0 - No Limit, Any other number specifies exact number per sweep. -->
<PortBounceLogLimit>0</PortBounceLogLimit>
<!-- Overrides of the Common.Shared parameters if desired -->
<!-- <Priority>0</Priority> --> <!-- 0 to 15, higher wins --> <!--#SM_0_priority:dec-->
<!-- <ElevatedPriority>0</ElevatedPriority> --> <!-- 0 to 15, higher wins --> <!--#SM_0_elevated_priority:dec-->
<!-- <LogLevel>2</LogLevel> --> <!--#SM_0_log_level:dec-->
<!-- <LogFile></LogFile> --> <!--#SM_0_log_file-->
<!-- <SyslogFacility>Local6</SyslogFacility> -->
<!-- Alternative to use of LogLevel. Use of LogLevel recommended. -->
<!-- for each subsystem there can be a LogMask. The mask selects -->
<!-- severities of log messages to enable: -->
<!-- 0x1=fatal, 0x2=actionable error, 0x4=actionable warning, -->
<!-- 0x8=actionable notice, 0x10=actionable info, 0x20=error, 0x40=warn, -->
<!-- 0x80=notice, 0x100=progress, 0x200=info, 0x400=verbose, 0x800=data, -->
<!-- 0x1000=debug1, 0x2000=debug2, 0x4000=debug3, 0x8000=debug4 -->
<!-- 0x10000=func call, 0x20000=func args, 0x40000=func exit, -->
<!-- For Host SM, the Linux syslog service will need to have an -->
<!-- appropriate level of logging enabled. -->
<!-- For ESM corresponding Chassis Logging must also be enabled -->
<!-- and Sm config applies to all managers. -->
<!-- <CS_LogMask>0x00000000</CS_LogMask> -->
<!-- <MAI_LogMask>0x000001ff</MAI_LogMask> -->
<!-- <CAL_LogMask>0x000001ff</CAL_LogMask> -->
<!-- <DVR_LogMask>0x000001ff</DVR_LogMask> -->
<!-- <IF3_LogMask>0x000001ff</IF3_LogMask> -->
<!-- <SM_LogMask>0x000001ff</SM_LogMask> -->
<!-- <SA_LogMask>0x000001ff</SA_LogMask> -->
<!-- <PM_LogMask>0x000001ff</PM_LogMask> -->
<!-- <PA_LogMask>0x000001ff</PA_LogMask> -->
<!-- <FE_LogMask>0x000001ff</FE_LogMask> -->
<!-- <APP_LogMask>0x000001ff</APP_LogMask> -->
<!-- ********************************************************************** -->
<!-- ***********Additional parameters for debug/development use************ -->
<!-- ********************************************************************** -->
<!-- Default values are shown below -->
<!-- <LoopTestOn>0</LoopTestOn> --> <!-- cable loop test --> <!--SM_0_loop_test_on:dec^=-->
<!-- <LoopTestFastMode>0</LoopTestFastMode> -->
<!-- <LoopTestPackets>5</LoopTestPackets> --> <!-- inject count --> <!--SM_0_loop_test_packets:dec^=-->
<!-- <LIDSpacing>0x0</LIDSpacing> --> <!-- spacing of LIDs to test LFT --> <!--SM_0_topo_lid_offset:hex-->
<!-- <SaRmppChecksum>0</SaRmppChecksum> --> <!-- RMPP internal checksum --> <!--SM_0_sa_rmpp_checksum:dec-->
<!-- <DynamicPortAlloc>1</DynamicPortAlloc> --> <!--SM_0_dynamic_port_alloc:dec-->
<!-- <CheckMftResponses>1</CheckMftResponses> -->
<!-- <MonitorStandby>1</MonitorStandby> -->
<!-- <UseCachedNodeData>0</UseCachedNodeData> -->
<!-- If traps are received from the same port with in the below interval -->
<!-- (in seconds) logging of traps from that port will be suppressed. -->
<!-- Log suppression is disabled if set to 0. -->
<!-- Default is log suppression enabled with interval set to 30 seconds. -->
<!-- <TrapLogSuppressTriggerInterval>30</TrapLogSuppressTriggerInterval> -->
<!-- <LoopbackMode>0</LoopbackMode> --> <!-- Enable to test HFIs operating in loopback mode. -->
<!-- Bitmask controlling which kinds of errors will cause the device to bounce the link. -->
<!-- 0x00000001:Reserved -->
<!-- 0x00000002:Illegal packet length in header -->
<!-- 0x00000004:Packet longer than Length -->
<!-- 0x00000008:Packet shorter than Length with normal tail -->
<!-- 0x00000010:Illegal SLID (0, using multicast as SLID, does not include security validation of SLID) -->
<!-- 0x00000020:Illegal DLID (0, doesn't match HFI) -->
<!-- 0x00000040:Illegal L2 opcode -->
<!-- 0x00000080:Unconfigured SC -->
<!-- 0x00000100:Reserved -->
<!-- 0x00000200:Body/Tail flit received without corresponding Head flit -->
<!-- 0x00000400:Reserved -->
<!-- 0x00000800:Preempting with same VL -->
<!-- 0x00001000:Preempting a VL15 packet -->
<!-- 0x00002000:VL marker for an unpreempted VL -->
<!-- 0x00004000-0x00008000:Reserved -->
<!-- 0x00010000:Distance violation between two head flits -->
<!-- 0x00020000:Distance violation between two tail flits -->
<!-- 0x00040000:Distance violation between two credit LF command flits -->
<!-- 0x00080000:Credit return for unsupported VL -->
<!-- 0x00100000:VL Marker received for unsupported VL or when VL marker not enabled for port -->
<!-- 0x00200000:Exceeded the preemption nesting level -->
<!-- 0x00400000:unknown or reserved control flit received -->
<!-- 0x00800000:ExceedMulticastLimit -->
<!-- 0x01000000-0x40000000:Reserved -->
<!-- 0x80000000:Input buffer overrun by transmitting port -->
<!-- Default bitmask is UnsupportedVLMarker | BadCtrlDist | BadTailDist | BadHeadDist | BadVLMarker -->
<!-- <DefaultPortErrorAction>0x172000</DefaultPortErrorAction> -->
<!-- A bitmask for SM to skip the writing of specified attributes -->
<!-- <SkipAttributeWrite>0x1d74</SkipAttributeWrite> -->
<!-- Storm Lake optimizations. -->
<!-- <LftMultiblock>29</LftMultiblock> --> <!-- LFTs per MAD packet -->
<!-- <UseAggregateMADs>1</UseAggregateMADs> --> <!-- Enable aggregate MADs -->
<!-- Cable Info Caching Policy -->
<!-- The SM can be configured to collect Cable Info data and make -->
<!-- that data available via Cable Info SA queries. -->
<!-- This data can be collected either ByLink, ByPort or None -->
<!-- (disabled). The default is to collect the data ByLink, which -->
<!-- means that the SM assumes that it is only necessary to query -->
<!-- one end of each cable in the fabric. -->
<!-- <CableInfoPolicy>ByLink</CableInfoPolicy> -->
<!-- ********************************************************************** -->
</Sm>
<!-- Common FE (Fabric Executive) attributes -->
<Fe>
<!-- The FE is required by the Intel Omni-Path FM GUI. -->
<!-- To enable the FE, configure the SslSecurity parameters in this file -->
<!-- as desired. -->
<!-- For Host FM then set Start to 1. -->
<!-- For Embedded FM the Start parameter in this file is not used; -->
<!-- enable the FE via the smConfig and smPmStart chassis CLI commands. -->
<Start>0</Start> <!-- default FE startup for all instances -->
<!-- Overrides of the Common.Shared parameters if desired -->
<!-- <StartupRetries>5</StartupRetries> -->
<!-- <StartupStableWait>10</StartupStableWait> -->
<!-- <LogLevel>2</LogLevel> --> <!--#FE_0_log_level:dec-->
<!-- <LogFile></LogFile> --> <!--#FE_0_log_file-->
<!-- <SyslogFacility>Local6</SyslogFacility> -->
<!-- <DefaultPKey>0xffff</DefaultPKey> --> <!--#FE_0_default_pkey:hex-->
<!-- Trap Subscriptions allow the FE to register for Traps that will be -->
<!-- forwarded to an FE user with an open connection. "All" or 0xFFFF can -->
<!-- be used to register to have the FE listen for all Traps. -->
<!-- Default Traps are 64 and 65. -->
<!-- <TrapSubscriptions> -->
<!-- <TrapNumber>64</TrapNumber> --><!-- GID In Service (New Node) -->
<!-- <TrapNumber>65</TrapNumber> --><!-- GID Out of Service (Node Disappears) -->
<!-- </TrapSubscriptions> -->
<!-- Time in microseconds between checking & attempting to reconnect to -->
<!-- managers (SA/PM) that have become unreachable -->
<!-- <ManagerCheckRate>60000000</ManagerCheckRate> -->
<!-- Additional parameters for debug/development use -->
<!-- <Debug>0</Debug> --> <!--#FE_0_debug:dec-->
<!-- <RmppDebug>0</RmppDebug> --> <!--#FE_0_if3_debug_rmpp:dec-->
<!-- Alternative to use of LogLevel. Use of LogLevel recommended. -->
<!-- for each subsystem there can be a LogMask. The mask selects -->
<!-- severities of log messages to enable: -->
<!-- 0x1=fatal, 0x2=actionable error, 0x4=actionable warning, -->
<!-- 0x8=actionable notice, 0x10=actionable info, 0x20=error, 0x40=warn, -->
<!-- 0x80=notice, 0x100=progress, 0x200=info, 0x400=verbose, 0x800=data, -->
<!-- 0x1000=debug1, 0x2000=debug2, 0x4000=debug3, 0x8000=debug4 -->
<!-- 0x10000=func call, 0x20000=func args, 0x40000=func exit, -->
<!-- For Host SM, the Linux syslog service will need to have an -->
<!-- appropriate level of logging enabled. -->
<!-- For ESM corresponding Chassis Logging must also be enabled -->
<!-- and Sm config applies to all managers. -->
<!-- <CS_LogMask>0x00000000</CS_LogMask> -->
<!-- <MAI_LogMask>0x000001ff</MAI_LogMask> -->
<!-- <CAL_LogMask>0x000001ff</CAL_LogMask> -->
<!-- <DVR_LogMask>0x000001ff</DVR_LogMask> -->
<!-- <IF3_LogMask>0x000001ff</IF3_LogMask> -->
<!-- <SM_LogMask>0x000001ff</SM_LogMask> -->
<!-- <SA_LogMask>0x000001ff</SA_LogMask> -->
<!-- <PM_LogMask>0x000001ff</PM_LogMask> -->
<!-- <PA_LogMask>0x000001ff</PA_LogMask> -->
<!-- <FE_LogMask>0x000001ff</FE_LogMask> -->
<!-- <APP_LogMask>0x000001ff</APP_LogMask> -->
</Fe>
<!-- Common PM (Performance Manager) attributes -->
<Pm>
<!-- ESM does not support Start via XML configuration. Use CLI commands -->
<Start>1</Start> <!-- default PM startup for all instances -->
<ServiceLease>60</ServiceLease> <!-- ServiceRecord lease with SA seconds --> <!--PM_0_timer:dec-->
<!-- The PM constantly sweeps and computes fabric statistics -->
<!-- The SweepInterval must be between 1 and 43200 seconds -->
<SweepInterval>10</SweepInterval> <!-- time between sweeps in seconds --> <!--PM_0_SweepInterval:dec-->
<!-- The PM has a PA which supports client queries from tools such as -->
<!-- opatop, opareport and the FE (for the Fabric Viewer). -->
<!-- This sets the number of concurrent client queries allowed. -->
<!-- The minimum setting for MaxClients is 3 -->
<MaxClients>3</MaxClients> <!--PM_0_MaxClients:dec-->
<!-- The PM can retain recent fabric topology and performance data. -->
<!-- Each such dataset is referred to as an Image. Images allow for -->
<!-- access to recent history and/or Freeze Frame by clients -->
<!-- However, each image consumes memory, so care must be taken not to -->
<!-- take an excessive amount of memory, especially for larger fabrics -->
<!-- FreezeFrameImages must be at least 2*MaxClients - 1, so minimum is 5 -->
<!-- TotalImages must be at least FreezeFrameImages + 2. so minimum is 7 -->
<TotalImages>10</TotalImages> <!-- total images for history and freeze --> <!--PM_0_TotalImages:dec-->
<FreezeFrameImages>5</FreezeFrameImages> <!-- max unique frozen images --> <!--PM_0_FreezeFrameImages:dec-->
<!-- If a PA client application hangs or dies, after this much time all -->
<!-- its frozen images will be released -->
<FreezeFrameLease>60</FreezeFrameLease> <!-- in seconds -->
<!-- The MASTER PM sends copies of RAM-resident images to STANDBY PMs. -->
<!-- ImageUpdateInterval is the minimum (fastest) interval, -->
<!-- in seconds, at which the update will occur. The MASTER will update -->
<!-- all STANDBY PMs in the specified interval. If ImageUpdateInterval -->
<!-- is set to 0, no RAM-resident images will be copied, nor will -->
<!-- short-term PA history files be copied to STANDBY PMs. -->
<!-- This value must be less than PM SweepInterval. -->
<ImageUpdateInterval>5</ImageUpdateInterval> <!--PM_0_ImageUpdateInterval:dec-->
<!-- Thresholds for the classes of error counters -->
<!-- 0 causes given class of errors to be ignored -->
<Thresholds>
<Integrity>100</Integrity>
<Congestion>100</Congestion>
<SmaCongestion>100</SmaCongestion>
<Bubble>100</Bubble>
<Security>10</Security>
<Routing>100</Routing>
</Thresholds>
<!-- maximum ports per PM Sweep to log if exceeded threshold -->
<!-- for given class of error counters. 0 suppresses logging -->
<ThresholdsExceededMsgLimit>
<Integrity>10</Integrity> <!--PM_0_ThresholdsExceededMsgLimit_Integrity:dec-->
<Congestion>0</Congestion>
<SmaCongestion>0</SmaCongestion>
<Bubble>0</Bubble>
<Security>10</Security> <!--PM_0_ThresholdsExceededMsgLimit_Security:dec-->
<Routing>10</Routing> <!--PM_0_ThresholdsExceededMsgLimit_Routing:dec-->
</ThresholdsExceededMsgLimit>
<!-- Weight to use for each individual counter when computing Integrity -->
<!-- 0 causes given counter to be ignored -->
<IntegrityWeights>
<LocalLinkIntegrityErrors>0</LocalLinkIntegrityErrors>
<RcvErrors>100</RcvErrors>
<ExcessiveBufferOverruns>100</ExcessiveBufferOverruns>
<LinkErrorRecovery>0</LinkErrorRecovery>
<LinkDowned>25</LinkDowned>
<UncorrectableErrors>100</UncorrectableErrors>
<FMConfigErrors>100</FMConfigErrors>
<!-- LQI is first put through an equation before used in Integrity -->
<!-- category calculation: 2^(5-LQI)-1 -->
<LinkQualityIndicator>40</LinkQualityIndicator>
<!-- The number of lanes down for this port: -->
<!-- LinkWidth.Active - LinkWidthDowngrade.RxActive -->
<LinkWidthDowngrade>100</LinkWidthDowngrade>
</IntegrityWeights>
<!-- Weight to use for each individual counter when computing Congestion -->
<!-- Pct (Percentage) means the specified counter is divided by the -->
<!-- appropriate data transfer counter, then normalized to a -->
<!-- predetermined range, then weighted, and summed into the category -->
<!-- 0 causes given counter to be ignored -->
<CongestionWeights>
<XmitWaitPct>0</XmitWaitPct> <!-- 0.01% to 1%-->
<CongDiscards>100</CongDiscards>
<RcvFECNPct>5</RcvFECNPct> <!-- 0.1% to 10%-->
<RcvBECNPct>1</RcvBECNPct> <!-- 0.1% to 10%-->
<XmitTimeCongPct>25</XmitTimeCongPct> <!-- 0.1% to 10%-->
<MarkFECNPct>25</MarkFECNPct> <!-- 0.1% to 10%-->
</CongestionWeights>
<!-- Resolution determines the number of LocalLinkIntegrity or -->
<!-- LinkErrorRecovery errors must occur before the PMA will -->
<!-- include them in the ErrorCounterSummary. -->
<Resolution>
<LocalLinkIntegrity>10000</LocalLinkIntegrity>
<LinkErrorRecovery>1024</LinkErrorRecovery>
</Resolution>
<!-- This controls when the PM clears PMA Error counters -->
<!-- 0 = clear when non-zero -->
<!-- 1 = clear when 1/8 of individual counters max -->
<!-- 2 = clear when 2/8 of individual counters max -->
<!-- 3 = clear when 3/8 of individual counters max -->
<!-- 4 = clear when 4/8 of individual counters max -->
<!-- 5 = clear when 5/8 of individual counters max -->
<!-- 6 = clear when 6/8 of individual counters max -->
<!-- 7 = clear when 7/8 of individual counters max -->
<ErrorClear>7</ErrorClear>
<!-- These control if the PM attempts to clear these counter types -->
<ClearDataXfer>0</ClearDataXfer> <!-- Clear Data Transfer Counters -->
<Clear64bit>0</Clear64bit> <!-- Clear 64-bit Error Counters -->
<Clear32bit>1</Clear32bit> <!-- Clear 32-bit Error Counters -->
<Clear8bit>1</Clear8bit> <!-- Clear 8-bit Error Counters -->
<!-- These parameters provide control over how the PM accesses the -->
<!-- PMAs on various devices. Devices may be avoided if they are -->
<!-- known to not support a PMA. -->
<ProcessHFICounters>1</ProcessHFICounters> <!-- process HFI Counters -->
<ProcessVLCounters>1</ProcessVLCounters> <!-- process Per-VL Counters -->
<ProcessErrorInfo>1</ProcessErrorInfo> <!-- process PMA Error Info -->
<!-- These parameters tune how many concurrent PMA requests the PM -->
<!-- can have in flight while querying the PMAs in the fabric. -->
<PmaBatchSize>2</PmaBatchSize> <!-- max parallel requests to a given PMA -->
<MaxParallelNodes>10</MaxParallelNodes> <!-- max devices in parallel -->
<!-- The PM waits up to RespTimeout milliseconds for PMA responses. -->
<!-- Upon a timeout, up to MaxAttempts are attempted for a given request -->
<MaxAttempts>3</MaxAttempts>
<RespTimeout>250</RespTimeout>
<!-- PM will start with MinRespTimeout as the timeout value for requests -->
<!-- and use multiples of this value for subsequent attempts if there is -->
<!-- a timeout in the previous attempt. PM will keep retrying till -->
<!-- cumulative sum of timeouts for retries is less than -->
<!-- RespTimeout multiplied by MaxAttempts. -->
<!-- If MinRespTimeout is set to 0, upon timeout, up to MaxAttempts -->
<!-- are attempted with each attempt having a timeout of RespTimeout -->
<MinRespTimeout>35</MinRespTimeout> <!-- in milliseconds -->
<!-- This sets a limit on the number of PMA Node or Port warning log -->
<!-- messages output per sweep -->
<SweepErrorsLogThreshold>10</SweepErrorsLogThreshold>
<!-- This sets a limit on the number of Port ErrorInfo register log -->
<!-- messages per sweep. -->
<!-- A value of "0" will disable logging for the register -->
<!-- A value of "Unlimited" will not limit the output -->
<!-- Note: Requires ProcessErrorInfo set to 1 -->
<SweepErrorInfoLogThresholds>
<Integrity>Unlimited</Integrity>
<Security>10</Security>
<Routing>10</Routing>
</SweepErrorInfoLogThresholds>
<!-- Short Term History will enable the PM to store an extended time -->
<!-- period of history data on the disk. -->
<!-- The data will be compressed before it is stored. -->
<!-- StorageLocation is where the history files will be stored. -->
<!-- It must be a full filepath, beginning with a '/' -->
<!-- TotalHistory is the total number of hours of history that will be -->
<!-- stored. This is a limit on the total amount of data stored, and -->
<!-- not a limit on a file's age. PM downtime does not count towards -->
<!-- the total time -->
<!-- ImagesPerComposite determines how many images will be compounded -->
<!-- into a single image as part of writing to the file. A higher -->
<!-- number will save disk space but will result in a lower data -->
<!-- granularity. Must not be 0. -->
<!-- MaxDiskSpace puts a cap on how much disk space the short term -->
<!-- history is allowed to use. If this size is exceeded, the oldest -->
<!-- files will be deleted to save space. -->
<!-- CompressionDivisions determines how many divisions will be used to -->
<!-- concurrently compress or decompress data. Recommend less than -->
<!-- or equal to number of processing cores of the management node, -->
<!-- must not exceed 32 -->
<ShortTermHistory>
<Enable>1</Enable>
<!-- <StorageLocation>/var/lib/opa-fm/pahistory</StorageLocation> --> <!-- must be absolute path -->
<TotalHistory>24</TotalHistory> <!-- in hours -->
<ImagesPerComposite>3</ImagesPerComposite>
<MaxDiskSpace>1024</MaxDiskSpace> <!-- in MiB -->
<CompressionDivisions>8</CompressionDivisions>
</ShortTermHistory>
<!-- Overrides of the Common.Shared parameters if desired -->
<!-- <LogLevel>2</LogLevel> --> <!--#PM_0_log_level:dec-->
<!-- <LogFile></LogFile> --> <!--#PM_0_log_file-->
<!-- <SyslogFacility>Local6</SyslogFacility> -->
<!-- <Priority>0</Priority> --> <!-- 0 to 15, higher wins --> <!--#PM_0_priority:dec-->
<!-- <ElevatedPriority>0</ElevatedPriority> --> <!-- 0 to 15, higher wins --> <!--#PM_0_elevated_priority:dec-->
<!-- <DefaultPKey>0xffff</DefaultPKey> --> <!--#PM_0_default_pkey:hex-->
<!-- Additional parameters for debug/development use -->
<!-- <Debug>0</Debug> --> <!--#PM_0_debug:dec-->
<!-- <RmppDebug>0</RmppDebug> --> <!--#PM_0_if3_debug_rmpp:dec-->
<!-- Alternative to use of LogLevel. Use of LogLevel recommended. -->
<!-- for each subsystem there can be a LogMask. The mask selects -->
<!-- severities of log messages to enable: -->
<!-- 0x1=fatal, 0x2=actionable error, 0x4=actionable warning, -->
<!-- 0x8=actionable notice, 0x10=actionable info, 0x20=error, 0x40=warn, -->
<!-- 0x80=notice, 0x100=progress, 0x200=info, 0x400=verbose, 0x800=data, -->
<!-- 0x1000=debug1, 0x2000=debug2, 0x4000=debug3, 0x8000=debug4 -->
<!-- 0x10000=func call, 0x20000=func args, 0x40000=func exit, -->
<!-- For Host SM, the Linux syslog service will need to have an -->
<!-- appropriate level of logging enabled. -->
<!-- For ESM corresponding Chassis Logging must also be enabled -->
<!-- and Sm config applies to all managers. -->
<!-- <CS_LogMask>0x00000000</CS_LogMask> -->
<!-- <MAI_LogMask>0x000001ff</MAI_LogMask> -->
<!-- <CAL_LogMask>0x000001ff</CAL_LogMask> -->
<!-- <DVR_LogMask>0x000001ff</DVR_LogMask> -->
<!-- <IF3_LogMask>0x000001ff</IF3_LogMask> -->
<!-- <SM_LogMask>0x000001ff</SM_LogMask> -->
<!-- <SA_LogMask>0x000001ff</SA_LogMask> -->
<!-- <PM_LogMask>0x000001ff</PM_LogMask> -->
<!-- <PA_LogMask>0x000001ff</PA_LogMask> -->
<!-- <FE_LogMask>0x000001ff</FE_LogMask> -->
<!-- <APP_LogMask>0x000001ff</APP_LogMask> -->
</Pm>
</Common>
<!-- A single FM Instance/subnet - this is the only instance supported for ESM -->
<Fm>
<!-- Additional Instance Specific sets of applications -->
<Applications>
</Applications>
<!-- Additional Instance Specific groups of devices -->
<DeviceGroups>
</DeviceGroups>
<!-- Additional Instance Specific Virtual Fabrics -->
<VirtualFabrics>
</VirtualFabrics>
<!-- Shared Instance config, applies to all components: SM, PM and FE -->
<Shared>
<!-- Fm.Shared.Start controls overall startup of the Instance. -->
<!-- If 0, none of the components in the Instance are started. -->
<!-- If 1, instance is enabled and Fm.Sm.Start, Fm.Pm.Start, etc -->
<!-- control startup of each manager. The default for each manager -->
<!-- is defined by Common.Sm.Start, Common.Pm.Start, etc -->
<!-- ESM does not support Start via XML configuration. Use CLI commands -->
<Start>1</Start>
<!-- <StartupRetries>5</StartupRetries> -->
<!-- <StartupStableWait>10</StartupStableWait> -->
<!-- Name, Hfi, Port, and PortGUID are ignored for ESM since they -->
<!-- are automatically set -->
<Name>fm0</Name> <!-- also for logging with _sm, _fe, _pm appended --> <!--SM_0_name-->
<Hfi>1</Hfi> <!-- local HFI to use for FM instance, 1=1st HFI --> <!--SM_0_device:plus-->
<Port>1</Port> <!-- local HFI port to use for FM instance, 1=1st Port --> <!--SM_0_port:dec-->
<PortGUID>0x0000000000000000</PortGUID> <!-- local port to use for FM --> <!--SM_0_portGuid-->
<SubnetPrefix>0xfe80000000000000</SubnetPrefix> <!-- should be unique --> <!--SM_0_gidprefix==0xfe80000000000000-->
<!-- Overrides of the Common.Shared parameters if desired -->
<!-- ESM does not support LogFile -->
<!-- <LogFile>/var/log/fm0_log</LogFile> --> <!-- log for this instance -->
</Shared>
<!-- Instance Specific SM (Subnet Manager) attributes -->
<Sm>
<!-- Overrides of the Common.Shared, Common.Sm or Fm.Shared parameters -->
<!-- ESM does not support Start via XML configuration. Use CLI commands -->
<!-- <Start>1</Start> --> <!--#SM_0_start:dec==1-->
<!-- <StartupRetries>5</StartupRetries> -->
<!-- <StartupStableWait>10</StartupStableWait> -->
<PreDefinedTopology>
<Enable>0</Enable>
<TopologyFilename>/etc/opa/topology.0:0.xml</TopologyFilename>
</PreDefinedTopology>
</Sm>
<!-- Instance Specific FE (Fabric Executive Manager) attributes -->
<Fe>
<TcpPort>3245</TcpPort> <!-- TCP socket to listen for FV on --> <!--FE_0_listen-->
<!-- Overrides of the Common.Shared, Common.Fe or Fm.Shared parameters -->
<!-- See Common.Fe for more information about enabling the FE -->
<!-- <Start>0</Start> --> <!--#FE_0_start:dec==0-->
<!-- <StartupRetries>5</StartupRetries> -->
<!-- <StartupStableWait>10</StartupStableWait> -->
</Fe>
<!-- Instance Specific PM (Performance Manager) attributes -->
<Pm>
<!-- Overrides of the Common.Shared, Common.Pm or Fm.Shared parameters -->
<!-- ESM does not support Start via XML configuration. Use CLI commands -->
<!-- <Start>1</Start> --> <!--#PM_0_start:dec==1-->
<ShortTermHistory>
<StorageLocation>/var/lib/opa-fm/pm0_pahistory</StorageLocation> <!-- must be absolute path -->
</ShortTermHistory>
</Pm>
</Fm>
<!-- A single FM Instance/subnet -->
<Fm>
<!-- Additional Instance Specific sets of applications -->
<Applications>
</Applications>
<!-- Additional Instance Specific groups of devices -->
<DeviceGroups>
</DeviceGroups>
<!-- Additional Instance Specific Virtual Fabrics -->
<VirtualFabrics>
</VirtualFabrics>
<!-- Shared Instance config, applies to all components: SM, PM and FE -->
<Shared>
<Start>0</Start> <!-- Overall Instance Startup, see fm0 for more info --> <!--SM_1_start:dec-->
<Name>fm1</Name> <!-- also for logging with _sm, _fe, _pm appended --> <!--SM_1_name-->
<Hfi>1</Hfi> <!-- local HFI to use for FM instance, 1=1st HFI --> <!--SM_1_device:plus-->
<Port>2</Port> <!-- local HFI port to use for FM instance, 1=1st Port --> <!--SM_1_port:dec-->
<PortGUID>0x0000000000000000</PortGUID> <!-- local port to use for FM --> <!--SM_1_portGuid-->
<SubnetPrefix>0xfe80000000001001</SubnetPrefix> <!-- should be unique --> <!--SM_1_gidprefix==0xfe80000000000000-->
<!-- Overrides of the Common.Shared or Fm.Shared parameters if desired -->
<!-- <LogFile>/var/log/fm1_log</LogFile> --> <!-- log for this instance -->
<!-- <StartupRetries>5</StartupRetries> -->
<!-- <StartupStableWait>10</StartupStableWait> -->
</Shared>
<!-- Instance Specific SM (Subnet Manager) attributes -->
<Sm>
<!-- Overrides of the Common.Shared, Common.Sm or Fm.Shared parameters -->
<!-- <Start>0</Start> --> <!--#SM_1_start:dec==0-->
<!-- <StartupRetries>5</StartupRetries> -->
<!-- <StartupStableWait>10</StartupStableWait> -->
<!-- <MasterPingInterval>5</MasterPingInterval> --> <!--#SM_1_master_ping_interval:dec-->
<!-- <MasterPingMaxFail>3</MasterPingMaxFail> --> <!--#SM_1_master_ping_max_fail:dec-->
<!-- <DbSyncInterval>15</DbSyncInterval> --> <!--#SM_1_dbsync_interval:dec-->
<!-- <SpineFirstRouting>0</SpineFirstRouting> --> <!--#SM_1_spine_first_routing:dec-->
<!-- <Lmc>0</Lmc> --> <!--#SM_1_lmc:dec-->
<Multicast>
<!-- <DisableRateCheck>0</DisableRateCheck> --> <!--#SM_1_disable_mcast_check:dec-->
<!-- <MLIDTableCap>1024</MLIDTableCap> --> <!--#SM_1_mcastMLidTableCap:dec-->
<!-- Additional Instance Specific MLIDShare settings -->
<!-- Additional Instance Specific MulticastGroup settings -->
</Multicast>
<!-- <SmKey>0x0</SmKey> --> <!--#SM_1_key:hex-->
<!-- <MKey>0x0</MKey> --> <!--#SM_1_Mkey:hex-->
<!-- <SwitchLifetime>33ms</SwitchLifetime> --> <!--#SM_1_switchlifetime:2n-->
<!-- <HoqLife>8ms</HoqLife> --> <!--#SM_1_hoqlife:2n-->
<!-- <VLStallCount>7</VLStallCount> --> <!--#SM_1_vlstall:dec-->
<AdaptiveRouting> <!--#SM_1_ar_enable#=-->
<Enable>0</Enable> <!--#SM_1_ar_enable:dec^=-->
<LostRouteOnly>0</LostRouteOnly> <!--#SM_1_ar_lost_route_only:dec^=-->
</AdaptiveRouting> <!--#SM_1_ar_enable#=-->
<!-- <SaRespTime>1s</SaRespTime> --> <!--#SM_1_saRespTime:2n-->
<!-- <NoReplyIfBusy>0</NoReplyIfBusy> -->
<!-- <PacketLifetime>1s</PacketLifetime> --> <!--#SM_1_saPacketLifetime:2n-->
<DynamicPacketLifetime>
<!-- <Enable>0</Enable> --> <!--#SM_1_dynamicPlt:dec^=-->
<!-- <Hops01>67ms</Hops01> --> <!--#SM_1_dynamicPlt_01:2n^=-->
<!-- <Hops02>134ms</Hops02> --> <!--#SM_1_dynamicPlt_02:2n^=-->
<!-- <Hops03>134ms</Hops03> --> <!--#SM_1_dynamicPlt_03:2n^=-->
<!-- <Hops04>268ms</Hops04> --> <!--#SM_1_dynamicPlt_04:2n^=-->
<!-- <Hops05>268ms</Hops05> --> <!--#SM_1_dynamicPlt_05:2n^=-->
<!-- <Hops06>268ms</Hops06> --> <!--#SM_1_dynamicPlt_06:2n^=-->
<!-- <Hops07>268ms</Hops07> --> <!--#SM_1_dynamicPlt_07:2n^=-->
<!-- <Hops08>536ms</Hops08> --> <!--#SM_1_dynamicPlt_08:2n^=-->
<!-- <Hops09>536ms</Hops09> --> <!--#SM_1_dynamicPlt_09:2n^=-->
</DynamicPacketLifetime>
<!-- <SmaBatchSize>2</SmaBatchSize> --> <!--#SM_1_sma_batch_size:dec^=-->
<!-- <MaxParallelReqs>3</MaxParallelReqs> --> <!--#SM_1_max_parallel_reqs:dec^=-->
<!-- <SweepInterval>300</SweepInterval> --> <!--#SM_1_timer:dec-->
<!-- <MaxAttempts>3</MaxAttempts> --> <!--#SM_1_max_retries:dec-->
<!-- <RespTimeout>250</RespTimeout> --> <!-- in milliseconds --> <!--#SM_1_rcv_wait_msec:dec-->
<!-- <SweepErrorsThreshold>0</SweepErrorsThreshold> --> <!--#SM_1_topo_errors_threshold:dec-->
<!-- <SweepAbandonThreshold>3</SweepAbandonThreshold> --> <!--#SM_1_topo_abandon_threshold:dec-->
<!-- <TrapThreshold>0</TrapThreshold> --> <!--#SM_1_trap_threshold:dec-->
<!-- <NonRespTimeout>600</NonRespTimeout> --> <!-- in seconds --> <!--#SM_1_non_resp_tsec:dec==600-->
<!-- <NonRespMaxCount>3</NonRespMaxCount> --> <!--#SM_1_non_resp_max_count:dec==3-->
<!-- <NodeAppearanceMsgThreshold>0</NodeAppearanceMsgThreshold> --> <!--#SM_1_node_appearance_msg_thresh:dec-->
<!-- <SmPerfDebug>0</SmPerfDebug> --> <!-- log additional SM sweep info --> <!--#SM_1_sm_debug_perf:dec-->
<!-- <SaPerfDebug>0</SaPerfDebug> --> <!-- log additional SA query info --> <!--#SM_1_sa_debug_perf:dec-->
<!-- <Debug>0</Debug> --> <!--#SM_1_debug:dec-->
<!-- <RmppDebug>0</RmppDebug> --> <!--#SM_1_sa_debug_rmpp:dec-->
<!-- <LID>0</LID> --> <!--#SM_1_lid:dec-->
<!-- <Priority>0</Priority> --> <!-- 0 to 15, higher wins --> <!--#SM_1_priority:dec-->
<!-- <ElevatedPriority>0</ElevatedPriority> --> <!-- 0 to 15, higher wins --> <!--#SM_1_elevated_priority:dec-->
<!-- <LogLevel>2</LogLevel> --> <!--#SM_1_log_level:dec-->
<!-- <LogFile></LogFile> --> <!--#SM_1_log_file-->
<!-- <SyslogFacility>Local6</SyslogFacility> -->
<!-- <LoopTestOn>0</LoopTestOn> --> <!-- cable loop test --> <!--#SM_1_loop_test_on:dec-->
<!-- <LoopTestPackets>20</LoopTestPackets> --> <!-- inject count --> <!--#SM_1_loop_test_packets:dec==1-->
<!-- <LIDSpacing>0x0</LIDSpacing> --> <!-- spacing of LIDs to test LFT --> <!--#SM_1_topo_lid_offset:hex-->
<!-- <SaRmppChecksum>0</SaRmppChecksum> --> <!-- RMPP internal checksum --> <!--#SM_1_sa_rmpp_checksum:dec-->
<!-- <DynamicPortAlloc>1</DynamicPortAlloc> --> <!--#SM_1_dynamic_port_alloc:dec-->
<PreDefinedTopology>
<Enable>0</Enable>
<TopologyFilename>/etc/opa/topology.1:2.xml</TopologyFilename>
</PreDefinedTopology>
</Sm>
<!-- Instance Specific FE (Fabric Executive Manager) attributes -->
<Fe>
<TcpPort>3246</TcpPort> <!-- TCP socket to listen for FV on --> <!--FE_1_listen-->
<!-- Overrides of the Common.Shared, Common.Fe or Fm.Shared parameters -->
<!-- See Common.Fe for more information about enabling the FE -->
<!-- <Start>0</Start> --> <!--#FE_1_start:dec==0-->
<!-- <StartupRetries>5</StartupRetries> -->
<!-- <StartupStableWait>10</StartupStableWait> -->
<!-- <Debug>0</Debug> --> <!--#FE_1_debug:dec-->
<!-- <LogLevel>2</LogLevel> --> <!--#FE_1_log_level:dec-->
<!-- <LogFile></LogFile> --> <!--#FE_1_log_file-->
<!-- <SyslogFacility>Local6</SyslogFacility> -->
<!-- <DefaultPKey>0xffff</DefaultPKey> --> <!--#FE_1_default_pkey:hex-->
<!-- <RmppDebug>0</RmppDebug> --> <!--#FE_1_if3_debug_rmpp:dec-->
</Fe>
<!-- Instance Specific PM (Performance Manager) attributes -->
<Pm>
<!-- Overrides of the Common.Shared, Common.Pm or Fm.Shared parameters -->
<!-- <Start>0</Start> --> <!--#PM_1_start:dec==0-->
<!-- <SweepInterval>10</SweepInterval> --> <!-- time between sweeps in seconds --> <!--#PM_1_SweepInterval:dec-->
<!-- <TotalImages>10</TotalImages> --> <!-- total images for history and freeze --> <!--#PM_1_TotalImages:dec-->
<!-- <FreezeFrameImages>5</FreezeFrameImages> --> <!-- max unique frozen images --> <!--#PM_1_FreezeFrameImages:dec-->
<ShortTermHistory>
<StorageLocation>/var/lib/opa-fm/pm1_pahistory</StorageLocation> <!-- must be absolute path -->
</ShortTermHistory>
<!-- <Debug>0</Debug> --> <!--#PM_1_debug:dec-->
<!-- <LogLevel>2</LogLevel> --> <!--#PM_1_log_level:dec-->
<!-- <LogFile></LogFile> --> <!--#PM_1_log_file-->
<!-- <SyslogFacility>Local6</SyslogFacility> -->
<!-- <Priority>0</Priority> --> <!-- 0 to 15, higher wins --> <!--#PM_1_priority:dec-->
<!-- <ElevatedPriority>0</ElevatedPriority> --> <!-- 0 to 15, higher wins --> <!--#PM_1_elevated_priority:dec-->
<!-- <DefaultPKey>0xffff</DefaultPKey> --> <!--#PM_1_default_pkey:hex-->
<!-- <ServiceLease>60</ServiceLease> --> <!-- in seconds --> <!--#PM_1_timer:dec-->
<!-- <RmppDebug>0</RmppDebug> --> <!--#PM_1_if3_debug_rmpp:dec-->
</Pm>
</Fm>
<!-- A single FM Instance/subnet -->
<Fm>
<!-- Additional Instance Specific sets of applications -->
<Applications>
</Applications>
<!-- Additional Instance Specific groups of devices -->
<DeviceGroups>
</DeviceGroups>
<!-- Additional Instance Specific Virtual Fabrics -->
<VirtualFabrics>
</VirtualFabrics>
<!-- Shared Instance config, applies to all components: SM, PM and FE -->
<Shared>
<Start>0</Start> <!-- Overall Instance Startup, see fm0 for more info --> <!--SM_2_start:dec-->
<!-- <StartupRetries>5</StartupRetries> -->
<!-- <StartupStableWait>10</StartupStableWait> -->
<Name>fm2</Name> <!-- also for logging with _sm, _fe, _pm appended --> <!--SM_2_name-->
<Hfi>2</Hfi> <!-- local HFI to use for FM instance, 1=1st HFI --> <!--SM_2_device:plus-->
<Port>1</Port> <!-- local HFI port to use for FM instance, 1=1st Port --> <!--SM_2_port:dec-->
<PortGUID>0x0000000000000000</PortGUID> <!-- local port to use for FM --> <!--SM_2_portGuid-->
<SubnetPrefix>0xfe80000000001002</SubnetPrefix> <!-- should be unique --> <!--SM_2_gidprefix==0xfe80000000000000-->
<!-- Overrides of the Common.Shared or Fm.Shared parameters if desired -->
<!-- <LogFile>/var/log/fm2_log</LogFile> --> <!-- log for this instance -->
<!-- <SyslogFacility>Local6</SyslogFacility> -->
</Shared>
<!-- Instance Specific SM (Subnet Manager) attributes -->
<Sm>
<!-- Overrides of the Common.Shared, Common.Sm or Fm.Shared parameters -->
<!-- <Start>0</Start> --> <!--#SM_2_start:dec==0-->
<!-- <StartupRetries>5</StartupRetries> -->
<!-- <StartupStableWait>10</StartupStableWait> -->
<!-- <MasterPingInterval>5</MasterPingInterval> --> <!--#SM_2_master_ping_interval:dec-->
<!-- <MasterPingMaxFail>3</MasterPingMaxFail> --> <!--#SM_2_master_ping_max_fail:dec-->
<!-- <DbSyncInterval>15</DbSyncInterval> --> <!--#SM_2_dbsync_interval:dec-->
<!-- <SpineFirstRouting>0</SpineFirstRouting> --> <!--#SM_2_spine_first_routing:dec-->
<!-- <Lmc>0</Lmc> --> <!--#SM_2_lmc:dec-->
<Multicast>
<!-- <DisableRateCheck>0</DisableRateCheck> --> <!--#SM_2_disable_mcast_check:dec-->
<!-- <MLIDTableCap>1024</MLIDTableCap> --> <!--#SM_2_mcastMLidTableCap:dec-->
<!-- Additional Instance Specific MLIDShare settings -->
<!-- Additional Instance Specific MulticastGroup settings -->
</Multicast>
<!-- <SmKey>0x0</SmKey> --> <!--#SM_2_key:hex-->
<!-- <MKey>0x0</MKey> --> <!--#SM_2_Mkey:hex-->
<!-- <SwitchLifetime>33ms</SwitchLifetime> --> <!--#SM_2_switchlifetime:2n-->
<!-- <HoqLife>8ms</HoqLife> --> <!--#SM_2_hoqlife:2n-->
<!-- <VLStallCount>7</VLStallCount> --> <!--#SM_2_vlstall:dec-->
<AdaptiveRouting> <!--#SM_2_ar_enable#=-->
<Enable>0</Enable> <!--#SM_2_ar_enable:dec^=-->
<LostRouteOnly>0</LostRouteOnly> <!--#SM_2_ar_lost_route_only:dec^=-->
</AdaptiveRouting> <!--#SM_2_ar_enable#=-->
<!-- <SaRespTime>1s</SaRespTime> --> <!--#SM_2_saRespTime:2n-->
<!-- <NoReplyIfBusy>0</NoReplyIfBusy> -->
<!-- <PacketLifetime>1s</PacketLifetime> --> <!--#SM_2_saPacketLifetime:2n-->
<DynamicPacketLifetime>
<!-- <Enable>0</Enable> --> <!--#SM_2_dynamicPlt:dec^=-->
<!-- <Hops01>67ms</Hops01> --> <!--#SM_2_dynamicPlt_01:2n^=-->
<!-- <Hops02>134ms</Hops02> --> <!--#SM_2_dynamicPlt_02:2n^=-->
<!-- <Hops03>134ms</Hops03> --> <!--#SM_2_dynamicPlt_03:2n^=-->
<!-- <Hops04>268ms</Hops04> --> <!--#SM_2_dynamicPlt_04:2n^=-->
<!-- <Hops05>268ms</Hops05> --> <!--#SM_2_dynamicPlt_05:2n^=-->
<!-- <Hops06>268ms</Hops06> --> <!--#SM_2_dynamicPlt_06:2n^=-->
<!-- <Hops07>268ms</Hops07> --> <!--#SM_2_dynamicPlt_07:2n^=-->
<!-- <Hops08>536ms</Hops08> --> <!--#SM_2_dynamicPlt_08:2n^=-->
<!-- <Hops09>536ms</Hops09> --> <!--#SM_2_dynamicPlt_09:2n^=-->
</DynamicPacketLifetime>
<!-- <SmaBatchSize>2</SmaBatchSize> --> <!--#SM_2_sma_batch_size:dec^=-->
<!-- <MaxParallelReqs>3</MaxParallelReqs> --> <!--#SM_2_max_parallel_reqs:dec^=-->
<!-- <SweepInterval>300</SweepInterval> --> <!--#SM_2_timer:dec-->
<!-- <MaxAttempts>3</MaxAttempts> --> <!--#SM_2_max_retries:dec-->
<!-- <RespTimeout>250</RespTimeout> --> <!-- in milliseconds --> <!--#SM_2_rcv_wait_msec:dec-->
<!-- <SweepErrorsThreshold>0</SweepErrorsThreshold> --> <!--#SM_2_topo_errors_threshold:dec-->
<!-- <SweepAbandonThreshold>3</SweepAbandonThreshold> --> <!--#SM_2_topo_abandon_threshold:dec-->
<!-- <TrapThreshold>0</TrapThreshold> --> <!--#SM_2_trap_threshold:dec-->
<!-- <NonRespTimeout>600</NonRespTimeout> --> <!-- in seconds --> <!--#SM_2_non_resp_tsec:dec==600-->
<!-- <NonRespMaxCount>3</NonRespMaxCount> --> <!--#SM_2_non_resp_max_count:dec==3-->
<!-- <NodeAppearanceMsgThreshold>0</NodeAppearanceMsgThreshold> --> <!--#SM_2_node_appearance_msg_thresh:dec-->
<!-- <SmPerfDebug>0</SmPerfDebug> --> <!-- log additional SM sweep info --> <!--#SM_2_sm_debug_perf:dec-->
<!-- <SaPerfDebug>0</SaPerfDebug> --> <!-- log additional SA query info --> <!--#SM_2_sa_debug_perf:dec-->
<!-- <Debug>0</Debug> --> <!--#SM_2_debug:dec-->
<!-- <RmppDebug>0</RmppDebug> --> <!--#SM_2_sa_debug_rmpp:dec-->
<!-- <LID>0</LID> --> <!--#SM_2_lid:dec-->
<!-- <Priority>0</Priority> --> <!-- 0 to 15, higher wins --> <!--#SM_2_priority:dec-->
<!-- <ElevatedPriority>0</ElevatedPriority> --> <!-- 0 to 15, higher wins --> <!--#SM_2_elevated_priority:dec-->
<!-- <LogLevel>2</LogLevel> --> <!--#SM_2_log_level:dec-->
<!-- <LogFile></LogFile> --> <!--#SM_2_log_file-->
<!-- <SyslogFacility>Local6</SyslogFacility> -->
<!-- <LoopTestOn>0</LoopTestOn> --> <!-- cable loop test --> <!--#SM_2_loop_test_on:dec-->
<!-- <LoopTestPackets>20</LoopTestPackets> --> <!-- inject count --> <!--#SM_2_loop_test_packets:dec==1-->
<!-- <SaRmppChecksum>0</SaRmppChecksum> --> <!-- RMPP internal checksum --> <!--#SM_2_sa_rmpp_checksum:dec-->
<!-- <DynamicPortAlloc>1</DynamicPortAlloc> --> <!--#SM_2_dynamic_port_alloc:dec-->
<PreDefinedTopology>
<Enable>0</Enable>
<TopologyFilename>/etc/opa/topology.2:1.xml</TopologyFilename>
</PreDefinedTopology>
</Sm>
<!-- Instance Specific FE (Fabric Executive Manager) attributes -->
<Fe>
<TcpPort>3247</TcpPort> <!-- TCP socket to listen for FV on --> <!--FE_2_listen-->
<!-- Overrides of the Common.Shared, Common.Fe or Fm.Shared parameters -->
<!-- See Common.Fe for more information about enabling the FE -->
<!-- <Start>0</Start> --> <!--#FE_2_start:dec==0-->
<!-- <StartupRetries>5</StartupRetries> -->
<!-- <StartupStableWait>10</StartupStableWait> -->
<!-- <Debug>0</Debug> --> <!--#FE_2_debug:dec-->
<!-- <LogLevel>2</LogLevel> --> <!--#FE_2_log_level:dec-->
<!-- <LogFile></LogFile> --> <!--#FE_2_log_file-->
<!-- <SyslogFacility>Local6</SyslogFacility> -->
<!-- <DefaultPKey>0xffff</DefaultPKey> --> <!--#FE_2_default_pkey:hex-->
<!-- <RmppDebug>0</RmppDebug> --> <!--#FE_2_if3_debug_rmpp:dec-->
</Fe>
<!-- Instance Specific PM (Performance Manager) attributes -->
<Pm>
<!-- Overrides of the Common.Shared, Common.Pm or Fm.Shared parameters -->
<!-- <Start>0</Start> --> <!--#PM_2_start:dec==0-->
<!-- <SweepInterval>10</SweepInterval> --> <!-- time between sweeps in seconds --> <!--#PM_2_SweepInterval:dec-->
<!-- <TotalImages>10</TotalImages> --> <!-- total images for history and freeze --> <!--#PM_2_TotalImages:dec-->
<!-- <FreezeFrameImages>5</FreezeFrameImages> --> <!-- max unique frozen images --> <!--#PM_2_FreezeFrameImages:dec-->
<ShortTermHistory>
<StorageLocation>/var/lib/opa-fm/pm2_pahistory</StorageLocation> <!-- must be absolute path -->
</ShortTermHistory>
<!-- <Debug>0</Debug> --> <!--#PM_2_debug:dec-->
<!-- <LogLevel>2</LogLevel> --> <!--#PM_2_log_level:dec-->
<!-- <LogFile></LogFile> --> <!--#PM_2_log_file-->
<!-- <SyslogFacility>Local6</SyslogFacility> -->
<!-- <Priority>0</Priority> --> <!-- 0 to 15, higher wins --> <!--#PM_2_priority:dec-->
<!-- <ElevatedPriority>0</ElevatedPriority> --> <!-- 0 to 15, higher wins --> <!--#PM_2_elevated_priority:dec-->
<!-- <DefaultPKey>0xffff</DefaultPKey> --> <!--#PM_2_default_pkey:hex-->
<!-- <ServiceLease>60</ServiceLease> --> <!-- in seconds --> <!--#PM_2_timer:dec-->
<!-- <RmppDebug>0</RmppDebug> --> <!--#PM_2_if3_debug_rmpp:dec-->
</Pm>
</Fm>
<!-- A single FM Instance/subnet -->
<Fm>
<!-- Additional Instance Specific sets of Applications -->
<Applications>
</Applications>
<!-- Additional Instance Specific groups of devices -->
<DeviceGroups>
</DeviceGroups>
<!-- Additional Instance Specific Virtual Fabrics -->
<VirtualFabrics>
</VirtualFabrics>
<!-- Shared Instance config, applies to all components: SM, PM and FE -->
<Shared>
<Start>0</Start> <!-- Overall Instance Startup, see fm0 for more info --> <!--SM_3_start:dec-->
<!-- <StartupRetries>5</StartupRetries> -->
<!-- <StartupStableWait>10</StartupStableWait> -->
<Name>fm3</Name> <!-- also for logging with _sm, _fe, _pm appended --> <!--SM_3_name-->
<Hfi>2</Hfi> <!-- local HFI to use for FM instance, 1=1st HFI --> <!--SM_3_device:plus-->
<Port>2</Port> <!-- local HFI port to use for FM instance, 1=1st Port --> <!--SM_3_port:dec-->
<PortGUID>0x0000000000000000</PortGUID> <!-- local port to use for FM --> <!--SM_3_portGuid-->
<SubnetPrefix>0xfe80000000001003</SubnetPrefix> <!-- should be unique --> <!--SM_3_gidprefix==0xfe80000000000000-->
<!-- Overrides of the Common.Shared or Fm.Shared parameters if desired -->
<!-- <LogFile>/var/log/fm3_log</LogFile> --> <!-- log for this instance -->
<!-- <SyslogFacility>Local6</SyslogFacility> -->
</Shared>
<!-- Instance Specific SM (Subnet Manager) attributes -->
<Sm>
<!-- Overrides of the Common.Shared, Common.Sm or Fm.Shared parameters -->
<!-- <Start>0</Start> --> <!--#SM_3_start:dec==0-->
<!-- <StartupRetries>5</StartupRetries> -->
<!-- <StartupStableWait>10</StartupStableWait> -->
<!-- <MasterPingInterval>5</MasterPingInterval> --> <!--#SM_3_master_ping_interval:dec-->
<!-- <MasterPingMaxFail>3</MasterPingMaxFail> --> <!--#SM_3_master_ping_max_fail:dec-->
<!-- <DbSyncInterval>15</DbSyncInterval> --> <!--#SM_3_dbsync_interval:dec-->
<!-- <SpineFirstRouting>0</SpineFirstRouting> --> <!--#SM_3_spine_first_routing:dec-->
<!-- <Lmc>0</Lmc> --> <!--#SM_3_lmc:dec-->
<Multicast>
<!-- <DisableRateCheck>0</DisableRateCheck> --> <!--#SM_3_disable_mcast_check:dec-->
<!-- <MLIDTableCap>1024</MLIDTableCap> --> <!--#SM_3_mcastMLidTableCap:dec-->
<!-- Additional Instance Specific MLIDShare settings -->
<!-- Additional Instance Specific MulticastGroup settings -->
</Multicast>
<!-- <SmKey>0x0</SmKey> --> <!--#SM_3_key:hex-->
<!-- <MKey>0x0</MKey> --> <!--#SM_3_Mkey:hex-->
<!-- <SwitchLifetime>33ms</SwitchLifetime> --> <!--#SM_3_switchlifetime:2n-->
<!-- <HoqLife>8ms</HoqLife> --> <!--#SM_3_hoqlife:2n-->
<!-- <VLStallCount>7</VLStallCount> --> <!--#SM_3_vlstall:dec-->
<AdaptiveRouting> <!--#SM_3_ar_enable#=-->
<Enable>0</Enable> <!--#SM_3_ar_enable:dec^=-->
<LostRouteOnly>0</LostRouteOnly> <!--#SM_3_ar_lost_route_only:dec^=-->
</AdaptiveRouting> <!--#SM_3_ar_enable#=-->
<!-- <SaRespTime>1s</SaRespTime> --> <!--#SM_3_saRespTime:2n-->
<!-- <NoReplyIfBusy>0</NoReplyIfBusy> -->
<!-- <PacketLifetime>1s</PacketLifetime> --> <!--#SM_3_saPacketLifetime:2n-->
<DynamicPacketLifetime>
<!-- <Enable>0</Enable> --> <!--#SM_3_dynamicPlt:dec^=-->
<!-- <Hops01>67ms</Hops01> --> <!--#SM_3_dynamicPlt_01:2n^=-->
<!-- <Hops02>134ms</Hops02> --> <!--#SM_3_dynamicPlt_02:2n^=-->
<!-- <Hops03>134ms</Hops03> --> <!--#SM_3_dynamicPlt_03:2n^=-->
<!-- <Hops04>268ms</Hops04> --> <!--#SM_3_dynamicPlt_04:2n^=-->
<!-- <Hops05>268ms</Hops05> --> <!--#SM_3_dynamicPlt_05:2n^=-->
<!-- <Hops06>268ms</Hops06> --> <!--#SM_3_dynamicPlt_06:2n^=-->
<!-- <Hops07>268ms</Hops07> --> <!--#SM_3_dynamicPlt_07:2n^=-->
<!-- <Hops08>536ms</Hops08> --> <!--#SM_3_dynamicPlt_08:2n^=-->
<!-- <Hops09>536ms</Hops09> --> <!--#SM_3_dynamicPlt_09:2n^=-->
</DynamicPacketLifetime>
<!-- <SmaBatchSize>2</SmaBatchSize> --> <!--#SM_3_sma_batch_size:dec^=-->
<!-- <MaxParallelReqs>3</MaxParallelReqs> --> <!--#SM_3_max_parallel_reqs:dec^=-->
<!-- <SweepInterval>300</SweepInterval> --> <!--#SM_3_timer:dec-->
<!-- <MaxAttempts>3</MaxAttempts> --> <!--#SM_3_max_retries:dec-->
<!-- <RespTimeout>250</RespTimeout> --> <!-- in milliseconds --> <!--#SM_3_rcv_wait_msec:dec-->
<!-- <SweepErrorsThreshold>0</SweepErrorsThreshold> --> <!--#SM_3_topo_errors_threshold:dec-->
<!-- <SweepAbandonThreshold>3</SweepAbandonThreshold> --> <!--#SM_3_topo_abandon_threshold:dec-->
<!-- <TrapThreshold>0</TrapThreshold> --> <!--#SM_3_trap_threshold:dec-->
<!-- <NonRespTimeout>600</NonRespTimeout> --> <!-- in seconds --> <!--#SM_3_non_resp_tsec:dec==600-->
<!-- <NonRespMaxCount>3</NonRespMaxCount> --> <!--#SM_3_non_resp_max_count:dec==3-->
<!-- <NodeAppearanceMsgThreshold>0</NodeAppearanceMsgThreshold> --> <!--#SM_3_node_appearance_msg_thresh:dec-->
<!-- <SmPerfDebug>0</SmPerfDebug> --> <!-- log additional SM sweep info --> <!--#SM_3_sm_debug_perf:dec-->
<!-- <SaPerfDebug>0</SaPerfDebug> --> <!-- log additional SA query info --> <!--#SM_3_sa_debug_perf:dec-->
<!-- <Debug>0</Debug> --> <!--#SM_3_debug:dec-->
<!-- <RmppDebug>0</RmppDebug> --> <!--#SM_3_sa_debug_rmpp:dec-->
<!-- <LID>0</LID> --> <!--#SM_3_lid:dec-->
<!-- <Priority>0</Priority> --> <!-- 0 to 15, higher wins --> <!--#SM_3_priority:dec-->
<!-- <ElevatedPriority>0</ElevatedPriority> --> <!-- 0 to 15, higher wins --> <!--#SM_3_elevated_priority:dec-->
<!-- <LogLevel>2</LogLevel> --> <!--#SM_3_log_level:dec-->
<!-- <LogFile></LogFile> --> <!--#SM_3_log_file-->
<!-- <SyslogFacility>Local6</SyslogFacility> -->
<!-- <LoopTestOn>0</LoopTestOn> --> <!-- cable loop test --> <!--#SM_3_loop_test_on:dec-->
<!-- <LoopTestPackets>20</LoopTestPackets> --> <!-- inject count --> <!--#SM_3_loop_test_packets:dec==1-->
<!-- <LIDSpacing>0x0</LIDSpacing> --> <!-- spacing of LIDs to test LFT --> <!--#SM_3_topo_lid_offset:hex-->
<!-- <SaRmppChecksum>0</SaRmppChecksum> --> <!-- RMPP internal checksum --> <!--#SM_3_sa_rmpp_checksum:dec-->
<!-- <DynamicPortAlloc>1</DynamicPortAlloc> --> <!--#SM_3_dynamic_port_alloc:dec-->
<PreDefinedTopology>
<Enable>0</Enable>
<TopologyFilename>/etc/opa/topology.2:2.xml</TopologyFilename>
</PreDefinedTopology>
</Sm>
<!-- Instance Specific FE (Fabric Executive Manager) attributes -->
<Fe>
<TcpPort>3248</TcpPort> <!-- TCP socket to listen for FV on --> <!--FE_3_listen-->
<!-- Overrides of the Common.Shared, Common.Fe or Fm.Shared parameters -->
<!-- See Common.Fe for more information about enabling the FE -->
<!-- <Start>0</Start> --> <!--#FE_3_start:dec==0-->
<!-- <StartupRetries>5</StartupRetries> -->
<!-- <StartupStableWait>10</StartupStableWait> -->
<!-- <Debug>0</Debug> --> <!--#FE_3_debug:dec-->
<!-- <LogLevel>2</LogLevel> --> <!--#FE_3_log_level:dec-->
<!-- <LogFile></LogFile> --> <!--#FE_3_log_file-->
<!-- <SyslogFacility>Local6</SyslogFacility> -->
<!-- <DefaultPKey>0xffff</DefaultPKey> --> <!--#FE_3_default_pkey:hex-->
<!-- <RmppDebug>0</RmppDebug> --> <!--#FE_3_if3_debug_rmpp:dec-->
</Fe>
<!-- Instance Specific PM (Performance Manager) attributes -->
<Pm>
<!-- Overrides of the Common.Shared, Common.Pm or Fm.Shared parameters -->
<!-- <Start>0</Start> --> <!--#PM_3_start:dec==0-->
<!-- <SweepInterval>10</SweepInterval> --> <!-- time between sweeps in seconds --> <!--#PM_3_SweepInterval:dec-->
<!-- <TotalImages>10</TotalImages> --> <!-- total images for history and freeze --> <!--#PM_3_TotalImages:dec-->
<!-- <FreezeFrameImages>5</FreezeFrameImages> --> <!-- max unique frozen images --> <!--#PM_3_FreezeFrameImages:dec-->
<ShortTermHistory>
<StorageLocation>/var/lib/opa-fm/pm3_pahistory</StorageLocation> <!-- must be absolute path -->
</ShortTermHistory>
<!-- <Debug>0</Debug> --> <!--#PM_3_debug:dec-->
<!-- <LogLevel>2</LogLevel> --> <!--#PM_3_log_level:dec-->
<!-- <LogFile></LogFile> --> <!--#PM_3_log_file-->
<!-- <SyslogFacility>Local6</SyslogFacility> -->
<!-- <Priority>0</Priority> --> <!-- 0 to 15, higher wins --> <!--#PM_3_priority:dec-->
<!-- <ElevatedPriority>0</ElevatedPriority> --> <!-- 0 to 15, higher wins --> <!--#PM_3_elevated_priority:dec-->
<!-- <DefaultPKey>0xffff</DefaultPKey> --> <!--#PM_3_default_pkey:hex-->
<!-- <ServiceLease>60</ServiceLease> --> <!-- in seconds --> <!--#PM_3_timer:dec-->
<!-- <RmppDebug>0</RmppDebug> --> <!--#PM_3_if3_debug_rmpp:dec-->
</Pm>
</Fm>
</Config>