cloudFPGA (cF) API
1.0
The documentation of the source code of cloudFPGA (cF)
|
Network Abstraction Layer (NAL). The NAL separates the privileged management traffic from the unprivileged Role traffic. It also abstracts the details of port opening, connection handling and IP Address translation. The documentation of NAL is available at https://pages.github.ibm.com/cloudFPGA/Doc/pages/cfdk.html#network-abstraction-layer-nal. More...
Files | |
file | cam8.hpp |
: A Content Address Memory (CAM) for 16 entries. | |
file | cam8.hpp |
: A Content Address Memory (CAM) for 16 entries. | |
file | hss.cpp |
: The Housekeeping Sub System (HSS) of the NAL core. | |
file | hss.hpp |
: The Housekeeping Sub System (HSS) of the NAL core. | |
file | nal.hpp |
: The cloudFPGA Network Abstraction Layer (NAL) between NTS and ROlE. The NAL core manages the NTS Stack and maps the network streams to the user's ROLE or the FMC while hiding some complexity of UOE and TOE. | |
file | nal.hpp |
: The cloudFPGA Network Abstraction Layer (NAL) between NTS and ROlE. The NAL core manages the NTS Stack and maps the network streams to the user's ROLE or the FMC while hiding some complexity of UOE and TOE. | |
file | tss.cpp |
: The TCP Sub System (TSS) of the NAL core. | |
file | tss.hpp |
: The TCP Sub System (TSS) of the NAL core. | |
file | uss.cpp |
: The UDP Sub System (USS) of the NAL core. | |
file | uss.hpp |
: The UDP Sub System (USS) of the NAL core. | |
Classes | |
class | KeyValuePair< K, V > |
struct | Cam16< K, V > |
struct | Cam8< K, V > |
struct | NalEventNotif |
struct | NalNewTableEntry |
struct | NalNewTcpConRep |
struct | NalConfigUpdate |
struct | NalMrtUpdate |
struct | NalStatusUpdate |
struct | NalPortUpdate |
struct | NalWaitingData |
Typedefs | |
typedef bool | StsBool |
typedef ap_uint< 16 > | UdpSrcPort |
typedef ap_uint< 16 > | UdpDstPort |
typedef ap_uint< 16 > | UdpPort |
typedef ap_uint< 16 > | UdpLen |
typedef UdpLen | UdpAppDLen |
typedef UdpAppDLen | UdpPLen |
typedef ap_uint< 16 > | PacketLen |
typedef ap_uint< 64 > | NalTriple |
Functions | |
uint8_t | selectConfigUpdatePropagation (uint16_t config_addr) |
void | axi4liteProcessing (ap_uint< 32 > ctrlLink[64+16+16], stream< NalConfigUpdate > &sToPortLogic, stream< NalConfigUpdate > &sToUdpRx, stream< NalConfigUpdate > &sToTcpRx, stream< NalConfigUpdate > &sToStatusProc, stream< NalMrtUpdate > &sMrtUpdate, stream< uint32_t > &mrt_version_update_0, stream< uint32_t > &mrt_version_update_1, stream< NalStatusUpdate > &sStatusUpdate) |
Contains the Axi4 Lite secondary endpoint and reads the MRT and configuration values from it as well as writes the status values. It notifies all other concerned processes on MRT or configuration updates and is notified on status updates. More... | |
void | pMrtAgency (stream< NalMrtUpdate > &sMrtUpdate, stream< NodeId > &sGetIpReq_UdpTx, stream< Ip4Addr > &sGetIpRep_UdpTx, stream< NodeId > &sGetIpReq_TcpTx, stream< Ip4Addr > &sGetIpRep_TcpTx, stream< Ip4Addr > &sGetNidReq_UdpRx, stream< NodeId > &sGetNidRep_UdpRx, stream< Ip4Addr > &sGetNidReq_TcpRx, stream< NodeId > &sGetNidRep_TcpRx) |
Can access the BRAM that contains the MRT and replies to lookup requests. More... | |
void | pPortLogic (ap_uint< 1 > *layer_4_enabled, ap_uint< 1 > *layer_7_enabled, ap_uint< 1 > *role_decoupled, ap_uint< 1 > *piNTS_ready, ap_uint< 16 > *piMMIO_FmcLsnPort, ap_uint< 32 > *pi_udp_rx_ports, ap_uint< 32 > *pi_tcp_rx_ports, stream< NalConfigUpdate > &sConfigUpdate, stream< UdpPort > &sUdpPortsToOpen, stream< UdpPort > &sUdpPortsToClose, stream< TcpPort > &sTcpPortsToOpen, stream< bool > &sUdpPortsOpenFeedback, stream< bool > &sTcpPortsOpenFeedback, stream< bool > &sMarkToDel_unpriv, stream< NalPortUpdate > &sPortUpdate, stream< bool > &sStartTclCls) |
Translates the one-hot encoded open-port vectors from the Role (i.e. piUdpRxPorts and piTcpRxPorts ) to absolute port numbers If the input vector changes, or during a reset of the Role, the necessary open or close requests are send to pUdpLsn , pUdpCls , pTcpLsn , and pTcpCls . More... | |
void | pCacheInvalDetection (ap_uint< 1 > *layer_4_enabled, ap_uint< 1 > *layer_7_enabled, ap_uint< 1 > *role_decoupled, ap_uint< 1 > *piNTS_ready, stream< uint32_t > &mrt_version_update, stream< bool > &inval_del_sig, stream< bool > &cache_inval_0, stream< bool > &cache_inval_1, stream< bool > &cache_inval_2, stream< bool > &cache_inval_3) |
Detects if the caches of the USS and TSS have to be invalidated and signals this to the concerned processes. More... | |
void | pTcpAgency (stream< SessionId > &sGetTripleFromSid_Req, stream< NalTriple > &sGetTripleFromSid_Rep, stream< NalTriple > &sGetSidFromTriple_Req, stream< SessionId > &sGetSidFromTriple_Rep, stream< NalNewTableEntry > &sAddNewTriple_TcpRrh, stream< NalNewTableEntry > &sAddNewTriple_TcpCon, stream< SessionId > &sDeleteEntryBySid, stream< bool > &inval_del_sig, stream< SessionId > &sMarkAsPriv, stream< bool > &sMarkToDel_unpriv, stream< bool > &sGetNextDelRow_Req, stream< SessionId > &sGetNextDelRow_Rep) |
Contains the SessionId-Triple CAM for TCP sessions. It replies to stram requests. More... | |
ap_uint< 32 > | getRightmostBitPos (ap_uint< 32 > num) |
NalTriple | newTriple (Ip4Addr ipRemoteAddres, TcpPort tcpRemotePort, TcpPort tcpLocalPort) |
Ip4Addr | getRemoteIpAddrFromTriple (NalTriple triple) |
TcpPort | getRemotePortFromTriple (NalTriple triple) |
TcpPort | getLocalPortFromTriple (NalTriple triple) |
uint8_t | extractByteCnt (AxisRaw currWord) |
uint8_t | extractByteCnt (NetworkWord currWord) |
void | pStatusMemory (stream< NalEventNotif > &internal_event_fifo, ap_uint< 1 > *layer_7_enabled, ap_uint< 1 > *role_decoupled, stream< NalConfigUpdate > &sConfigUpdate, stream< uint32_t > &mrt_version_update, stream< NalPortUpdate > &sNalPortUpdate, stream< NalStatusUpdate > &sStatusUpdate) |
Maps the individual event notification of the USS/TSS processes to the status array as part of the Axi4Lite address space. Forwards status changes to Axi4Lite processing. More... | |
void | eventFifoMerge (stream< NalEventNotif > &internal_event_fifo_0, stream< NalEventNotif > &internal_event_fifo_1, stream< NalEventNotif > &internal_event_fifo_2, stream< NalEventNotif > &internal_event_fifo_3, stream< NalEventNotif > &merged_fifo) |
Merges multiple fifos, where the order of the fifo represents also the priorities. More... | |
void | nal_main (ap_uint< 32 > ctrlLink[64+16+16], ap_uint< 1 > *layer_4_enabled, ap_uint< 1 > *layer_7_enabled, ap_uint< 1 > *role_decoupled, ap_uint< 1 > *piNTS_ready, ap_uint< 16 > *piMMIO_FmcLsnPort, ap_uint< 32 > *piMMIO_CfrmIp4Addr, ap_uint< 32 > *myIpAddress, ap_uint< 32 > *pi_udp_rx_ports, stream< NetworkWord > &siUdp_data, stream< NetworkWord > &soUdp_data, stream< NetworkMetaStream > &siUdp_meta, stream< NetworkMetaStream > &soUdp_meta, ap_uint< 32 > *pi_tcp_rx_ports, stream< NetworkWord > &siTcp_data, stream< NetworkMetaStream > &siTcp_meta, stream< NetworkWord > &soTcp_data, stream< NetworkMetaStream > &soTcp_meta, stream< NetworkWord > &siFMC_data, stream< TcpSessId > &siFMC_SessId, stream< NetworkWord > &soFMC_data, stream< TcpSessId > &soFMC_SessId, stream< UdpPort > &soUOE_LsnReq, stream< StsBool > &siUOE_LsnRep, stream< UdpPort > &soUOE_ClsReq, stream< StsBool > &siUOE_ClsRep, stream< UdpAppData > &siUOE_Data, stream< UdpAppMeta > &siUOE_Meta, stream< UdpAppDLen > &siUOE_DLen, stream< UdpAppData > &soUOE_Data, stream< UdpAppMeta > &soUOE_Meta, stream< UdpAppDLen > &soUOE_DLen, stream< TcpAppNotif > &siTOE_Notif, stream< TcpAppRdReq > &soTOE_DReq, stream< TcpAppData > &siTOE_Data, stream< TcpAppMeta > &siTOE_SessId, stream< TcpAppLsnReq > &soTOE_LsnReq, stream< TcpAppLsnRep > &siTOE_LsnRep, stream< TcpAppData > &soTOE_Data, stream< TcpAppSndReq > &soTOE_SndReq, stream< TcpAppSndRep > &siTOE_SndRep, stream< TcpAppOpnReq > &soTOE_OpnReq, stream< TcpAppOpnRep > &siTOE_OpnRep, stream< TcpAppClsReq > &soTOE_ClsReq) |
Main process of the Network Abstraction Layer (NAL) More... | |
void | pTcpLsn (stream< TcpAppLsnReq > &soTOE_LsnReq, stream< TcpAppLsnRep > &siTOE_LsnRep, stream< TcpPort > &sTcpPortsToOpen, stream< bool > &sTcpPortsOpenFeedback) |
Request the TOE to start listening (LSn) for incoming connections on a specific port (.i.e open connection for reception mode). More... | |
void | pTcpRxNotifEnq (ap_uint< 1 > *layer_4_enabled, ap_uint< 1 > *piNTS_ready, stream< TcpAppNotif > &siTOE_Notif, stream< TcpAppNotif > &sTcpNotif_buffer) |
Enqueus the incoming notificiations from TOE into the internal buffer. More... | |
void | pTcpRRh (ap_uint< 1 > *layer_4_enabled, ap_uint< 1 > *piNTS_ready, ap_uint< 32 > *piMMIO_CfrmIp4Addr, ap_uint< 16 > *piMMIO_FmcLsnPort, stream< TcpAppNotif > &siTOE_Notif, stream< TcpAppRdReq > &soTOE_DReq, stream< NalNewTableEntry > &sAddNewTriple_TcpRrh, stream< SessionId > &sMarkAsPriv, stream< SessionId > &sDeleteEntryBySid, stream< TcpAppRdReq > &sRDp_ReqNotif, stream< PacketLen > &fmc_write_cnt_sig, stream< PacketLen > &role_write_cnt_sig) |
ReadRequestHandler (RRh). Waits for a notification indicating the availability of new data for the ROLE or FMC. More... | |
void | pTcpRDp (ap_uint< 1 > *layer_4_enabled, ap_uint< 1 > *piNTS_ready, stream< TcpAppRdReq > &sRDp_ReqNotif, stream< TcpAppData > &siTOE_Data, stream< TcpAppMeta > &siTOE_SessId, stream< NetworkWord > &soFMC_data, stream< TcpSessId > &soFMC_SessId, stream< NetworkWord > &soTcp_data, stream< NetworkMetaStream > &soTcp_meta, stream< NalConfigUpdate > &sConfigUpdate, stream< Ip4Addr > &sGetNidReq_TcpRx, stream< NodeId > &sGetNidRep_TcpRx, stream< SessionId > &sGetTripleFromSid_Req, stream< NalTriple > &sGetTripleFromSid_Rep, ap_uint< 32 > *piMMIO_CfrmIp4Addr, ap_uint< 16 > *piMMIO_FmcLsnPort, ap_uint< 1 > *layer_7_enabled, ap_uint< 1 > *role_decoupled, stream< bool > &cache_inval_sig, stream< NalEventNotif > &internal_event_fifo) |
Read Path (RDp) - From TOE to ROLE or FMC. Process waits for a new data segment to read and forwards it to ROLE or FMC. Invalid packets are dropped. More... | |
void | pRoleTcpRxDeq (ap_uint< 1 > *layer_7_enabled, ap_uint< 1 > *role_decoupled, stream< NetworkWord > &sRoleTcpDataRx_buffer, stream< NetworkMetaStream > &sRoleTcpMetaRx_buffer, stream< NetworkWord > &soTcp_data, stream< NetworkMetaStream > &soTcp_meta, stream< PacketLen > &role_write_cnt_sig) |
Terminates the internal TCP RX FIFOs and forwards packets to the Role. More... | |
void | pFmcTcpRxDeq (stream< NetworkWord > &sFmcTcpDataRx_buffer, stream< TcpSessId > &sFmcTcpMetaRx_buffer, stream< NetworkWord > &soFmc_data, stream< TcpSessId > &soFmc_meta, stream< PacketLen > &fmc_write_cnt_sig) |
Terminates the internal TCP RX FIFOs and forwards packets to the FMC. More... | |
void | pTcpWRp (ap_uint< 1 > *layer_4_enabled, ap_uint< 1 > *piNTS_ready, stream< NetworkWord > &siFMC_data, stream< TcpSessId > &siFMC_SessId, stream< NetworkWord > &siTcp_data, stream< NetworkMetaStream > &siTcp_meta, stream< TcpAppData > &soTOE_Data, stream< TcpAppMeta > &soTOE_SessId, stream< TcpDatLen > &soTOE_len, stream< NodeId > &sGetIpReq_TcpTx, stream< Ip4Addr > &sGetIpRep_TcpTx, stream< NalTriple > &sGetSidFromTriple_Req, stream< SessionId > &sGetSidFromTriple_Rep, stream< NalTriple > &sNewTcpCon_Req, stream< NalNewTcpConRep > &sNewTcpCon_Rep, stream< bool > &cache_inval_sig, stream< NalEventNotif > &internal_event_fifo) |
Write Path (WRp) - From ROLE or FMC to TOE. Process waits for a new data segment to write and forwards it to TOE. More... | |
void | pTcpWBu (ap_uint< 1 > *layer_4_enabled, ap_uint< 1 > *piNTS_ready, stream< TcpAppData > &siWrp_Data, stream< TcpAppMeta > &siWrp_SessId, stream< TcpDatLen > &siWrp_len, stream< TcpAppData > &soTOE_Data, stream< TcpAppSndReq > &soTOE_SndReq, stream< TcpAppSndRep > &siTOE_SndRep) |
Write Buffer (WBu) - From WRp to TOE. Process to synchronize with TOE's TX buffer (and it's available space). In case of streaming mode (i.e. ROLE's length was 0), WRp takes care of splitting the data and writing the right len. More... | |
void | pTcpCOn (stream< TcpAppOpnReq > &soTOE_OpnReq, stream< TcpAppOpnRep > &siTOE_OpnRep, stream< NalNewTableEntry > &sAddNewTriple_TcpCon, stream< NalTriple > &sNewTcpCon_Req, stream< NalNewTcpConRep > &sNewTcpCon_Rep) |
Client connection to remote HOST or FPGA socket (COn). More... | |
void | pTcpCls (stream< TcpAppClsReq > &soTOE_ClsReq, stream< bool > &sGetNextDelRow_Req, stream< SessionId > &sGetNextDelRow_Rep, stream< bool > &sStartTclCls) |
Asks the TOE to close Tcp connections, based on the request from pPortLogic. More... | |
void | pUdpTX (stream< NetworkWord > &siUdp_data, stream< NetworkMetaStream > &siUdp_meta, stream< UdpAppData > &soUOE_Data, stream< UdpAppMeta > &soUOE_Meta, stream< UdpAppDLen > &soUOE_DLen, stream< NodeId > &sGetIpReq_UdpTx, stream< Ip4Addr > &sGetIpRep_UdpTx, const ap_uint< 32 > *ipAddrBE, stream< bool > &cache_inval_sig, stream< NalEventNotif > &internal_event_fifo) |
Processes the outgoing UDP packets (i.e. ROLE -> Network). More... | |
void | pUoeUdpTxDeq (ap_uint< 1 > *layer_4_enabled, ap_uint< 1 > *piNTS_ready, stream< UdpAppData > &sUoeTxBuffer_Data, stream< UdpAppMeta > &sUoeTxBuffer_Meta, stream< UdpAppDLen > &sUoeTxBuffer_DLen, stream< UdpAppData > &soUOE_Data, stream< UdpAppMeta > &soUOE_Meta, stream< UdpAppDLen > &soUOE_DLen) |
Terminates the internal UDP TX FIFOs and forwards packets to the UOE. More... | |
void | pUdpLsn (stream< UdpPort > &soUOE_LsnReq, stream< StsBool > &siUOE_LsnRep, stream< UdpPort > &sUdpPortsToOpen, stream< bool > &sUdpPortsOpenFeedback) |
Asks the UOE to open new UDP ports for listening, based on the request from pPortLogic. More... | |
void | pUdpRx (ap_uint< 1 > *layer_7_enabled, ap_uint< 1 > *role_decoupled, stream< NetworkWord > &soUdp_data, stream< NetworkMetaStream > &soUdp_meta, stream< UdpAppData > &siUOE_Data, stream< UdpAppMeta > &siUOE_Meta, stream< UdpAppDLen > &siUOE_DLen, stream< NalConfigUpdate > &sConfigUpdate, stream< Ip4Addr > &sGetNidReq_UdpRx, stream< NodeId > &sGetNidRep_UdpRx, stream< bool > &cache_inval_sig, stream< NalEventNotif > &internal_event_fifo) |
Processes the incoming UDP packets (i.e. Network -> ROLE ). More... | |
void | pRoleUdpRxDeq (ap_uint< 1 > *layer_7_enabled, ap_uint< 1 > *role_decoupled, stream< NetworkWord > &sRoleUdpDataRx_buffer, stream< NetworkMetaStream > &sRoleUdpMetaRx_buffer, stream< NetworkWord > &soUdp_data, stream< NetworkMetaStream > &soUdp_meta) |
Terminates the internal UDP RX FIFOs and forwards packets to the Role. More... | |
void | pUdpCls (stream< UdpPort > &soUOE_ClsReq, stream< StsBool > &siUOE_ClsRep, stream< UdpPort > &sUdpPortsToClose) |
Asks the UOE to close UDP ports, based on the request from pPortLogic. More... | |
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 | |
bool | gTraceEvent |
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" |
Network Abstraction Layer (NAL). The NAL separates the privileged management traffic from the unprivileged Role traffic. It also abstracts the details of port opening, connection handling and IP Address translation. The documentation of NAL is available at https://pages.github.ibm.com/cloudFPGA/Doc/pages/cfdk.html#network-abstraction-layer-nal.
#define DEBUG_LEVEL (TRACE_TOE | TRACE_ROLE) |
Definition at line 58 of file tb_nal.cpp.
#define DEBUG_TRACE true |
Definition at line 45 of file tb_nal.cpp.
#define DEFAULT_FPGA_IP4_ADDR 0x0A0CC801 |
Definition at line 70 of file tb_nal.cpp.
#define DEFAULT_FPGA_LSN_PORT 0x0057 |
Definition at line 71 of file tb_nal.cpp.
#define DEFAULT_HOST_IP4_ADDR 0x0A0CC832 |
Definition at line 72 of file tb_nal.cpp.
#define DEFAULT_HOST_LSN_PORT 0x80 |
Definition at line 73 of file tb_nal.cpp.
#define DEFAULT_SESSION_ID 42 |
Definition at line 75 of file tb_nal.cpp.
#define DEFAULT_SESSION_LEN 32 |
Definition at line 76 of file tb_nal.cpp.
#define DEFAULT_TCP_LEN_REP 16 |
Definition at line 79 of file tb_nal.cpp.
#define MAX_SIM_CYCLES 450 |
Definition at line 63 of file tb_nal.cpp.
#define NAL_CTRL_LINK_SIZE (XNAL_PIFMC_NAL_CTRLLINK_AXI_ADDR_CTRLLINK_V_HIGH/4) |
#define NAL_NUMBER_CONFIG_WORDS NUMBER_CONFIG_WORDS |
#define NAL_NUMBER_STATUS_WORDS NUMBER_STATUS_WORDS |
#define THIS_NAME "TB" |
Definition at line 51 of file tb_nal.cpp.
#define TRACE_ALL 0xFFFF |
Definition at line 56 of file tb_nal.cpp.
#define TRACE_OFF 0x0000 |
Definition at line 53 of file tb_nal.cpp.
#define TRACE_ROLE 1 << 2 |
Definition at line 55 of file tb_nal.cpp.
#define TRACE_TOE 1 << 1 |
Definition at line 54 of file tb_nal.cpp.
#define UNVALID false |
Definition at line 44 of file tb_nal.cpp.
#define VALID true |
Definition at line 43 of file tb_nal.cpp.
#define XNAL_PIFMC_NAL_CTRLLINK_AXI_ADDR_CTRLLINK_V_BASE 0x200 |
#define XNAL_PIFMC_NAL_CTRLLINK_AXI_ADDR_CTRLLINK_V_HIGH 0x3ff |
typedef UdpLen UdpAppDLen |
typedef ap_uint<16> UdpDstPort |
typedef UdpAppDLen UdpPLen |
typedef ap_uint<16> UdpSrcPort |
enum AxiLiteFsmStates |
enum CacheInvalFsmStates |
Enumerator | |
---|---|
CACHE_WAIT_FOR_VALID | |
CACHE_VALID | |
CACHE_INV_SEND_0 | |
CACHE_INV_SEND_1 | |
CACHE_INV_SEND_2 | |
CACHE_INV_SEND_3 |
enum ClsFsmStates |
enum ConfigBcastStates |
enum DeqFsmStates |
enum FsmStateUdp |
enum LsnFsmStates |
enum LsnStates |
Enumerator | |
---|---|
LSN_WAIT_REQ | |
LSN_SEND_ACK |
Definition at line 816 of file tb_nal.cpp.
enum NalCntIncType |
enum OpnFsmStates |
enum OpnStates |
Enumerator | |
---|---|
OPN_WAIT_REQ | |
OPN_SEND_REP | |
OPN_TIMEOUT |
Definition at line 817 of file tb_nal.cpp.
enum PortFsmStates |
Definition at line 175 of file nal.hpp.
enum RdpFsmStates |
Enumerator | |
---|---|
RDP_RESET | |
RDP_WAIT_META | |
RDP_W8FORREQS_1 | |
RDP_W8FORREQS_2 | |
RDP_FILTER_META | |
RDP_STREAM_ROLE | |
RDP_STREAM_FMC | |
RDP_WRITE_META_ROLE | |
RDP_WRITE_META_FMC | |
RDP_DROP_PACKET |
Definition at line 152 of file nal.hpp.
enum RoleFsmStates |
Enumerator | |
---|---|
ROLE_WAIT_META | |
ROLE_STREAM |
Definition at line 734 of file tb_nal.cpp.
enum RrhEnqFsmStates |
enum RrhFsmStates |
Enumerator | |
---|---|
RRH_RESET | |
RRH_WAIT_NOTIF | |
RRH_PROCESS_NOTIF | |
RRH_START_REQUEST | |
RRH_PROCESS_REQUEST | |
RRH_WAIT_FMC | |
RRH_WAIT_ROLE | |
RRH_DRAIN |
enum RxFsmStates |
Enumerator | |
---|---|
RX_WAIT_META | |
RX_STREAM |
Definition at line 681 of file tb_nal.cpp.
enum RxpStates |
Enumerator | |
---|---|
RXP_SEND_NOTIF | |
RXP_WAIT_DREQ | |
RXP_SEND_META | |
RXP_SEND_DATA | |
RXP_DONE |
Definition at line 818 of file tb_nal.cpp.
enum TableFsmStates |
enum TxpStates |
Enumerator | |
---|---|
TXP_WAIT_REQ | |
TXP_WAIT_DATA | |
TXP_RECV_DATA |
Definition at line 819 of file tb_nal.cpp.
enum WbuFsmStates |
enum WrpFsmStates |
Enumerator | |
---|---|
WRP_RESET | |
WRP_WAIT_META | |
WRP_STREAM_FMC | |
WRP_W8FORREQS_1 | |
WRP_W8FORREQS_11 | |
WRP_W8FORREQS_2 | |
WRP_W8FORREQS_22 | |
WRP_WAIT_CONNECTION | |
WRP_STREAM_ROLE | |
WRP_DROP_PACKET |
void axi4liteProcessing | ( | ap_uint< 32 > | ctrlLink[64+16+16], |
stream< NalConfigUpdate > & | sToPortLogic, | ||
stream< NalConfigUpdate > & | sToUdpRx, | ||
stream< NalConfigUpdate > & | sToTcpRx, | ||
stream< NalConfigUpdate > & | sToStatusProc, | ||
stream< NalMrtUpdate > & | sMrtUpdate, | ||
stream< uint32_t > & | mrt_version_update_0, | ||
stream< uint32_t > & | mrt_version_update_1, | ||
stream< NalStatusUpdate > & | sStatusUpdate | ||
) |
Contains the Axi4 Lite secondary endpoint and reads the MRT and configuration values from it as well as writes the status values. It notifies all other concerned processes on MRT or configuration updates and is notified on status updates.
[in/out] | ctrlLink, the Axi4Lite bus | |
[out] | sToPortLogic,notification | of configuration changes |
[out] | sToUdpRx,notification | of configuration changes |
[out] | sToTcpRx,notification | of configuration changes |
[out] | sToStatusProc,notification | of configuration changes |
[out] | sMrtUpdate,notification | of MRT content changes |
[out] | mrt_version_update_0,notification | of MRT version change |
[out] | mrt_version_update_1,notification | of MRT version change |
[in] | sStatusUpdate,Satus | update notification for Axi4Lite proc |
Definition at line 79 of file hss.cpp.
bool dumpDataToFile | ( | NetworkWord * | udpWord, |
ofstream & | outFileStream | ||
) |
Definition at line 462 of file tb_nal.cpp.
bool dumpDataToFile | ( | UdpAppData * | udpWord, |
ofstream & | outFileStream | ||
) |
Dump a data word to a file.
[in] | udpWord,a | pointer to the data word to dump. |
[in] | outFileStream,the | output file stream to write to. |
Definition at line 449 of file tb_nal.cpp.
bool dumpMetaToFile | ( | UdpAppMeta * | udpMeta, |
ofstream & | outFileStream | ||
) |
Dump a metadata information to a file.
[in] | udpMeta,a | pointer to the metadata structure to dump. |
[in] | outFileStream,the | output file stream to write to. |
Definition at line 483 of file tb_nal.cpp.
bool dumpPLenToFile | ( | UdpPLen * | udpPLen, |
ofstream & | outFileStream | ||
) |
Dump a payload length information to a file.
[in] | udpPLen,a | pointer to the payload length to dump. |
[in] | outFileStream,the | output file stream to write to. |
Definition at line 507 of file tb_nal.cpp.
void eventFifoMerge | ( | stream< NalEventNotif > & | internal_event_fifo_0, |
stream< NalEventNotif > & | internal_event_fifo_1, | ||
stream< NalEventNotif > & | internal_event_fifo_2, | ||
stream< NalEventNotif > & | internal_event_fifo_3, | ||
stream< NalEventNotif > & | merged_fifo | ||
) |
Merges multiple fifos, where the order of the fifo represents also the priorities.
Definition at line 412 of file nal.cpp.
uint8_t extractByteCnt | ( | AxisRaw | currWord | ) |
Definition at line 94 of file nal.cpp.
uint8_t extractByteCnt | ( | NetworkWord | currWord | ) |
bool getOutputDataStream | ( | stream< NetworkWord > & | sDataStream, |
const string | dataStreamName, | ||
const string | outFileName | ||
) |
Definition at line 562 of file tb_nal.cpp.
bool getOutputDataStream | ( | stream< UdpAppData > & | sDataStream, |
const string | dataStreamName, | ||
const string | outFileName | ||
) |
Fill an output file with data from an output stream.
[in] | sDataStream,the | output data stream to set. |
[in] | dataStreamName,the | name of the data stream. |
[in] | outFileName,the | name of the output file to write to. |
Definition at line 526 of file tb_nal.cpp.
bool getOutputMetaStream | ( | stream< UdpAppMeta > & | sMetaStream, |
const string | metaStreamName, | ||
const string | outFileName | ||
) |
Fill an output file with metadata from an output stream.
[in] | sMetaStream,the | output metadata stream to set. |
[in] | metaStreamName,the | name of the metadata stream. |
[in] | outFileName,the | name of the output file to write to. |
Definition at line 607 of file tb_nal.cpp.
bool getOutputPLenStream | ( | stream< UdpPLen > & | sPLenStream, |
const string | plenStreamName, | ||
const string | outFileName | ||
) |
Fill an output file with payload length from an output stream.
[in] | sPLenStream,the | output payload length stream to set. |
[in] | plenStreamName,the | name of the payload length stream. |
[in] | outFileName,the | name of the output file to write to. |
Definition at line 648 of file tb_nal.cpp.
ap_uint< 32 > getRightmostBitPos | ( | ap_uint< 32 > | num | ) |
int main | ( | ) |
Main Testbench Loop; Emulates also the behavior of the UDP Offload Engine (UOE).
Definition at line 1084 of file tb_nal.cpp.
void nal_main | ( | ap_uint< 32 > | ctrlLink[64+16+16], |
ap_uint< 1 > * | layer_4_enabled, | ||
ap_uint< 1 > * | layer_7_enabled, | ||
ap_uint< 1 > * | role_decoupled, | ||
ap_uint< 1 > * | piNTS_ready, | ||
ap_uint< 16 > * | piMMIO_FmcLsnPort, | ||
ap_uint< 32 > * | piMMIO_CfrmIp4Addr, | ||
ap_uint< 32 > * | myIpAddress, | ||
ap_uint< 32 > * | pi_udp_rx_ports, | ||
stream< NetworkWord > & | siUdp_data, | ||
stream< NetworkWord > & | soUdp_data, | ||
stream< NetworkMetaStream > & | siUdp_meta, | ||
stream< NetworkMetaStream > & | soUdp_meta, | ||
ap_uint< 32 > * | pi_tcp_rx_ports, | ||
stream< NetworkWord > & | siTcp_data, | ||
stream< NetworkMetaStream > & | siTcp_meta, | ||
stream< NetworkWord > & | soTcp_data, | ||
stream< NetworkMetaStream > & | soTcp_meta, | ||
stream< NetworkWord > & | siFMC_data, | ||
stream< TcpSessId > & | siFMC_SessId, | ||
stream< NetworkWord > & | soFMC_data, | ||
stream< TcpSessId > & | soFMC_SessId, | ||
stream< UdpPort > & | soUOE_LsnReq, | ||
stream< StsBool > & | siUOE_LsnRep, | ||
stream< UdpPort > & | soUOE_ClsReq, | ||
stream< StsBool > & | siUOE_ClsRep, | ||
stream< UdpAppData > & | siUOE_Data, | ||
stream< UdpAppMeta > & | siUOE_Meta, | ||
stream< UdpAppDLen > & | siUOE_DLen, | ||
stream< UdpAppData > & | soUOE_Data, | ||
stream< UdpAppMeta > & | soUOE_Meta, | ||
stream< UdpAppDLen > & | soUOE_DLen, | ||
stream< TcpAppNotif > & | siTOE_Notif, | ||
stream< TcpAppRdReq > & | soTOE_DReq, | ||
stream< TcpAppData > & | siTOE_Data, | ||
stream< TcpAppMeta > & | siTOE_SessId, | ||
stream< TcpAppLsnReq > & | soTOE_LsnReq, | ||
stream< TcpAppLsnRep > & | siTOE_LsnRep, | ||
stream< TcpAppData > & | soTOE_Data, | ||
stream< TcpAppSndReq > & | soTOE_SndReq, | ||
stream< TcpAppSndRep > & | siTOE_SndRep, | ||
stream< TcpAppOpnReq > & | soTOE_OpnReq, | ||
stream< TcpAppOpnRep > & | siTOE_OpnRep, | ||
stream< TcpAppClsReq > & | soTOE_ClsReq | ||
) |
Main process of the Network Abstraction Layer (NAL)
Definition at line 464 of file nal.cpp.
void pCacheInvalDetection | ( | ap_uint< 1 > * | layer_4_enabled, |
ap_uint< 1 > * | layer_7_enabled, | ||
ap_uint< 1 > * | role_decoupled, | ||
ap_uint< 1 > * | piNTS_ready, | ||
stream< uint32_t > & | mrt_version_update, | ||
stream< bool > & | inval_del_sig, | ||
stream< bool > & | cache_inval_0, | ||
stream< bool > & | cache_inval_1, | ||
stream< bool > & | cache_inval_2, | ||
stream< bool > & | cache_inval_3 | ||
) |
Detects if the caches of the USS and TSS have to be invalidated and signals this to the concerned processes.
[in] | layer_4_enabled,external | signal if layer 4 is enabled |
[in] | layer_7_enabled,external | signal if layer 7 is enabled |
[in] | role_decoupled,external | signal if the role is decoupled |
[in] | piNTS_ready,external | signal if NTS is up and running |
[in] | mrt_version_update,notification | of MRT version change |
[in] | inval_del_sig,notification | of connection closing |
[out] | cache_inval_0,signals | that caches must be invalidated |
[out] | cache_inval_1,signals | that caches must be invalidated |
[out] | cache_inval_2,signals | that caches must be invalidated |
[out] | cache_inval_3,signals | that caches must be invalidated |
Definition at line 889 of file hss.cpp.
void pFMC | ( | stream< NetworkWord > & | siTRIF_Data, |
stream< TcpSessId > & | siTRIF_SessId, | ||
stream< NetworkWord > & | soTRIF_Data, | ||
stream< TcpSessId > & | soTRIF_SessId | ||
) |
Emulate the behavior of the FMC.
[in] | siTRIF_Data,Data | to TcpRoleInterface (TRIF). |
[in] | siTRIF_SessId,Session | ID to [TRIF]. |
[out] | soROLE_Data,Data | stream to [TRIF]. |
[out] | soROLE_SessId | SessionID to [TRFI]. |
Definition at line 693 of file tb_nal.cpp.
void pFmcTcpRxDeq | ( | stream< NetworkWord > & | sFmcTcpDataRx_buffer, |
stream< TcpSessId > & | sFmcTcpMetaRx_buffer, | ||
stream< NetworkWord > & | soFmc_data, | ||
stream< TcpSessId > & | soFmc_meta, | ||
stream< PacketLen > & | fmc_write_cnt_sig | ||
) |
void pMrtAgency | ( | stream< NalMrtUpdate > & | sMrtUpdate, |
stream< NodeId > & | sGetIpReq_UdpTx, | ||
stream< Ip4Addr > & | sGetIpRep_UdpTx, | ||
stream< NodeId > & | sGetIpReq_TcpTx, | ||
stream< Ip4Addr > & | sGetIpRep_TcpTx, | ||
stream< Ip4Addr > & | sGetNidReq_UdpRx, | ||
stream< NodeId > & | sGetNidRep_UdpRx, | ||
stream< Ip4Addr > & | sGetNidReq_TcpRx, | ||
stream< NodeId > & | sGetNidRep_TcpRx | ||
) |
Can access the BRAM that contains the MRT and replies to lookup requests.
[in] | sMrtUpdate,Notification | of MRT changes |
[in] | sGetIpReq_UdpTx,Request | stream to get the IPv4 to a NodeId (from UdpTx) |
[out] | sGetIpRep_UdpTx,Reply | stream containing the IP address (to UdpTx) |
[in] | sGetIpReq_TcpTx,Request | stream to get the IPv4 to a NodeId (from TcpTx) |
[out] | sGetIpRep_TcpTx,Reply | stream containing the IP address (to TcpTx) |
[in] | sGetNidReq_UdpRx,Request | stream to get the NodeId to an IPv4 (from UdRx) |
[out] | sGetNidRep_UdpRx,Reply | stream containing the NodeId (to UdpRx) |
[in] | sGetNidReq_TcpRx,Request | stream to get the NodeId to an IPv4 (from TcpRx) |
[out] | sGetNidRep_TcpRx,Reply | stream containing the NodeId (to TcpRX) |
Definition at line 386 of file hss.cpp.
void pPortLogic | ( | ap_uint< 1 > * | layer_4_enabled, |
ap_uint< 1 > * | layer_7_enabled, | ||
ap_uint< 1 > * | role_decoupled, | ||
ap_uint< 1 > * | piNTS_ready, | ||
ap_uint< 16 > * | piMMIO_FmcLsnPort, | ||
ap_uint< 32 > * | pi_udp_rx_ports, | ||
ap_uint< 32 > * | pi_tcp_rx_ports, | ||
stream< NalConfigUpdate > & | sConfigUpdate, | ||
stream< UdpPort > & | sUdpPortsToOpen, | ||
stream< UdpPort > & | sUdpPortsToClose, | ||
stream< TcpPort > & | sTcpPortsToOpen, | ||
stream< bool > & | sUdpPortsOpenFeedback, | ||
stream< bool > & | sTcpPortsOpenFeedback, | ||
stream< bool > & | sMarkToDel_unpriv, | ||
stream< NalPortUpdate > & | sPortUpdate, | ||
stream< bool > & | sStartTclCls | ||
) |
Translates the one-hot encoded open-port vectors from the Role (i.e. piUdpRxPorts
and piTcpRxPorts
) to absolute port numbers If the input vector changes, or during a reset of the Role, the necessary open or close requests are send to pUdpLsn
, pUdpCls
, pTcpLsn
, and pTcpCls
.
[in] | layer_4_enabled,external | signal if layer 4 is enabled |
[in] | layer_7_enabled,external | signal if layer 7 is enabled |
[in] | role_decoupled,external | signal if the role is decoupled |
[in] | piNTS_ready,external | signal if NTS is up and running |
[in] | piMMIO_FmcLsnPort,the | management listening port (from MMIO) |
[in] | pi_udp_rx_ports,one-hot | encoded UDP Role listening ports |
[in] | pi_tcp_rx_ports,one-hot | encoded Tcp Role listening ports |
[in] | sConfigUpdate,notification | of configuration changes |
[out] | sUdpPortsToOpen,stream | containing the next UdpPort to open (to pUdpLsn) |
[out] | sUdpPortsToClose,stream | containing the next UdpPort to close (to pUdpCls) |
[out] | sTcpPortsToOpen,stream | containing the next TcpPort to open (to pUdpLsn) |
[in] | sUdpPortsOpenFeedback,signal | of Udp Port opening results (success/failure) |
[in] | sTcpPortsOpenFeedback,signal | of Tcp Port opening results (success/failure) |
[out] | sMarkToDel_unpriv,signal | to mark unpivileged Tcp session as to be closed (to TCP agency) |
[out] | sPortUpdate,stream | containing updates of currently opened ports (to status processing) |
[out] | sStartTclCls | signal to start TCP Connection closing (to pTcpCls) |
Definition at line 545 of file hss.cpp.
void pROLE | ( | stream< NetworkWord > & | siTRIF_Data, |
stream< NetworkMetaStream > & | siTRIF_meta, | ||
stream< NetworkWord > & | soTRIF_Data, | ||
stream< NetworkMetaStream > & | soTRIF_meta | ||
) |
Emulate the behavior of the ROLE.
[in] | siTRIF_Data,Data | to TcpRoleInterface (TRIF). |
[in] | siTRIF_meta,Network | meta data. |
[out] | soROLE_Data,Data | stream to [TRIF]. |
[out] | soROLE_meta,Network | meta data. |
Definition at line 746 of file tb_nal.cpp.
void pRoleTcpRxDeq | ( | ap_uint< 1 > * | layer_7_enabled, |
ap_uint< 1 > * | role_decoupled, | ||
stream< NetworkWord > & | sRoleTcpDataRx_buffer, | ||
stream< NetworkMetaStream > & | sRoleTcpMetaRx_buffer, | ||
stream< NetworkWord > & | soTcp_data, | ||
stream< NetworkMetaStream > & | soTcp_meta, | ||
stream< PacketLen > & | role_write_cnt_sig | ||
) |
void pRoleUdpRxDeq | ( | ap_uint< 1 > * | layer_7_enabled, |
ap_uint< 1 > * | role_decoupled, | ||
stream< NetworkWord > & | sRoleUdpDataRx_buffer, | ||
stream< NetworkMetaStream > & | sRoleUdpMetaRx_buffer, | ||
stream< NetworkWord > & | soUdp_data, | ||
stream< NetworkMetaStream > & | soUdp_meta | ||
) |
void pStatusMemory | ( | stream< NalEventNotif > & | internal_event_fifo, |
ap_uint< 1 > * | layer_7_enabled, | ||
ap_uint< 1 > * | role_decoupled, | ||
stream< NalConfigUpdate > & | sConfigUpdate, | ||
stream< uint32_t > & | mrt_version_update, | ||
stream< NalPortUpdate > & | sNalPortUpdate, | ||
stream< NalStatusUpdate > & | sStatusUpdate | ||
) |
Maps the individual event notification of the USS/TSS processes to the status array as part of the Axi4Lite address space. Forwards status changes to Axi4Lite processing.
[in] | internal_event_fifo,the | merged event fifo |
[in] | layer_7_enabled,external | signal if layer 7 is enabled |
[in] | role_decoupled,external | signal if the role is decoupled |
[in] | sConfigUpdate,notification | of configuration changes |
[in] | mrt_version_update,notification | of MRT version change |
[in] | sNalPortUpdate,notification | if ports were opened or closed |
[out] | sStatusUpdate,the | status update notification for Axi4Lite proc |
Definition at line 180 of file nal.cpp.
void pTcpAgency | ( | stream< SessionId > & | sGetTripleFromSid_Req, |
stream< NalTriple > & | sGetTripleFromSid_Rep, | ||
stream< NalTriple > & | sGetSidFromTriple_Req, | ||
stream< SessionId > & | sGetSidFromTriple_Rep, | ||
stream< NalNewTableEntry > & | sAddNewTriple_TcpRrh, | ||
stream< NalNewTableEntry > & | sAddNewTriple_TcpCon, | ||
stream< SessionId > & | sDeleteEntryBySid, | ||
stream< bool > & | inval_del_sig, | ||
stream< SessionId > & | sMarkAsPriv, | ||
stream< bool > & | sMarkToDel_unpriv, | ||
stream< bool > & | sGetNextDelRow_Req, | ||
stream< SessionId > & | sGetNextDelRow_Rep | ||
) |
Contains the SessionId-Triple CAM for TCP sessions. It replies to stram requests.
[in] | sGetTripleFromSid_Req,Request | stream to get the Tcp Triple to a SessionId |
[out] | sGetTripleFromSid_Rep,Reply | stream containing Tcp Triple |
[in] | sGetSidFromTriple_Req,Request | stream to get the SessionId to a Tcp Triple |
[out] | sGetSidFromTriple_Rep,Reply | stream containing the SessionId |
[in] | sAddNewTriple_TcpRrh,Stream | containing new SessionIds with Triples (from TcpRRh) |
[out] | sAddNewTriple_TcpCon,Stream | containing new SessionIds with Triples (from TcpCOn) |
[in] | sDeleteEntryBySid,Notification | to mark a table entry as closed |
[out] | inval_del_sig,Notification | of connection closing to Cache Invalidation Logic |
[in] | sMarkAsPriv,Notification | to mark a session as prvileged |
[in] | sMarkToDel_unpriv,Signal | to mark all un-privileged sessions as to-be-deleted |
[in] | sGetNextDelRow_Req,Request | to get the next sesseion that is marked as to-be-deleted |
[out] | sGetNextDelRow_Rep,Reply | containin the SessionId of the next to-be-deleted session |
Definition at line 1017 of file hss.cpp.
void pTcpCls | ( | stream< TcpAppClsReq > & | soTOE_ClsReq, |
stream< bool > & | sGetNextDelRow_Req, | ||
stream< SessionId > & | sGetNextDelRow_Rep, | ||
stream< bool > & | sStartTclCls | ||
) |
Asks the TOE to close Tcp connections, based on the request from pPortLogic.
[out] | soTOE_ClsReq,close | connection request to TOE. |
[in] | sGetNextDelRow_Req,request | stream to TCP Agency |
[in] | sGetNextDelRow_Rep,reply | stream rom TCP Agency |
[in] | sStartTclCls,start | signal from pPortLogic |
Definition at line 1892 of file tss.cpp.
void pTcpCOn | ( | stream< TcpAppOpnReq > & | soTOE_OpnReq, |
stream< TcpAppOpnRep > & | siTOE_OpnRep, | ||
stream< NalNewTableEntry > & | sAddNewTriple_TcpCon, | ||
stream< NalTriple > & | sNewTcpCon_Req, | ||
stream< NalNewTcpConRep > & | sNewTcpCon_Rep | ||
) |
Client connection to remote HOST or FPGA socket (COn).
[out] | soTOE_OpnReq,open | connection request to TOE. |
[in] | siTOE_OpnRep,open | connection reply from TOE. |
[out] | sAddNewTriple_TcpCon,Notification | for the TCP Agency to add a new Triple/SessionId pair |
[in] | sNewTcpCon_Req,Request | stream from pTcpWRp to open a new connection |
[out] | sNewTcpCon_Rep,Reply | stream to pTcpWRp |
Definition at line 1751 of file tss.cpp.
void pTcpLsn | ( | stream< TcpAppLsnReq > & | soTOE_LsnReq, |
stream< TcpAppLsnRep > & | siTOE_LsnRep, | ||
stream< TcpPort > & | sTcpPortsToOpen, | ||
stream< bool > & | sTcpPortsOpenFeedback | ||
) |
Request the TOE to start listening (LSn) for incoming connections on a specific port (.i.e open connection for reception mode).
[out] | soTOE_LsnReq,listen | port request to TOE. |
[in] | siTOE_LsnRep,listen | port acknowledge from TOE. |
[in] | sTcpPortsToOpen,port | open request from pPortLogic |
[out] | sTcpPortsOpenFeedback,feedback | to pPortLogic |
Definition at line 53 of file tss.cpp.
void pTcpRDp | ( | ap_uint< 1 > * | layer_4_enabled, |
ap_uint< 1 > * | piNTS_ready, | ||
stream< TcpAppRdReq > & | sRDp_ReqNotif, | ||
stream< TcpAppData > & | siTOE_Data, | ||
stream< TcpAppMeta > & | siTOE_SessId, | ||
stream< NetworkWord > & | soFMC_data, | ||
stream< TcpSessId > & | soFMC_SessId, | ||
stream< NetworkWord > & | soTcp_data, | ||
stream< NetworkMetaStream > & | soTcp_meta, | ||
stream< NalConfigUpdate > & | sConfigUpdate, | ||
stream< Ip4Addr > & | sGetNidReq_TcpRx, | ||
stream< NodeId > & | sGetNidRep_TcpRx, | ||
stream< SessionId > & | sGetTripleFromSid_Req, | ||
stream< NalTriple > & | sGetTripleFromSid_Rep, | ||
ap_uint< 32 > * | piMMIO_CfrmIp4Addr, | ||
ap_uint< 16 > * | piMMIO_FmcLsnPort, | ||
ap_uint< 1 > * | layer_7_enabled, | ||
ap_uint< 1 > * | role_decoupled, | ||
stream< bool > & | cache_inval_sig, | ||
stream< NalEventNotif > & | internal_event_fifo | ||
) |
Read Path (RDp) - From TOE to ROLE or FMC. Process waits for a new data segment to read and forwards it to ROLE or FMC. Invalid packets are dropped.
[in] | layer_4_enabled,external | signal if layer 4 is enabled |
[in] | piNTS_ready,external | signal if NTS is up and running |
[in] | sRDp_ReqNotif,Notifies | pTcpRDp about a n incoming TCP chunk |
[in] | siTOE_Data,Data | from [TOE]. |
[in] | siTOE_SessId,Session | Id from [TOE]. |
[out] | soFmc_data,Data | for FMC |
[out] | soFmc_meta,Metadata | for FMC |
[out] | soTcp_data,Data | to [ROLE]. |
[out] | soTcp_meta,Meta | Data to [ROLE]. |
[in] | sConfigUpdate,notification | of configuration changes |
[out] | sGetNidReq_TcpRx,Request | stream for the the MRT Agency |
[in] | sGetNidRep_TcpRx,Reply | stream from the MRT Agency |
[out] | &sGetTripleFromSid_Req,Request | stream for the the TCP Agency |
[in] | &sGetTripleFromSid_Rep,Reply | stream from the TCO Agency |
[in] | piMMIO_CfrmIp4Addr,the | IP address of the CFRM (from MMIO) |
[in] | piMMIO_FmcLsnPort,the | management listening port (from MMIO) |
[in] | layer_7_enabled,external | signal if layer 7 is enabled |
[in] | role_decoupled,external | signal if the role is decoupled |
[in] | cache_inval_sig,Signal | from the Cache Invalidation Logic |
[out] | internal_event_fifo,Fifo | for event reporting |
Definition at line 581 of file tss.cpp.
void pTcpRRh | ( | ap_uint< 1 > * | layer_4_enabled, |
ap_uint< 1 > * | piNTS_ready, | ||
ap_uint< 32 > * | piMMIO_CfrmIp4Addr, | ||
ap_uint< 16 > * | piMMIO_FmcLsnPort, | ||
stream< TcpAppNotif > & | siTOE_Notif, | ||
stream< TcpAppRdReq > & | soTOE_DReq, | ||
stream< NalNewTableEntry > & | sAddNewTriple_TcpRrh, | ||
stream< SessionId > & | sMarkAsPriv, | ||
stream< SessionId > & | sDeleteEntryBySid, | ||
stream< TcpAppRdReq > & | sRDp_ReqNotif, | ||
stream< PacketLen > & | fmc_write_cnt_sig, | ||
stream< PacketLen > & | role_write_cnt_sig | ||
) |
ReadRequestHandler (RRh). Waits for a notification indicating the availability of new data for the ROLE or FMC.
[in] | layer_4_enabled,external | signal if layer 4 is enabled |
[in] | piNTS_ready,external | signal if NTS is up and running |
[in] | piMMIO_CfrmIp4Addr,the | IP address of the CFRM (from MMIO) |
[in] | piMMIO_FmcLsnPort,the | management listening port (from MMIO) |
[in] | siTOE_Notif,a | new Rx data notification from TOE. |
[out] | soTOE_DReq,a | Rx data request to TOE. |
[out] | sAddNewTriple_TcpRrh,Notification | for the TCP Agency to add a new Triple/SessionId pair |
[out] | sMarkAsPriv,Notification | for the TCP Agency to mark a connection as privileged |
[out] | sDeleteEntryBySid,Notifies | the TCP Agency of the closing of a connection |
[out] | sRDp_ReqNotif,Notifies | pTcpRDp about a n incoming TCP chunk |
[in] | fmc_write_cnt_sig,Signal | from pFmcTcpRxDeq about how many bytes are written |
[in] | role_write_cnt_sig,Signal | from pRoleTcpRxDeq about how many bytes are written |
Definition at line 219 of file tss.cpp.
void pTcpRxNotifEnq | ( | ap_uint< 1 > * | layer_4_enabled, |
ap_uint< 1 > * | piNTS_ready, | ||
stream< TcpAppNotif > & | siTOE_Notif, | ||
stream< TcpAppNotif > & | sTcpNotif_buffer | ||
) |
void pTcpWBu | ( | ap_uint< 1 > * | layer_4_enabled, |
ap_uint< 1 > * | piNTS_ready, | ||
stream< TcpAppData > & | siWrp_Data, | ||
stream< TcpAppMeta > & | siWrp_SessId, | ||
stream< TcpDatLen > & | siWrp_len, | ||
stream< TcpAppData > & | soTOE_Data, | ||
stream< TcpAppSndReq > & | soTOE_SndReq, | ||
stream< TcpAppSndRep > & | siTOE_SndRep | ||
) |
Write Buffer (WBu) - From WRp to TOE. Process to synchronize with TOE's TX buffer (and it's available space). In case of streaming mode (i.e. ROLE's length was 0), WRp takes care of splitting the data and writing the right len.
[in] | layer_4_enabled,external | signal if layer 4 is enabled |
[in] | piNTS_ready,external | signal if NTS is up and running |
[in] | siWrp_Data,Tx | data from [Wrp]. |
[in] | siWrp_SessId,the | session Id from [Wrp]. |
[in] | siWrp_len,the | length of the current chunk (is never 0) from [Wrp]. |
[out] | soTOE_Data,Data | for the TOE |
[out] | soTOE_SndReq,Send | request (containing the planned length) for the TOE |
[in] | siTOE_SndRep,Send | reply from the TOE (containing the allowed length) |
Definition at line 1552 of file tss.cpp.
void pTcpWRp | ( | ap_uint< 1 > * | layer_4_enabled, |
ap_uint< 1 > * | piNTS_ready, | ||
stream< NetworkWord > & | siFMC_data, | ||
stream< TcpSessId > & | siFMC_SessId, | ||
stream< NetworkWord > & | siTcp_data, | ||
stream< NetworkMetaStream > & | siTcp_meta, | ||
stream< TcpAppData > & | soTOE_Data, | ||
stream< TcpAppMeta > & | soTOE_SessId, | ||
stream< TcpDatLen > & | soTOE_len, | ||
stream< NodeId > & | sGetIpReq_TcpTx, | ||
stream< Ip4Addr > & | sGetIpRep_TcpTx, | ||
stream< NalTriple > & | sGetSidFromTriple_Req, | ||
stream< SessionId > & | sGetSidFromTriple_Rep, | ||
stream< NalTriple > & | sNewTcpCon_Req, | ||
stream< NalNewTcpConRep > & | sNewTcpCon_Rep, | ||
stream< bool > & | cache_inval_sig, | ||
stream< NalEventNotif > & | internal_event_fifo | ||
) |
Write Path (WRp) - From ROLE or FMC to TOE. Process waits for a new data segment to write and forwards it to TOE.
[in] | layer_4_enabled,external | signal if layer 4 is enabled |
[in] | piNTS_ready,external | signal if NTS is up and running |
[in] | siFmc_data,Data | from FMC |
[in] | siFmc_meta,Metadata | from FMC |
[in] | siTcp_data,Data | from [ROLE]. |
[in] | siTcp_meta,Meta | Data from [ROLE]. |
[out] | soTOE_Data,Data | for [TOE]. |
[out] | soTOE_SessId,Session | Id for [TOE]. |
[out] | soTOE_len,Data | length for [TOE]. |
[out] | sGetIpReq_TcpTx,Request | stream for the the MRT Agency |
[in] | sGetIpRep_TcpTx,Reply | stream from the MRT Agency |
[out] | &sGetSidFromTriple_Req,Request | stream for the the TCP Agency |
[in] | &sGetSidFromTriple_Rep,Reply | stream from the TCO Agency |
[out] | sNewTcpCon_Req,Request | stream for pTcpCOn to open a new connection |
[in] | sNewTcpCon_Rep,Reply | stream from pTcpCOn |
[in] | cache_inval_sig,Signal | from the Cache Invalidation Logic |
[out] | internal_event_fifo,Fifo | for event reporting |
Definition at line 1104 of file tss.cpp.
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 | ||
) |
Definition at line 840 of file tb_nal.cpp.
void pUdpCls | ( | stream< UdpPort > & | soUOE_ClsReq, |
stream< StsBool > & | siUOE_ClsRep, | ||
stream< UdpPort > & | sUdpPortsToClose | ||
) |
Asks the UOE to close UDP ports, based on the request from pPortLogic.
[out] | soUOE_ClsReq,close | port request for UOE |
[in] | siUOE_ClsRep,response | of the UOE |
[in] | sUdpPortsToClose,port | close request from pPortLogic |
Definition at line 747 of file uss.cpp.
void pUdpLsn | ( | stream< UdpPort > & | soUOE_LsnReq, |
stream< StsBool > & | siUOE_LsnRep, | ||
stream< UdpPort > & | sUdpPortsToOpen, | ||
stream< bool > & | sUdpPortsOpenFeedback | ||
) |
Asks the UOE to open new UDP ports for listening, based on the request from pPortLogic.
[out] | soUOE_LsnReq,open | port request for UOE |
[in] | siUOE_LsnRep,response | of the UOE |
[in] | sUdpPortsToOpen,port | open request from pPortLogic |
[out] | sUdpPortsOpenFeedback,feedback | to pPortLogic |
Definition at line 358 of file uss.cpp.
void pUdpRx | ( | ap_uint< 1 > * | layer_7_enabled, |
ap_uint< 1 > * | role_decoupled, | ||
stream< NetworkWord > & | soUdp_data, | ||
stream< NetworkMetaStream > & | soUdp_meta, | ||
stream< UdpAppData > & | siUOE_Data, | ||
stream< UdpAppMeta > & | siUOE_Meta, | ||
stream< UdpAppDLen > & | siUOE_DLen, | ||
stream< NalConfigUpdate > & | sConfigUpdate, | ||
stream< Ip4Addr > & | sGetNidReq_UdpRx, | ||
stream< NodeId > & | sGetNidRep_UdpRx, | ||
stream< bool > & | cache_inval_sig, | ||
stream< NalEventNotif > & | internal_event_fifo | ||
) |
Processes the incoming UDP packets (i.e. Network -> ROLE ).
[in] | layer_7_enabled,External | signal if layer 7 is enabled |
[in] | role_decoupled,External | signal if the role is decoupled |
[out] | soUdp_data,UDP | Data for the Role |
[out] | soUdp_meta,UDP | Metadata for the Role |
[in] | siUOE_Data,UDP | Data from the UOE |
[in] | siUOE_Meta,UDP | Metadata from the UOE |
[in] | siUOE_DLen,UDP | Packetlength from the UOE (UDP header) |
[in] | sConfigUpdate,Updates | from axi4liteProcessing (own rank) |
[out] | sGetNidReq_UdpRx,Request | stream for the the MRT Agency |
[in] | sGetNidRep_UdpRx,Reply | stream from the MRT Agency |
[in] | cache_inval_sig,Signal | from the Cache Invalidation Logic |
[out] | internal_event_fifo,Fifo | for event reporting |
Definition at line 467 of file uss.cpp.
void pUdpTX | ( | stream< NetworkWord > & | siUdp_data, |
stream< NetworkMetaStream > & | siUdp_meta, | ||
stream< UdpAppData > & | soUOE_Data, | ||
stream< UdpAppMeta > & | soUOE_Meta, | ||
stream< UdpAppDLen > & | soUOE_DLen, | ||
stream< NodeId > & | sGetIpReq_UdpTx, | ||
stream< Ip4Addr > & | sGetIpRep_UdpTx, | ||
const ap_uint< 32 > * | ipAddrBE, | ||
stream< bool > & | cache_inval_sig, | ||
stream< NalEventNotif > & | internal_event_fifo | ||
) |
Processes the outgoing UDP packets (i.e. ROLE -> Network).
[in] | siUdp_data,UDP | Data from the Role |
[in] | siUdp_meta,UDP | Metadata from the Role |
[out] | soUOE_Data,UDP | Data for the UOE |
[out] | soUOE_Meta,UDP | Metadata (i.e. HostSockAddr) for the UOE |
[out] | soUOE_DLen,UDP | Packet length for the UOE |
[out] | sGetIpReq_UdpTx,Request | stream for the the MRT Agency |
[in] | sGetIpRep_UdpTx,Reply | stream from the MRT Agency |
[in] | ipAddrBE,IP | address of the FPGA (from MMIO) |
[in] | cache_inval_sig,Signal | from the Cache Invalidation Logic |
[out] | internal_event_fifo,Fifo | for event reporting |
Definition at line 51 of file uss.cpp.
void pUoeUdpTxDeq | ( | ap_uint< 1 > * | layer_4_enabled, |
ap_uint< 1 > * | piNTS_ready, | ||
stream< UdpAppData > & | sUoeTxBuffer_Data, | ||
stream< UdpAppMeta > & | sUoeTxBuffer_Meta, | ||
stream< UdpAppDLen > & | sUoeTxBuffer_DLen, | ||
stream< UdpAppData > & | soUOE_Data, | ||
stream< UdpAppMeta > & | soUOE_Meta, | ||
stream< UdpAppDLen > & | soUOE_DLen | ||
) |
bool readDataStream | ( | stream< UdpAppData > & | sDataStream, |
UdpAppData * | udpWord | ||
) |
Read data from a stream.
[in] | sDataStream,the | output data stream to read. |
[in] | dataStreamName,the | name of the data stream. |
[out] | udpWord,a | pointer to the storage location of the data to read. |
Definition at line 395 of file tb_nal.cpp.
bool readMetaStream | ( | stream< UdpAppMeta > & | sMetaStream, |
const string | metaStreamName, | ||
UdpAppMeta * | udpMeta | ||
) |
Read an output metadata stream from the DUT.
[in] | sMetaStream,the | output metadata stream to read. |
[in] | metaStreamName,the | name of the meta stream. |
[out] | udpMeta,a | pointer to the storage location of the metadata to read. |
Definition at line 410 of file tb_nal.cpp.
bool readPLenStream | ( | stream< UdpPLen > & | sPLenStream, |
const string | plenStreamName, | ||
UdpPLen * | udpPLen | ||
) |
Read an output payload length stream from the DUT.
[in] | sPLenStream,the | output payload length stream to read. |
[in] | plenStreamName,the | name of the payload length stream. |
[out] | udpPLen,a | pointer to the storage location of the payload length to read. |
Definition at line 431 of file tb_nal.cpp.
uint8_t selectConfigUpdatePropagation | ( | uint16_t | config_addr | ) |
bool setInputDataStream | ( | stream< NetworkWord > & | sDataStream, |
const string | dataStreamName, | ||
const string | inpFileName | ||
) |
Definition at line 269 of file tb_nal.cpp.
bool setInputDataStream | ( | stream< UdpAppData > & | sDataStream, |
const string | dataStreamName, | ||
const string | inpFileName | ||
) |
Initialize an input data stream from a file.
[in] | sDataStream,the | input data stream to set. |
[in] | dataStreamName,the | name of the data stream. |
[in] | inpFileName,the | name of the input file to read from. |
Definition at line 214 of file tb_nal.cpp.
bool setInputMetaStream | ( | stream< UdpAppMeta > & | sMetaStream, |
const string | dataStreamName, | ||
const string | inpFileName | ||
) |
Initialize an input meta stream from a file.
[in] | sMetaStream,the | input meta stream to set. |
[in] | dataStreamName,the | name of the data stream. |
[in] | inpFileName,the | name of the input file to read from. |
Definition at line 333 of file tb_nal.cpp.
stream<NetworkWord> sFMC_Nrc_Tcp_data | ( | "sFMC_Nrc_Tcp_data" | ) |
stream<TcpSessId> sFMC_Nrc_Tcp_sessId | ( | "sFMC_Nrc_Tcp_sessId" | ) |
stream< NetworkMetaStream > siUdp_meta | ( | "siUdp_meta" | ) |
stream<NetworkWord> sNRC_FMC_Tcp_data | ( | "sNRC_FMC_Tcp_data" | ) |
stream<TcpSessId> sNRC_FMC_Tcp_sessId | ( | "sNRC_FMC_Tcp_sessId" | ) |
stream<NetworkWord> sNRC_Role_Data | ( | "sNRC_Role_Data" | ) |
stream<NetworkWord> sNRC_Role_Tcp_data | ( | "sNRC_Role_Tcp_data" | ) |
stream<NetworkMetaStream> sNRC_Role_Tcp_meta | ( | "sNRC_Role_Tcp_meta" | ) |
stream<TcpAppClsReq> sNRC_Toe_ClsReq | ( | "sNRC_TOE_ClsReq" | ) |
stream<TcpAppData> sNRC_Toe_Data | ( | "sNRC_TOE_Data" | ) |
stream<TcpAppRdReq> sNRC_Toe_DReq | ( | "sNrc_TOE_DReq" | ) |
stream<TcpAppLsnReq> sNRC_Toe_LsnReq | ( | "sNRC_TOE_LsnReq" | ) |
stream<TcpAppOpnReq> sNRC_Toe_OpnReq | ( | "sNRC_Toe_OpnReq" | ) |
stream<TcpAppSndReq> sNRC_Toe_SndReq | ( | "sNRC_TOE_SndReq" | ) |
stream<UdpPort> sNRC_UOE_ClsReq | ( | "sNRC_UOE_ClsReq" | ) |
stream<UdpAppData> sNRC_UOE_Data | ( | "sNRC_UOE_Data" | ) |
stream<UdpAppDLen> sNRC_UOE_DLen | ( | "sNRC_UOE_DLen" | ) |
stream<UdpPort> sNRC_UOE_LsnReq | ( | "sNRC_UOE_LsnReq" | ) |
stream<UdpAppMeta> sNRC_UOE_Meta | ( | "sNRC_UOE_Meta" | ) |
stream< NetworkMetaStream > soUdp_meta | ( | "soUdp_meta" | ) |
stream<NetworkWord> sROLE_NRC_Data | ( | "sROLE_NRC_Data" | ) |
stream<NetworkWord> sROLE_Nrc_Tcp_data | ( | "sROLE_Nrc_Tcp_data" | ) |
stream<NetworkMetaStream> sROLE_Nrc_Tcp_meta | ( | "sROLE_Nrc_Tcp_meta" | ) |
void stepDut | ( | ) |
Run a single iteration of the DUT model.
Definition at line 171 of file tb_nal.cpp.
stream<TcpAppData> sTOE_Nrc_Data | ( | "sTOE_Nrc_Data" | ) |
stream<TcpAppLsnRep> sTOE_Nrc_LsnAck | ( | "sTOE_Nrc_LsnAck" | ) |
stream<TcpAppNotif> sTOE_Nrc_Notif | ( | "sTOE_Nrc_Notif" | ) |
stream<TcpAppOpnRep> sTOE_Nrc_OpnRep | ( | "sTOE_NRC_OpenRep" | ) |
stream<TcpAppMeta> sTOE_Nrc_SessId | ( | "sTOE_Nrc_SessId" | ) |
stream<TcpAppSndRep> sTOE_Nrc_SndRep | ( | "sTOE_NRC_SndRep" | ) |
stream<StsBool> sUOE_NRC_ClsRep | ( | "sUOE_NRC_ClsRep" | ) |
stream<UdpAppData> sUOE_NRC_Data | ( | "sUOE_NRC_Data" | ) |
stream<UdpAppDLen> sUOE_NRC_DLen | ( | "sUOE_NRC_DLen" | ) |
stream<StsBool> sUOE_NRC_LsnRep | ( | "sUOE_NRC_LsnRep" | ) |
stream<UdpAppMeta> sUOE_NRC_Meta | ( | "sUOE_NRC_Meta" | ) |
TcpAppRdReq appRdReq |
Definition at line 826 of file tb_nal.cpp.
int byteCnt = 0 |
Definition at line 829 of file tb_nal.cpp.
ap_uint<32> ctrlLink[64+ 16+ 16] |
Definition at line 137 of file tb_nal.cpp.
ap_uint<64> data =0 |
Definition at line 832 of file tb_nal.cpp.
TcpPort fpgaLsnPort = -1 |
Definition at line 812 of file tb_nal.cpp.
bool gFatalError = false |
Definition at line 152 of file tb_nal.cpp.
unsigned int gSimCycCnt = 0 |
GLOBAL VARIABLES USED BY THE SIMULATION ENVIRONMENT
Definition at line 150 of file tb_nal.cpp.
|
extern |
HELPERS FOR THE DEBUGGING TRACES .e.g: DEBUG_LEVEL = (MDL_TRACE | IPS_TRACE)
Definition at line 151 of file tb_nal.cpp.
bool gTraceEvent = false |
HELPERS FOR THE DEBUGGING TRACES .e.g: DEBUG_LEVEL = (MDL_TRACE | IPS_TRACE)
Definition at line 151 of file tb_nal.cpp.
Ip4Addr hostIp4Addr = 0 |
Emulate the behavior of the TCP Offload Engine (TOE).
[in] | nrErr,A | ref to the error counter of main. |
[out] | soTRIF_Notif,Notification | to TcpRoleInterface (TRIF). |
[in] | siTRIF_DReq,Data | read request from [TRIF}. |
[out] | soTRIF_Data,Data | to [TRIF]. |
[out] | soTRIF_SessId,Session | Id to [TRIF]. |
[in] | siTRIF_LsnReq,Listen | port request from [TRIF]. |
[out] | soTRIF_LsnAck,Listen | port acknowledge to [TRIF]. |
Definition at line 811 of file tb_nal.cpp.
TcpPort hostSrcPort = 80 |
Definition at line 813 of file tb_nal.cpp.
ap_uint<1> layer_4_enabled = 0b1 |
Definition at line 132 of file tb_nal.cpp.
ap_uint<1> layer_7_enabled = 0b1 |
Definition at line 133 of file tb_nal.cpp.
int loop = 1 |
Definition at line 814 of file tb_nal.cpp.
enum LsnStates lsnState = LSN_WAIT_REQ |
ap_uint<32> myIpAddress |
Definition at line 140 of file tb_nal.cpp.
const char* myLsnName = "NAL" "/" "TOE/Listen" |
Definition at line 835 of file tb_nal.cpp.
const char* myOpnName = "NAL" "/" "TOE/OpnCon" |
Definition at line 836 of file tb_nal.cpp.
const char* myRxpName = "NAL" "/" "TOE/RxPath" |
Definition at line 837 of file tb_nal.cpp.
const char* myTxpName = "NAL" "/" "TOE/TxPath" |
Definition at line 838 of file tb_nal.cpp.
int nrSegToSend = 3 |
Definition at line 831 of file tb_nal.cpp.
int opnStartupDelay = 0 |
Definition at line 821 of file tb_nal.cpp.
enum OpnStates opnState = OPN_WAIT_REQ |
ap_uint<1> role_decoupled = 0b0 |
Definition at line 134 of file tb_nal.cpp.
enum RoleFsmStates roleFsmState = ROLE_WAIT_META |
enum RxFsmStates rxFsmState = RX_WAIT_META |
int rxpStartupDelay = 100 |
Definition at line 823 of file tb_nal.cpp.
enum RxpStates rxpState = RXP_SEND_NOTIF |
ap_uint<32> s_tcp_rx_ports = 0x1 |
Definition at line 139 of file tb_nal.cpp.
ap_uint<32> s_udp_rx_ports = 0x1 |
Definition at line 138 of file tb_nal.cpp.
int segCnt = 0 |
Definition at line 830 of file tb_nal.cpp.
AppMeta sessionId = 42 |
Definition at line 827 of file tb_nal.cpp.
AppMeta sessionId_reply = 42 |
Definition at line 828 of file tb_nal.cpp.
unsigned int simCnt |
Definition at line 158 of file tb_nal.cpp.
ap_uint<32> sIpAddress = 0x0a0b0c0d |
Definition at line 136 of file tb_nal.cpp.
ap_uint<32> sMMIO_CfrmIp4Addr = 0x0A0CC832 |
Definition at line 143 of file tb_nal.cpp.
ap_uint<16> sMMIO_FmcLsnPort = 8803 |
Definition at line 141 of file tb_nal.cpp.
ap_uint<1> sNTS_Nrc_ready = 0b1 |
Definition at line 135 of file tb_nal.cpp.
int tcp_packets_expected_timeout = 0 |
Definition at line 163 of file tb_nal.cpp.
int tcp_packets_recv = 0 |
Definition at line 161 of file tb_nal.cpp.
int tcp_packets_send = 0 |
Definition at line 160 of file tb_nal.cpp.
int tcp_recv_frag_cnt = 0 |
Definition at line 162 of file tb_nal.cpp.
int tcp_timout_packet_drop = 0 |
Definition at line 164 of file tb_nal.cpp.
TcpSegLen tcpSegLen = 32 |
Definition at line 833 of file tb_nal.cpp.
int txpStartupDelay = 0 |
Definition at line 824 of file tb_nal.cpp.
enum TxpStates txpState = TXP_WAIT_REQ |