IBNETSPLIT(1)

NAME
ibnetsplit - Build scripts to split IB Subnet into Mutiple Subnets

SYNOPSYS
There are two steps that can be run also in one flow:
  Group: ibnetsplit [-v][-h][-g grp-file] -s <.lst|.net|.topo> <-r head-ports|-d max-dist>

  Split: ibnetsplit [-v][-h][-g grp-file] -s <.lst|.net|.topo> -o out-dir

  Both:  ibnetsplit [-v][-h][-g grp-file] -s <.lst|.net|.topo> <-r head-ports|-d max-dist> -o out-dir

DESCRIPTION
The ibnetsplit utility provide means to automatically group hosts and create scripts that can be run in order to split the network into sub-networks each with one group hosts.

Grouping: The grouping is performed if the -r or -d options are provided. If the -r is provided with a file containing group head ports, the algorithm examines the hosts distance from the set of node ports provided in the head-ports file (these are expected to be the ports running standby SM's). If the -d is provided with a maximum distance of the hosts in each group, the algorithm partition the hosts by that distance.

NOTE: that some topologies may not be analyzed this way.

The results of the identified groups are printed into the file defined by the -g option (default ibnetsplit.groups) and can be hand manipulated. For groups where the head port is a switch, the group file uses the FIRST host port as the port to run the isolation script from.

Splitting: If the -o flag is included, this algorithm analyzes the MinHop table of the topology and identifies the set of links and switches that may potentially be used for routing each group ports. The cross-switch links betwen switches of the group to other switches are declared as split-links and the commands to turn them off using Directed Routes from the original Group Head ports are written into the out-dir provided by the -o flag.

Both stages require a subnet definition file to be provided by the -s flag. The supported formats for subnet definition are:

*.net - for ibnetdiscover
*.lst - for opensm-subnet.lst or ibiagnet.lst
*.topo - for a topology file

HEAD PORTS FILE This file is provided by the user and defines the ports by which grouping of the other host ports is defined.

Format: Each line should contain either the name or the GUID of a single port. For switches the port number shall be 0:

<node-name>/P\<port-num>|<PGUID>

GROUPS FILE This file is generated by the program if the head-ports file is provided to it. Alternatively it can be provided (or edited) by the user if different grouping is desired. The generated script for isolating or connecting the group should be run from the first node in each group.

Format: Each line may be either:

GROUP: <group name>

<node-name>/P\<port-num>|<PGUID>

ARGUMENTS

-s|--subnet <file>
    A topology (*.topo) subnet-listing (*.lst) or ibnetdiscover (*.net) file defining the handled topology.

-r|--roots <file>
    A file containing the list of roots to split the network based on it. This argument is mutually exclusive with the -d argument.

-d|--dist <max-dist>
    The maximal distance between end-ports that should be used to calculate groups of hosts. This argument is mutually exclusive with the -r argument.

-s|--start-node <name>

OPTIONS
The name of the matching start node, also known as anchor node. E.g. H-1/U1

-g|--groups-file <file>
    The name of the end-port groups file to use. (default ibnetsplit.groups).

-o|--out-dir <dir-name>
    The name of the directory to use for the generated scripts.

-v|--verbose
    Verbsoe mode

-h|--help
    Provides this help message

AUTHOR
Eitan Zahavi, Mellanox Technologies LTD, eitan@mellanox.co.il