You do not need to read or understand this section if the general requirements of the last section are fulfilled, but in case you have any problem, it could be useful to check the contents of the configuration file that have been automatically generated.
The configuration of a BIP application relies on a configuration file
that must be read by every process of the application, this file is by
default $HOME/.bip/bipconf
, but can be overridden by the
environment variable BIPCONF
.
You may write manually the configuration file for some peculiar
configuration, for instance using a unit different of 0 or if you have
problems using the scripts biproute
, bipload
, and
bipconf
. The only strong restrictions of BIP is that two machines
must be separated by at most 4 switches, and only one board can be
used by BIP on each machine (this last restriction could be removed,
but it has not been done yet as it seems unlikely to be really
useful).
The configuration file is organized by lines:
256
means no switch (and is also used to fill the route to
itself).
#
are ignored
and can be used for comments. See file bip/examples/bipconf.ex
to see an example of a configuration file, file
bip/examples/bipconf.noswitch
is an example when using two
nodes linked directly without any switch.
At BIP initialization (in fact in bip_init
), a process first
gets its BIP logical number by searching the name of the machine (as
given by uname -n
) in the configuration file, reads the
following routing information, and initialize the bip_mynode
and bip_numnodes
variables. And then will execute a small
synchronization algorithm to synchronize with the other nodes, so that
the processes can be started in any order and with any delay between
them.