cloudFPGA (cF) API
1.0
The documentation of the source code of cloudFPGA (cF)
|
#include <stdio.h>
#include <hls_stream.h>
#include <inttypes.h>
#include "../src/nal.hpp"
#include "../../simulation_utils.hpp"
#include "../../NTS/nts_utils.hpp"
Go to the source code of this file.
Macros | |
#define | VALID true |
#define | UNVALID false |
#define | DEBUG_TRACE true |
#define | THIS_NAME "TB" |
#define | TRACE_OFF 0x0000 |
#define | TRACE_TOE 1 << 1 |
#define | TRACE_ROLE 1 << 2 |
#define | TRACE_ALL 0xFFFF |
#define | DEBUG_LEVEL (TRACE_TOE | TRACE_ROLE) |
#define | MAX_SIM_CYCLES 450 |
#define | DEFAULT_FPGA_IP4_ADDR 0x0A0CC801 |
#define | DEFAULT_FPGA_LSN_PORT 0x0057 |
#define | DEFAULT_HOST_IP4_ADDR 0x0A0CC832 |
#define | DEFAULT_HOST_LSN_PORT 0x80 |
#define | DEFAULT_SESSION_ID 42 |
#define | DEFAULT_SESSION_LEN 32 |
#define | DEFAULT_TCP_LEN_REP 16 |
Enumerations | |
enum | RxFsmStates { RX_WAIT_META =0 , RX_STREAM } |
enum | RoleFsmStates { ROLE_WAIT_META =0 , ROLE_STREAM } |
enum | LsnStates { LSN_WAIT_REQ , LSN_SEND_ACK } |
enum | OpnStates { OPN_WAIT_REQ , OPN_SEND_REP , OPN_TIMEOUT } |
enum | RxpStates { RXP_SEND_NOTIF , RXP_WAIT_DREQ , RXP_SEND_META , RXP_SEND_DATA , RXP_DONE } |
enum | TxpStates { TXP_WAIT_REQ , TXP_WAIT_DATA , TXP_RECV_DATA } |
Functions | |
stream< UdpPort > | sNRC_UOE_LsnReq ("sNRC_UOE_LsnReq") |
stream< StsBool > | sUOE_NRC_LsnRep ("sUOE_NRC_LsnRep") |
stream< UdpPort > | sNRC_UOE_ClsReq ("sNRC_UOE_ClsReq") |
stream< StsBool > | sUOE_NRC_ClsRep ("sUOE_NRC_ClsRep") |
stream< UdpAppData > | sUOE_NRC_Data ("sUOE_NRC_Data") |
stream< UdpAppMeta > | sUOE_NRC_Meta ("sUOE_NRC_Meta") |
stream< UdpAppDLen > | sUOE_NRC_DLen ("sUOE_NRC_DLen") |
stream< UdpAppData > | sNRC_UOE_Data ("sNRC_UOE_Data") |
stream< UdpAppMeta > | sNRC_UOE_Meta ("sNRC_UOE_Meta") |
stream< UdpAppDLen > | sNRC_UOE_DLen ("sNRC_UOE_DLen") |
stream< NetworkMetaStream > | siUdp_meta ("siUdp_meta") |
stream< NetworkMetaStream > | soUdp_meta ("soUdp_meta") |
stream< NetworkWord > | sROLE_NRC_Data ("sROLE_NRC_Data") |
stream< NetworkWord > | sNRC_Role_Data ("sNRC_Role_Data") |
stream< NetworkWord > | sROLE_Nrc_Tcp_data ("sROLE_Nrc_Tcp_data") |
stream< NetworkMetaStream > | sROLE_Nrc_Tcp_meta ("sROLE_Nrc_Tcp_meta") |
stream< NetworkWord > | sNRC_Role_Tcp_data ("sNRC_Role_Tcp_data") |
stream< NetworkMetaStream > | sNRC_Role_Tcp_meta ("sNRC_Role_Tcp_meta") |
stream< NetworkWord > | sFMC_Nrc_Tcp_data ("sFMC_Nrc_Tcp_data") |
stream< TcpSessId > | sFMC_Nrc_Tcp_sessId ("sFMC_Nrc_Tcp_sessId") |
stream< NetworkWord > | sNRC_FMC_Tcp_data ("sNRC_FMC_Tcp_data") |
stream< TcpSessId > | sNRC_FMC_Tcp_sessId ("sNRC_FMC_Tcp_sessId") |
stream< TcpAppNotif > | sTOE_Nrc_Notif ("sTOE_Nrc_Notif") |
stream< TcpAppRdReq > | sNRC_Toe_DReq ("sNrc_TOE_DReq") |
stream< TcpAppData > | sTOE_Nrc_Data ("sTOE_Nrc_Data") |
stream< TcpAppMeta > | sTOE_Nrc_SessId ("sTOE_Nrc_SessId") |
stream< TcpAppLsnReq > | sNRC_Toe_LsnReq ("sNRC_TOE_LsnReq") |
stream< TcpAppLsnRep > | sTOE_Nrc_LsnAck ("sTOE_Nrc_LsnAck") |
stream< TcpAppData > | sNRC_Toe_Data ("sNRC_TOE_Data") |
stream< TcpAppSndReq > | sNRC_Toe_SndReq ("sNRC_TOE_SndReq") |
stream< TcpAppSndRep > | sTOE_Nrc_SndRep ("sTOE_NRC_SndRep") |
stream< TcpAppOpnReq > | sNRC_Toe_OpnReq ("sNRC_Toe_OpnReq") |
stream< TcpAppOpnRep > | sTOE_Nrc_OpnRep ("sTOE_NRC_OpenRep") |
stream< TcpAppClsReq > | sNRC_Toe_ClsReq ("sNRC_TOE_ClsReq") |
void | stepDut () |
Run a single iteration of the DUT model. More... | |
bool | setInputDataStream (stream< UdpAppData > &sDataStream, const string dataStreamName, const string inpFileName) |
Initialize an input data stream from a file. More... | |
bool | setInputDataStream (stream< NetworkWord > &sDataStream, const string dataStreamName, const string inpFileName) |
bool | setInputMetaStream (stream< UdpAppMeta > &sMetaStream, const string dataStreamName, const string inpFileName) |
Initialize an input meta stream from a file. More... | |
bool | readDataStream (stream< UdpAppData > &sDataStream, UdpAppData *udpWord) |
Read data from a stream. More... | |
bool | readMetaStream (stream< UdpAppMeta > &sMetaStream, const string metaStreamName, UdpAppMeta *udpMeta) |
Read an output metadata stream from the DUT. More... | |
bool | readPLenStream (stream< UdpPLen > &sPLenStream, const string plenStreamName, UdpPLen *udpPLen) |
Read an output payload length stream from the DUT. More... | |
bool | dumpDataToFile (UdpAppData *udpWord, ofstream &outFileStream) |
Dump a data word to a file. More... | |
bool | dumpDataToFile (NetworkWord *udpWord, ofstream &outFileStream) |
bool | dumpMetaToFile (UdpAppMeta *udpMeta, ofstream &outFileStream) |
Dump a metadata information to a file. More... | |
bool | dumpPLenToFile (UdpPLen *udpPLen, ofstream &outFileStream) |
Dump a payload length information to a file. More... | |
bool | getOutputDataStream (stream< UdpAppData > &sDataStream, const string dataStreamName, const string outFileName) |
Fill an output file with data from an output stream. More... | |
bool | getOutputDataStream (stream< NetworkWord > &sDataStream, const string dataStreamName, const string outFileName) |
bool | getOutputMetaStream (stream< UdpAppMeta > &sMetaStream, const string metaStreamName, const string outFileName) |
Fill an output file with metadata from an output stream. More... | |
bool | getOutputPLenStream (stream< UdpPLen > &sPLenStream, const string plenStreamName, const string outFileName) |
Fill an output file with payload length from an output stream. More... | |
void | pFMC (stream< NetworkWord > &siTRIF_Data, stream< TcpSessId > &siTRIF_SessId, stream< NetworkWord > &soTRIF_Data, stream< TcpSessId > &soTRIF_SessId) |
Emulate the behavior of the FMC. More... | |
void | pROLE (stream< NetworkWord > &siTRIF_Data, stream< NetworkMetaStream > &siTRIF_meta, stream< NetworkWord > &soTRIF_Data, stream< NetworkMetaStream > &soTRIF_meta) |
Emulate the behavior of the ROLE. More... | |
void | pTOE (int &nrErr, stream< TcpAppNotif > &soTRIF_Notif, stream< TcpAppRdReq > &siTRIF_DReq, stream< TcpAppData > &soTRIF_Data, stream< TcpAppMeta > &soTRIF_SessId, stream< TcpAppLsnReq > &siTRIF_LsnReq, stream< TcpAppLsnRep > &soTRIF_LsnAck, stream< TcpAppData > &siTRIF_Data, stream< TcpAppSndReq > &siTRIF_SndReq, stream< TcpAppSndRep > &soTRIF_SndRep, stream< TcpAppOpnReq > &siTRIF_OpnReq, stream< TcpAppOpnRep > &soTRIF_OpnRep) |
int | main () |
Main Testbench Loop; Emulates also the behavior of the UDP Offload Engine (UOE). More... | |
Variables | |
ap_uint< 1 > | layer_4_enabled = 0b1 |
ap_uint< 1 > | layer_7_enabled = 0b1 |
ap_uint< 1 > | role_decoupled = 0b0 |
ap_uint< 1 > | sNTS_Nrc_ready = 0b1 |
ap_uint< 32 > | sIpAddress = 0x0a0b0c0d |
ap_uint< 32 > | ctrlLink [64+16+16] |
ap_uint< 32 > | s_udp_rx_ports = 0x1 |
ap_uint< 32 > | s_tcp_rx_ports = 0x1 |
ap_uint< 32 > | myIpAddress |
ap_uint< 16 > | sMMIO_FmcLsnPort = 8803 |
ap_uint< 32 > | sMMIO_CfrmIp4Addr = 0x0A0CC832 |
unsigned int | gSimCycCnt = 0 |
bool | gTraceEvent = false |
bool | gFatalError = false |
unsigned int | simCnt |
int | tcp_packets_send = 0 |
int | tcp_packets_recv = 0 |
int | tcp_recv_frag_cnt = 0 |
int | tcp_packets_expected_timeout = 0 |
int | tcp_timout_packet_drop = 0 |
enum RxFsmStates | rxFsmState = RX_WAIT_META |
enum RoleFsmStates | roleFsmState = ROLE_WAIT_META |
Ip4Addr | hostIp4Addr = 0 |
Emulate the behavior of the TCP Offload Engine (TOE). More... | |
TcpPort | fpgaLsnPort = -1 |
TcpPort | hostSrcPort = 80 |
int | loop = 1 |
enum LsnStates | lsnState = LSN_WAIT_REQ |
enum OpnStates | opnState = OPN_WAIT_REQ |
enum RxpStates | rxpState = RXP_SEND_NOTIF |
enum TxpStates | txpState = TXP_WAIT_REQ |
int | opnStartupDelay = 0 |
int | rxpStartupDelay = 100 |
int | txpStartupDelay = 0 |
TcpAppRdReq | appRdReq |
AppMeta | sessionId = 42 |
AppMeta | sessionId_reply = 42 |
int | byteCnt = 0 |
int | segCnt = 0 |
int | nrSegToSend = 3 |
ap_uint< 64 > | data =0 |
TcpSegLen | tcpSegLen = 32 |
const char * | myLsnName = "NAL" "/" "TOE/Listen" |
const char * | myOpnName = "NAL" "/" "TOE/OpnCon" |
const char * | myRxpName = "NAL" "/" "TOE/RxPath" |
const char * | myTxpName = "NAL" "/" "TOE/TxPath" |