M

mkrecv

MeerKat receiver process (SPEAD2 -> PSRDADA)

public

 

Receive process for getting SPEAD heaps from 1 40 GBit connection and put them into a PSRDADA ringbuffer.

create a dada ringbuffer which is large enough for testing purposes:

dada_db -d dada dada_db -k dada -n 64 -b 67108864 -p

create a process which gets data out of a ringbuffer:

../psrdada_cpp/psrdada_cp/dbnull > /dev/null &

use the standard linux socket implementation to get data from a multicast group:

mkrecv --joint --threads 64 --heaps 64 \ --freq_first 0 --freq_step 256 --freq_count 1 \ --feng_first 7 --feng_count 1 \ --time_step 2097152 \ --port 7148 --udp_if 192.168.1.20 \ 239.2.1.150

the multicast groups goe from 150 up to 165 (16 groups)

use the infiniband library to get data from a multicast group:

mkrecv --joint --threads 4 --heaps 16 \ --freq_first 0 --freq_step 256 --freq_count 1 \ --feng_first 7 --feng_count 1 \ --time_step 2097152 \ --port 7148 --ibv 192.168.1.20 --ibv-vector -1 --ibv-max-poll 1000 \ 239.2.1.150

a small test program does exist to use the standard socket implementation to get data from several multicast groups:

./recv_heaps -quiet 192.168.1.20 239.2.1.150 239.2.1.151