17#ifndef __ROGUE_PROTOCOLS_UDP_CORE_H__
18#define __ROGUE_PROTOCOLS_UDP_CORE_H__
22#include <netinet/in.h>
23#include <netinet/ip.h>
25#include <sys/socket.h>
92 explicit Core(
bool jumbo);
142typedef std::shared_ptr<rogue::protocols::udp::Core>
CorePtr;
Shared UDP transport base for stream client/server endpoints.
void setTimeout(uint32_t timeout)
Sets outbound transmit wait timeout.
std::shared_ptr< rogue::Logging > udpLog_
struct sockaddr_in remAddr_
void stop()
Stops the UDP interface.
uint32_t maxPayload()
Returns maximum UDP payload size in bytes.
bool setRxBufferCount(uint32_t count)
Requests kernel UDP receive-buffer sizing by packet count.
~Core()
Destroys the UDP core instance.
static void setup_python()
Registers Python bindings for this class.
const uint32_t HdrSize
Combined IPv4 + UDP header size in bytes.
const uint32_t StdMTU
Standard Ethernet MTU in bytes (1500).
std::shared_ptr< rogue::protocols::udp::Core > CorePtr
const uint32_t MaxJumboPayload
Maximum UDP payload for jumbo MTU (9000 - 28 = 8972 bytes).
const uint32_t JumboMTU
Jumbo-frame MTU in bytes (9000).
const uint32_t MaxStdPayload
Maximum UDP payload for standard MTU (1500 - 28 = 1472 bytes).