TRBNet Addresses
Here are some suggestions for
TrbNet Addresses in the final detector setup. They were choosen based on the following premises:
- The addresses are assigned based on a database holding information about boards like: unique ID, type of board, verbose name, trbnet address, comments, date of (de-)installation.
- Boards that are installed as replacement of another will get a different address to assure this change can be seen, e.g. to load the correct calibration database
- Addresses represent the position and purpose of the board on the detector
- Upon replacement, the new address still marks the position, but otherwise unused bits are set
- Since a board may be unplugged at one position and later installed on another, entries in the database can be marked as active or inactive. Active entries are used by the DHCP deamon, inactive entries are for documentation & analysis only
- There is no need to consult the database to get the position of a board since it is already encoded in the address itself (-> saves computation time & makes online-tracking easier). In the table this is shown under "naming scheme" where a string like "1ISF" shows the meaning of each nibble of the address.
The up-to-date table can be found in the
TrbNet Documentation.
Broadcasts
- The generic BROADCAST_BITMASK selects the broadcasts a board is able to receive
- Several broadcast addresses may be combined by unsetting more than one bit, so that the board answers on two or more specific resets.
Subevent ID
The subevent ids are assigned based on the trbnet addresses. Since only boards that sent data via Ethernet produce subevent headers (which are TRBs using its TDCs or Ethernet Bridges), the range of possible subeventids is limited to the range between 0x4000 und 0x5FFF.
The Subevent ID of a board is the trbnet address of the board where all bits marking replacement boards are set to 0.
The up-to-date table can be found in the
TrbNet Documentation.
Database
The main database for addresses will give the information that is needed to assign addresses and subeventids to all boards. This information is:
- Unique Id + endpoint id (=number of fpga on board) 64 + 8 bit
- Place on detector (= base part of trbnet address)
- trbnet address 16 bit
- Verbose description of location
- Time of installation
- Time of deinstallation
- board type (some kind of enum list)
- Verbose description of board
This table must always be up-to-date, thus an easy interface and some pressure to do updates is needed here. For example, a feature of the network startup process can be that it throws an error if it detects an unlisted board or if the place of a board inside the network has changed.
TODO
- Agree on database format
- Write tool that checks presence of boards and assigns addresses
- Make address maps for all detectors
--
JanMichel - 13 June 2009