[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