Supplied by header.js

Delay Model Distributor

diagram of wavefront

Because of the geographical separation of the VLA Antennas, the wavefront of the received signal of an observed object reaches each antenna at a different time. The differences are compensated for in the correlator by inserting delays in the signal paths to effectively sychronize the arrival of the signals before correlation takes place.

A program called CALC from NASA uses ephemeris data for the Earth, the VLA's position on the Earth and the position of the observed source object to calculate the delay for each antenna in the observation. This information is collated by the EVLA Executor program into what are called Delay Models. Because of Earth's movement during the observation the Delay Models must be recalculated periodically (on the order of every 10-seconds).

A Delay Model consists of a set of polynomial coefficient values, one set for each of the four IF's of each of the (up to) 32 antennas (128 sets of coefficient values).

The models are transmitted from the Executor in the form of XML over UDP.

	<vciStbDelayModel epoch='2013-08-07T13:11:14.500Z' fShift='-788.3' 
	                    idString='ea01A' sslo='14552.0' t0='56511.54947337963'>
	  <bbDelayModel bbId='0'>
	    <modelCff cff='-7.581059348565685E-6' index='0'/>
	    <modelCff cff='1.7865568667413245E-11' index='1'/>
	    <modelCff cff='-9.398758129378292E-16' index='2'/>
	  </bbDelayModel>
	</vciStbDelayModel>
      

Sample Delay Model XML

Each of the 128 antenna/IF models are sent over one of 128 ports on the multicast channel. The antenna/IF to port mapping is defined as (ant * 4) + IF where 'ant' is the 'EA' number associated with each antenna and is numbered from 1 to 32 (the first four ports associated with antenna '0' are not used). IF values are defined as:

A (A1 C1) = IF 0
C (B1 D1) = IF 1
B (A2 C2) = IF 2
D (B2 D2) = IF 3
    

So, for example, the delay model for EA10 IF-D would be sent on port 10 * 4 + 3 = 43. (In actuality, this is an offset that gets added to a base port number. The base port value can be seen in the OPERATION section of this document.)

In the WIDAR Correlator, 128 Station Boards are physically 'wired' to the antennas where one Station Board is connected to one IF of one antenna. The Delay Model Distributor is the WIDAR Correlator process that accepts the delay models from the Executor and distributes them to the appropriate Station Boards based on the port each model is received on.

DelayModelDistributor receives delay models from Executor and retransmits them to the appropriate Station Boards.

While the physical connections from antenna/IF to Station Board will not normally change, it is possible that they can, so the mapping of the multicast ports to the individual Station Boards is provided by a property file (see OPERATION). DelayModelDistributor assigns one Thread to each of the 128 ports to listen for models being sent by the Executor. Each listener thread is started with the port number to listen on and the IP address of the Station Board associated with that port. When the listener receives a delay model from the Executor it sends it off to that IP address over UDP Unicast.

Since the occasional loss of a delay model will not be catastrophic to an observation it was decided that UDP could be used for their distribution.

On the CMIB, a Java Thread listens for incoming delay models via UDP on port 53500 and, when received, immediately writes it to a driver written in 'C' and located at '/dev/widar/models'.

Maintenance Responsibilites


NameHostDescriptionContact
ExecutormchammerGenerates Delay Models, sends them via Multicast to MCCCBarry Clark, Ken Sowinsky
widar/mccc/dmd/DelayModelDistributormcccReceives models from Executor, maps them to the proper Station Boards and transmits to them over UDPKevin Ryan
widar/cmib/frontend/CmibMain.javaCMIBReceives model via TCP and writes it to the device driver at /dev/widar/modelsKevin Ryan
CMIB delay model task ('C')CMIBReceives model from via a file write and processes it for that individual Station Board.Bruce Rowen

Operation

Starting/Stopping the Service

On mccc.evla.nrao.edu (as root or sudo) :

> /opt/services/bin/widar-dmd start
> /opt/services/bin/widar-dmd stop

Monitoring Operation

The following table shows the delay model distribution status as of the last time this page was refreshed.

Ant
IFExec PortSecs ago rcvd from Executor BB0/BB1Station BoardCMIB Model Status BB0/BB1
Ant
IFExec PortSecs ago rcvd from Executor BB0/BB1Station BoardCMIB Model Status BB0/BB1
ea01
ea02
ea03
ea04
ea05
ea06
ea07
ea08
ea09
ea10
ea11
ea12
ea13
ea14
ea15
ea16
ea17
ea18
ea19
ea20
ea21
ea22
ea23
ea24
ea25
ea26
ea27
ea28

Delay models orginate in Executor and are sent via Multicast over a different port for each antenna/IF. The DelayModelDistributor program, running in MCCC, listens for the models and retransmits them to the appropritate Station Boards based on a property file that maps the port number to the Station Board.

Port to Station Board Property File

Located on MCCC's internal drive.

/opt/services/mccc/properties/delayModelDistributor.properties

What can go wrong?

The most common failure of the Delay Model Distributor subsystem occurs during its startup when the Java Virtual Machine uses one (or more) of the 132 ports that we need. No known way exists to fix this other than to restart the application.
-- To see if this problem has ocurred, check the port column in the table for entries in RED.
-- To restart: