Protocol++® (Protocolpp®)  v5.7.0
DriverPP::jdriver< Q > Class Template Reference

Public Member Functions

 jdriver (int port, 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, std::shared_ptr< Q > &secass_snd, std::shared_ptr< Q > &secass_rcv)
 
virtual ~jdriver ()
 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 (std::shared_ptr< Q > &secass_snd, std::shared_ptr< Q > &secass_rcv)
 
void teardown ()
 terminate the driver
 
 jdriver (jdriver &rhs)=delete
 
 jdriver (const jdriver &rhs)=delete
 

Constructor & Destructor Documentation

◆ jdriver()

template<typename Q >
DriverPP::jdriver< Q >::jdriver ( int  port,
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,
std::shared_ptr< Q > &  secass_snd,
std::shared_ptr< Q > &  secass_rcv 
)

jdriver uses protocol++ to drive packets into a ring which can then be read by any device that supports a ring

Parameters
port- port number
host- string of the host name
seed- seed for the randomizer
mmu- tracks dynamic memory
logger- object to print output
iring- Software ring for the input packets
oring- Software ring for the output packets
secass_snd- Security association for send
secass_rcv- Security association for receive
endianess- Endianess of the platform to support

Member Function Documentation

◆ get_status()

template<typename Q >
uint32_t jdriver::get_status ( std::string &  packet)

retrieve the status word

Returns
- status of the indicated packet

◆ receive()

template<typename Q >
void jdriver::receive

Issues the packet into the testbench or system must be overloaded in user's code

See also
jpacket

◆ send()

template<typename Q >
void jdriver::send

Issues the packet into the testbench or system must be overloaded in user's code

See also
jpacket
Here is the call graph for this function:

◆ teardown()

template<typename Q >
void jdriver::teardown ( std::shared_ptr< Q > &  secass_snd,
std::shared_ptr< Q > &  secass_rcv 
)

terminate the driver and return the security associations

Parameters
secass_snd- Security Association for sending packets
secass_rcv- Security Association for receiving packets

◆ write_mem()

template<typename Q >
uint64_t jdriver::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: