|
| 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 |
|
◆ 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 |
◆ 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:
- drivers/include/jringdrive.h