Skip to content

Add tunnelled operation to Receiver class #66

Description

@davidjwbbc

Context

The Transmitter class can take the address of a UDP tunnel endpoint in its constructor, however the Receiver class has no configuration to enable it to receive encapsulated FLUTE multicast packets via a tunnel. This is an imbalance in the implementation.

Requested Feature

The Receiver class should add optional parameters to the constructor to enable tunnelled reception (as was done for the Transmitter class). Alternatively an alternate Receiver constructor method, for tunnelled operation, could be added if it is more efficient.

Further more it would be useful for the Receiver to subscribe to the GTP-U encapsulated multicast stream sent from the MB-UPF to gNodeB's for multicast/broadcast traffic. It would be desirable to be able to indicate to a Receiver that the tunnel listening address is actually an SSM to subscribe to and that the encapsulated packets will contain an extra GTP-U header.

Suggested API

Here are the suggested interface changes to add tunnelled operation to the Receiver class:

class Receiver {
public:
    Receiver( const std::string& iface, const std::string& address,
          short port, uint64_t tsi,
          boost::asio::io_context& io_context,
          const std::optional<boost::asio::ip::endpoint>& tunnel_address = std::nullopt,
          const std::optional<boost::asio::ip::address>& tunnel_source = std::nullopt,
          const std::optional<std::function<size_t(std::vector<uint8_t> &payload)>>& packet_modifier = std::nullopt);
};

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

Status
Backlog

Relationships

None yet

Development

No branches or pull requests

Issue actions