Cheetah - SKA - PSS - Prototype Time Domain Search Pipeline
UDP Receptor

**/

UDP Receptor Architecture

The rcpt module's responsibility is to listen to UDP beamformed packets, parse them, and transfer the data within into the data structures used for processing in a timely manner.

The diagram below illustrates the mapping that it is expected to make, between the packets and the data structures that are propagated through the pipeline. The illustration only shows a few packets for each chunk, but this is a configurable parameter, and there are more likely to be many hundreds of packets per chunk.

UDP Packets :

| 1 | 2 | 3 | 4 | 5 | 6 | 7 | ...

TimeFrequency Data Structure Data structures :

|   chunk 1  |  chunk 2  | ...
|----------- time -------------->

In this example, the payload from UDP packets 1, 2, 3 and part of 4 map to the chunk 1. The remainder of chunk 4's payload should fill the beginning of chunk 2. The remainder of chunk 2 should then contain the data from UDP packets 4, 5, 6 and part of UDP packet 7.

Glossary

release : when a TimeFrequency Data Structure chunk is considered ready for passing down to the pipeline.

Level 1 Requirements

For LOW (reference SKA-TEL.CSP.LOW-CSP.PSS-ICD-001):

For MID (reference SKA-TEL-CSP-0000020):

Current design has reception of 2 beams per node on a 10Gbps link.

Low Level Design Requirements

Pipeline Constraints

The UDP packet format shall be encapsulated.

Rationale:

Out of Order Packets

Missing Packets

Implementation Constraints

COnfiguration Constraints

Architecture Description

Previous experience with streaming UDP data from LOFAR and Alfaburst indicates that a single thread cannot process a real time data stream. The solution is to use multiple-threads, however this turns a relatively simple problem into something rather more complex.

The rcpt has a single thread that responds to UDP packets arriving on the socket. This thread creaates a context object, which allows access to the appropriate data chunk to which that packet should belong as well as its relative location inside it.

The context is then passed onto a thread pool. As a thread becomes available it takes the packet and the context information to copy the payload into the chunk.

    ------

Measured Performance

**/