Protocol++® (Protocolpp®)  v5.6.2
DriverPP::jringdrive Class Reference

Public Member Functions

 jringdrive (bool listen, int port, ProtocolPP::protocol_t prot, ProtocolPP::iana_t lvl3, ProtocolPP::protocol_t lvl2, bool lvl3_sec, std::string &host, uint64_t seed, ProtocolPP::endian_t endianess, std::shared_ptr< InterfacePP::jmmu > &mmu, std::shared_ptr< InterfacePP::jlogger > &logger, std::shared_ptr< InterfacePP::jring< InterfacePP::ringin >> &iring, std::shared_ptr< InterfacePP::jring< InterfacePP::ringout >> &oring)
 
virtual ~jringdrive ()
 standard deconstructor
 
uint64_t write_mem (uint8_t *data, uint32_t length)
 
void send ()
 
void receive ()
 
uint32_t get_status (std::string &packet)
 
void teardown ()
 terminate the driver
 
 jringdrive (jringdrive &rhs)=delete
 
 jringdrive (const jringdrive &rhs)=delete
 

Constructor & Destructor Documentation

◆ jringdrive()

DriverPP::jringdrive::jringdrive ( bool  listen,
int  port,
ProtocolPP::protocol_t  prot,
ProtocolPP::iana_t  lvl3,
ProtocolPP::protocol_t  lvl2,
bool  lvl3_sec,
std::string &  host,
uint64_t  seed,
ProtocolPP::endian_t  endianess,
std::shared_ptr< InterfacePP::jmmu > &  mmu,
std::shared_ptr< InterfacePP::jlogger > &  logger,
std::shared_ptr< InterfacePP::jring< InterfacePP::ringin >> &  iring,
std::shared_ptr< InterfacePP::jring< InterfacePP::ringout >> &  oring 
)

jringdrive uses protocol++ to drive packets into a ring which can then be read by any device that supports a ring. Application layer protocols supported are TLS, SRTP, TCP, and UDP

Parameters
listen- if set to true, configures to listen on the port specified
port- port number
prot- transport or application level protocol (TCP, UDP, TLS, SRTP)
lvl3- network layer protocol (IPV4, IPV6)
lvl2- data-link layer protocol (MACSEC, WIFI, WIMAX, LTE)
lvl3_sec- Enable ESP for network level
host- string of the host name (or IP Address in standard byte format XXX.XXX.XXX...)
seed- seed for the randomizer
mmu- tracks dynamic memory
logger- object for writing
iring- Software ring for the input packets
oring- Software ring for the output packets
endianess- Endianess of the platform to support

Member Function Documentation

◆ get_status()

uint32_t DriverPP::jringdrive::get_status ( std::string &  packet)

retrieve the status word

Returns
- status of the indicated packet

◆ receive()

void DriverPP::jringdrive::receive ( )

Receive function for the driver, must be called from a separate thread

◆ send()

void DriverPP::jringdrive::send ( )

Send function for the driver must be called from a separate thread

◆ write_mem()

uint64_t DriverPP::jringdrive::write_mem ( uint8_t *  data,
uint32_t  length 
)

Write function to overload in your testbench

Parameters
data- Data to write to memory
length- length of data to write
Returns
address - Address data written to

The documentation for this class was generated from the following file: