Controller
Controller is the shared packetizer base controller that routes traffic
between one transport endpoint and multiple application endpoints.
Concrete protocol behavior is provided by ControllerV1 and ControllerV2.
This page is reference-only; for conceptual context see
Packetizer Protocol.
Controller objects in C++ are referenced by the following shared pointer typedef:
-
typedef std::shared_ptr<rogue::protocols::packetizer::Controller> rogue::protocols::packetizer::ControllerPtr
[header]
The class description is shown below:
-
class Controller
[header] Packetizer base controller.
Shared controller logic for packetizer variants that route data between one transport endpoint and multiple application endpoints.
Subclassed by rogue::protocols::packetizer::ControllerV1, rogue::protocols::packetizer::ControllerV2
Public Functions
Constructs a packetizer controller base.
Creator.
Company : SLAC National Accelerator Laboratory
Description: Packetizer
This file is part of the rogue software platform. It is subject to the license terms in the LICENSE.txt file found in the top-level directory of this distribution and at: https://confluence.slac.stanford.edu/display/ppareg/LICENSE.html. No part of the rogue software platform, including this file, may be copied, modified, propagated, or distributed except according to the terms contained in the LICENSE.txt file.
- Parameters:
tran – Transport endpoint associated with this controller.
app – Pointer to application endpoint array indexed by destination.
headSize – Header bytes inserted per packet.
tailSize – Trailer bytes inserted per packet.
alignSize – Payload alignment requirement in bytes.
enSsi – Enable SSI framing behavior.
-
std::shared_ptr<rogue::interfaces::stream::Frame> reqFrame(uint32_t size)
[header] [impl] Allocates a transport-path frame.
Transport frame allocation request.
- Parameters:
size – Minimum payload size in bytes.
- Returns:
Allocated frame.
Processes a frame received from transport.
Frame received at transport interface.
- Parameters:
frame – Input transport frame.
-
std::shared_ptr<rogue::interfaces::stream::Frame> transportTx()
[header] [impl] Returns the next frame for transport transmission.
Frame transmit at transport interface.
- Returns:
Frame ready for transport transmit, or null when none is available.
Processes a frame received from an application endpoint.
Frame received at application interface.
- Parameters:
frame – Input application frame.
id – Application destination identifier.