[evla-sw-discuss] Delay Model pseudo VCI
Kevin Ryan
kryan at nrao.edu
Tue May 20 15:28:06 EDT 2008
I've got something running on a machine in my office ('nitest' at
10.64.97.15) that is listening for models on ports 30000 to 30128 and
fires them off to the appropriate CMIB. For now, I just have one
CMIB and hardcoded its address to map to all ports.
The mapping that the Executor is interested in (from antenna/baseband
to port) is described:
From Brent's document, "EVLA Correlator System Numbering Plan", each
antenna has 7 baseband IDs as follows:
BB/IF BBID
A1 (A0) 0
C1 (A0) 1
B1 (C0) 2
D1 (C0) 3
A2 (B0) 4
C2 (B0) 5
B2 (D0) 6
D2 (D0) 7
Each Station Board handles two paths (BBID's) so we need a total of
128 ports to handle 32 antennas * 4 (sets of two) BBIDs.
Rather than doing a lookup, Barry you can calculate the port for any
given antenna/baseband as follows:
portOffset = (ant << 2) | (BBID/2)
The offset is then added to some base port number that I arbitrarily
chose to be 30000 for this experiment.
The path of a model is:
Executor -> DelayModelDistributor -> CmibServer -> delayModelTask
DelayModelDistributor will run in MCCC (or CPCC for early OTS tests)
and acts as the VCI for models. CmibServer and delayModelTask both
reside on the CMIB. CmibServer (among other things) listens for
incoming models and shoots them off to Bruce's 'C' delayModelTask.
I used Java's new IO package ('nio'), that claims to be designed for
efficiency and speed, for all the UDP comms and for the writes to the
delayModelTask pipe.
Kevin
More information about the evla-sw-discuss
mailing list