cloudFPGA (cF) API  1.0
The documentation of the source code of cloudFPGA (cF)
tcp_shell_if.cpp File Reference

: TCP Shell Interface (TSIF) More...

#include "tcp_shell_if.hpp"
Include dependency graph for tcp_shell_if.cpp:

Go to the source code of this file.

Macros

#define THIS_NAME   "TSIF"
 
#define TRACE_OFF   0x0000
 
#define TRACE_IRB   1 << 1
 
#define TRACE_RDP   1 << 2
 
#define TRACE_WRP   1 << 3
 
#define TRACE_LSN   1 << 4
 
#define TRACE_CON   1 << 5
 
#define TRACE_RNH   1 << 6
 
#define TRACE_RRH   1 << 7
 
#define TRACE_RRM   1 << 8
 
#define TRACE_ALL   0xFFFF
 
#define DEBUG_LEVEL   (TRACE_OFF)
 

Functions

template<class Type >
void pStreamDataMover (stream< Type > &si, stream< Type > &so)
 Stream Data Mover - Moves data chunks from incoming stream to outgoing stream with blocking read and write access methods. More...
 
void pConnect (CmdBit *piSHL_Enable, stream< SockAddr > &siRDp_OpnSockReq, stream< Ly4Len > &siRDp_TxCountReq, stream< Ly4Len > &soWRp_TxBytesReq, stream< SessionId > &soWRp_TxSessId, stream< TcpAppOpnReq > &soSHL_OpnReq, stream< TcpAppOpnRep > &siSHL_OpnRep, stream< TcpAppClsReq > &soSHL_ClsReq)
 Connect (COn). More...
 
void pListen (CmdBit *piSHL_Enable, stream< TcpAppLsnReq > &soSHL_LsnReq, stream< TcpAppLsnRep > &siSHL_LsnRep)
 Listen(LSn) More...
 
void pInputReadBuffer (CmdBit *piSHL_Enable, stream< TcpAppData > &siSHL_Data, stream< TcpAppMeta > &siSHL_Meta, stream< TcpAppData > &soRDp_Data, stream< TcpAppMeta > &soRDp_Meta)
 Input Read Buffer (IRb) More...
 
void pReadNotificationHandler (CmdBit *piSHL_Enable, stream< TcpAppNotif > &siSHL_Notif, stream< TcpAppNotif > &soRRh_Notif)
 Read Notification Handler (RNh) More...
 
void pReadRequestHandler (CmdBit *piSHL_Enable, stream< TcpAppNotif > &siRNh_Notif, stream< SigBit > &siRDp_DequSig, stream< TcpAppRdReq > &soRRm_DReq, stream< ForwardCmd > &soRDp_FwdCmd, stream< ap_uint< 16 > > &soDBG_freeSpace)
 Read Request Handler (RRh) More...
 
void pReadRequestMover (CmdBit *piSHL_Enable, stream< TcpAppRdReq > &siRRh_DReq, stream< TcpAppRdReq > &soSHL_DReq)
 Read Request Mover (RRm) More...
 
void pReadPath (CmdBit *piSHL_Enable, stream< TcpAppData > &siSHL_Data, stream< TcpAppMeta > &siSHL_Meta, stream< ForwardCmd > &siRRh_FwdCmd, stream< SockAddr > &soCOn_OpnSockReq, stream< TcpDatLen > &soCOn_TxCountReq, stream< SigBit > &soRRh_DequSig, stream< TcpAppData > &soTAF_Data, stream< TcpSessId > &soTAF_SessId, stream< TcpDatLen > &soTAF_DatLen, stream< ap_uint< 32 > > &soDBG_SinkCount)
 Read Path (RDp) More...
 
void pWritePath (CmdBit *piSHL_Enable, stream< TcpAppData > &siTAF_Data, stream< TcpSessId > &siTAF_SessId, stream< TcpDatLen > &siTAF_DatLen, stream< TcpDatLen > &siCOn_TxBytesReq, stream< SessionId > &siCOn_TxSessId, stream< TcpAppData > &soSHL_Data, stream< TcpAppSndReq > &soSHL_SndReq, stream< TcpAppSndRep > &siSHL_SndRep)
 Write Path (WRp) More...
 
void tcp_shell_if (CmdBit *piSHL_Mmio_En, stream< TcpAppData > &siTAF_Data, stream< TcpSessId > &siTAF_SessId, stream< TcpDatLen > &siTAF_DatLen, stream< TcpAppData > &soTAF_Data, stream< TcpSessId > &soTAF_SessId, stream< TcpDatLen > &soTAF_DatLen, stream< TcpAppNotif > &siSHL_Notif, stream< TcpAppRdReq > &soSHL_DReq, stream< TcpAppData > &siSHL_Data, stream< TcpAppMeta > &siSHL_Meta, stream< TcpAppLsnReq > &soSHL_LsnReq, stream< TcpAppLsnRep > &siSHL_LsnRep, stream< TcpAppData > &soSHL_Data, stream< TcpAppSndReq > &soSHL_SndReq, stream< TcpAppSndRep > &siSHL_SndRep, stream< TcpAppOpnReq > &soSHL_OpnReq, stream< TcpAppOpnRep > &siSHL_OpnRep, stream< TcpAppClsReq > &soSHL_ClsReq, stream< ap_uint< 32 > > &soDBG_SinkCnt, stream< ap_uint< 16 > > &soDBG_InpBufSpace)
 TCP Shell Interface (TSIF) More...
 

Variables

bool gTraceEvent
 

Detailed Description

: TCP Shell Interface (TSIF)

System: : cloudFPGA Component : cFp_HelloKale/ROLE/TCP Shell Interface (TSIF) Language : Vivado HLS


This entity handles the control flow interface between the SHELL and the ROLE. The main purpose of the TSIF is to open a predefined set of ports in listening mode and/or to actively connect to remote host(s). The use of a dedicated layer is not a prerequisite but it is provided here for sake of simplicity by separating the data flow processing (see TAF) from the current control flow processing.

   +-------+  +--------------------------------+
   |       |  |  +------+     +-------------+  |
   |       <-----+      <-----+     TCP     |  |
   | SHELL |  |  | TSIF |     |             |  |
   |       +----->      +-----> APPLICATION |  |
   |       |  |  +------+     +-------------+  |
   +-------+  +--------------------------------+

Definition in file tcp_shell_if.cpp.