Chapter 3. How this all works

3.1. The Private subnet, services and servers.

This chapter describes the structure and theory behind the data source and how to set it up. The intended audience for this chapter are people needing to derive new instances of the data source (other than those described by S800 Quickstart and any other cookbook like documents that might be produced for established GET systems.

Before starting it's important to note the intent and resulting limitations of this data source. The data source is intended to take data from a single CoBo that is not controlled by a MUTANT trigger module. Mutiple CoBos can each have their own data source, but this data source does not adress sychronization with other data sources (GET or otherwise).

CoBo boards live in a microTCA backplane. These backplanes are not actually bussed systems but instead, implement a set of networks in a box where the MicroTca Carrier Hub (MCH) card supplies the interconnectivity between connections (slots) on those networks and the connectivity between slots and between the crate and the outside world.

CoBo boards and the MCH selected for GET implement a 10Gbit switched ethernet on the backplane of the microTCA crate. The MCH supplies a network switch which includes two fibre ports that provide connectivity between the microTCA backplane network and the world outside the backplane.

In fact the CoBo board implements a 1Gbit ethernet and its port on the MCH switch is auto negotiated down to that bandwidth. The important point to note, therefore is that each CoBo board in a microTCA crate has an IP address. The CoBo private subnet is configured to be 10.50.100.*. Each CoBo obtains its IP address by making DHCP requests to the server (spdaq) system that's connected to the MCH's fiber optic ports. The file /etc/dhcp/dhcpd.conf describes the correspondence between CoBo physical addresses and the IP addresses they are assigned. The CoBo advertises a service number 46001 on this IP. The configuration for a CoBo for GetController includes the IP and port of this service.

The NSCLDAQ data provider for GET hardware, makes use of as much of the GET support software as possible. This means that the slow control for CoBo modules is done via an EccServer and that event data flow is setup by that EccServer to a data router program.

These two components advertise services on the private subnet connecting the spdaq and to the microTCA backplane and therefore must run in that spdaq. To determine this IP address, log in to that spdaq and type:


     /sbin/ifconfig -a        
         

The IP address of the last of the eth interfaces listed will be the spdaq's address on that private subnet. For example:


                 ...
               TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
               collisions:0 txqueuelen:1000
               RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
     
     eth5      Link encap:Ethernet  HWaddr 90:e2:ba:86:7e:bd
               inet addr:10.50.200.2  Bcast:10.50.255.255  Mask:255.255.0.0
               inet6 addr: fe80::92e2:baff:fe86:7ebd/64 Scope:Link
               UP BROADCAST MULTICAST  MTU:1500  Metric:1
               RX packets:1422015 errors:0 dropped:0 overruns:0 frame:0
               TX packets:282885 errors:0 dropped:0 overruns:0 carrier:0
               collisions:0 txqueuelen:1000
               RX bytes:563624233 (537.5 MiB)  TX bytes:65826892 (62.7 MiB)
     
     lo        Link encap:Local Loopback
               inet addr:127.0.0.1  Mask:255.0.0.0
               inet6 addr: ::1/128 Scope:Host
                 ...
             

Shows this spdaq has a private subnet address of 10.50.200.2.

The EccServer advertises a single service on port 46002. The data router, advertises two services, a control service and a data transfer service. These two services are configurable. They are defined to GetController by the data router configuration.

In summary, the IPaddresses and services the data source prompter prompts for inits network parameters box represent the following:

Public IP DNS name

This is the DNS name of the spdaq on the NSCLDAQ network. For example, the s800 CRDC GET microTCA crate is interfaced to spdaq08.nscl.msu.edu

Data router control

This is the data router control port. This must match the data router IP address service in the Control box of the Setup data router dialog for GetController.

Data Router data

The data flow service port. This must be set up to match the Data flow box of the Setup data router dialog for GetController (futhermore the type of router used must be TCP and the mode must be externral).

Cobo target service

The IP address must match that assigned by DHCP to the CoBo and the service must ben 46001.