cloudFPGA (cF) API
1.0
The documentation of the source code of cloudFPGA (cF)
|
UDP Offload Engine (UOE) of the Network Transport Stack (NTS). More...
Modules | |
UOE_TEST | |
Testbench for the UDP Offload Engine (UOE) of the Network Transport Stack (NTS). | |
Files | |
file | test_uoe.cpp |
: Testbench for the UDP Offload Engine (UOE). | |
file | test_uoe.hpp |
: Testbench for the UDP Offload Engine (UOE). | |
Classes | |
class | IpAddrPair |
Macros | |
#define | THIS_NAME "UOE" |
#define | TRACE_OFF 0x0000 |
#define | TRACE_IHA 1 << 1 |
#define | TRACE_IHS 1 << 2 |
#define | TRACE_RPH 1 << 3 |
#define | TRACE_TAI 1 << 4 |
#define | TRACE_TDH 1 << 5 |
#define | TRACE_UCA 1 << 6 |
#define | TRACE_UCC 1 << 7 |
#define | TRACE_UHA 1 << 8 |
#define | TRACE_UPT 1 << 9 |
#define | TRACE_ALL 0xFFFF |
#define | DEBUG_LEVEL (TRACE_OFF) |
#define | UOE_ELASTIC_DATA_BUFFER 16*1024 |
#define | UOE_ELASTIC_HEADER_BUFF 64 |
Functions | |
void | pIpHeaderStripper (CmdBit piMMIO_En, stream< AxisIp4 > &siIPRX_Data, stream< AxisUdp > &soUcc_UdpDgrm, stream< UdpCsum > &soUcc_PsdHdrSum, stream< AxisIp4 > &soRph_Ip4Hdr, stream< SigBit > &siUcc_ClearToSend, stream< ap_uint< 16 > > &soMMIO_DropCnt) |
void | pUdpChecksumChecker (stream< AxisUdp > &siIhs_UdpDgrm, stream< UdpCsum > &siIhs_PsdHdrSum, stream< AxisUdp > &soRph_UdpDgrm, stream< ValBool > &soRph_CsumVal, stream< SigBit > &soIhs_ClearToSend) |
void | pRxPacketHandler (stream< AxisUdp > &siUcc_UdpDgrm, stream< ValBool > &siUcc_CsumVal, stream< AxisIp4 > &siIhs_Ip4Hdr, stream< UdpPort > &soUpt_PortStateReq, stream< StsBool > &siUpt_PortStateRep, stream< UdpAppData > &soUAIF_Data, stream< UdpAppMeta > &soUAIF_Meta, stream< UdpAppDLen > &soUAIF_DLen, stream< AxisIcmp > &soICMP_Data) |
void | pUdpPortTable (stream< StsBool > &soMMIO_Ready, stream< UdpPort > &siRph_PortStateReq, stream< StsBool > &soRph_PortStateRep, stream< UdpPort > &siUAIF_LsnReq, stream< StsBool > &soUAIF_LsnRep, stream< UdpPort > &siUAIF_ClsReq, stream< StsBool > &soUAIF_ClsRep) |
void | pRxEngine (CmdBit piMMIO_En, stream< StsBool > &soMMIO_Ready, stream< AxisIp4 > &siIPRX_Data, stream< UdpPort > &siUAIF_LsnReq, stream< StsBool > &soUAIF_LsnRep, stream< UdpPort > &siUAIF_ClsReq, stream< StsBool > &soUAIF_ClsRep, stream< UdpAppData > &soUAIF_Data, stream< UdpAppMeta > &soUAIF_Meta, stream< UdpAppDLen > &soUAIF_DLen, stream< AxisIcmp > &soICMP_Data, stream< ap_uint< 16 > > &soMMIO_DropCnt) |
void | pTxApplicationInterface (CmdBit piMMIO_En, stream< UdpAppData > &siUAIF_Data, stream< UdpAppMeta > &siUAIF_Meta, stream< UdpAppDLen > &siUAIF_DLen, stream< UdpAppData > &soTdh_Data, stream< UdpAppMeta > &soTdh_Meta, stream< UdpAppDLen > &soTdh_DLen) |
void | pTxDatagramHandler (stream< UdpAppData > &siUAIF_Data, stream< UdpAppMeta > &siUAIF_Meta, stream< UdpAppDLen > &siUAIF_DLen, stream< UdpAppData > &soUha_Data, stream< UdpAppMeta > &soUha_Meta, stream< UdpAppDLen > &soUha_DLen, stream< AxisPsd4 > &soUca_Data) |
void | pUdpChecksumAccumulator (stream< AxisPsd4 > &siTdh_Data, stream< UdpCsum > &soUha_Csum) |
void | pUdpHeaderAdder (stream< UdpAppData > &siTdh_Data, stream< UdpAppDLen > &siTdh_DLen, stream< UdpAppMeta > &siTdh_Meta, stream< UdpCsum > &siUca_Csum, stream< AxisUdp > &soIha_Data, stream< IpAddrPair > &soIha_IpPair, stream< UdpLen > &soIha_UdpLen) |
void | pIp4HeaderAdder (stream< AxisUdp > &siUha_Data, stream< IpAddrPair > &siUha_IpPair, stream< UdpLen > &siUha_UdpLen, stream< AxisIp4 > &soIPTX_Data) |
void | pTxEngine (CmdBit piMMIO_En, stream< UdpAppData > &siUAIF_Data, stream< UdpAppMeta > &siUAIF_Meta, stream< UdpAppDLen > &siUAIF_DLen, stream< AxisIp4 > &soIPTX_Data) |
void | uoe (CmdBit piMMIO_En, stream< ap_uint< 16 > > &soMMIO_DropCnt, stream< StsBool > &soMMIO_Ready, stream< AxisIp4 > &siIPRX_Data, stream< AxisIp4 > &soIPTX_Data, stream< UdpAppLsnReq > &siUAIF_LsnReq, stream< UdpAppLsnRep > &soUAIF_LsnRep, stream< UdpAppClsReq > &siUAIF_ClsReq, stream< UdpAppClsRep > &soUAIF_ClsRep, stream< UdpAppData > &soUAIF_Data, stream< UdpAppMeta > &soUAIF_Meta, stream< UdpAppDLen > &soUAIF_DLen, stream< UdpAppData > &siUAIF_Data, stream< UdpAppMeta > &siUAIF_Meta, stream< UdpAppDLen > &siUAIF_DLen, stream< AxisIcmp > &soICMP_Data) |
Main process of the UDP Offload Engine (UOE). More... | |
void | uoe_top (CmdBit piMMIO_En, stream< ap_uint< 16 > > &soMMIO_DropCnt, stream< StsBool > &soMMIO_Ready, stream< AxisRaw > &siIPRX_Data, stream< AxisRaw > &soIPTX_Data, stream< UdpAppLsnReq > &siUAIF_LsnReq, stream< UdpAppLsnRep > &soUAIF_LsnRep, stream< UdpAppClsReq > &siUAIF_ClsReq, stream< UdpAppClsRep > &soUAIF_ClsRep, stream< UdpAppData > &soUAIF_Data, stream< UdpAppMeta > &soUAIF_Meta, stream< UdpAppDLen > &soUAIF_DLen, stream< UdpAppData > &siUAIF_Data, stream< UdpAppMeta > &siUAIF_Meta, stream< UdpAppDLen > &siUAIF_DLen, stream< AxisRaw > &soICMP_Data) |
Top of UDP Offload Engine (UOE) More... | |
Variables | |
bool | gTraceEvent |
const int | cUdpRxDataFifoSize = ( 16*1024 )/( 64 /8) |
const int | cUdpRxHdrsFifoSize = ( 64 ) |
const int | cIp4RxHdrsFifoSize = (cUdpRxHdrsFifoSize * 4) |
const int | cMtuSize = (2*MTU)/( 64 /8) |
UDP Offload Engine (UOE) of the Network Transport Stack (NTS).
void pIp4HeaderAdder | ( | stream< AxisUdp > & | siUha_Data, |
stream< IpAddrPair > & | siUha_IpPair, | ||
stream< UdpLen > & | siUha_UdpLen, | ||
stream< AxisIp4 > & | soIPTX_Data | ||
) |
IPv4 Header Adder (Iha)
[in] | siUha_Data | UDM datagram stream from UdpHeaderAdder (Uha). |
[in] | siUha_IpPair | The IP_SA and IP_DA of this this datagram from [Uha]. |
[in] | siUha_UdpLen | The length of the UDP datagram fro [Uha]. |
[out] | soIPTX_Data | The IPv4 packet to IpTxHandler (IPTX). |
This process creates an IPv4 header and prepends it to the UDP datagram stream coming from the UdpHeaderAdder (Uha).
Definition at line 1599 of file uoe.cpp.
void pIpHeaderStripper | ( | CmdBit | piMMIO_En, |
stream< AxisIp4 > & | siIPRX_Data, | ||
stream< AxisUdp > & | soUcc_UdpDgrm, | ||
stream< UdpCsum > & | soUcc_PsdHdrSum, | ||
stream< AxisIp4 > & | soRph_Ip4Hdr, | ||
stream< SigBit > & | siUcc_ClearToSend, | ||
stream< ap_uint< 16 > > & | soMMIO_DropCnt | ||
) |
IPv4 Header Stripper (Ihs)
[in] | piMMIO_En | Enable signal from [SHELL/MMIO]. |
[in] | siIPRX_Data | IP4 data stream from IpRxHAndler (IPRX). |
[out] | soUcc_UdpDgrm | UDP datagram stream to UdpChecksumChecker (Ucc). |
[out] | soUcc_PsdHdrSum | Sum of the pseudo header information to [Ucc]. |
[out] | soRph_Ip4Hdr | The header part of the IPv4 packet as a stream to [Rph]. |
[in] | siUcc_ClearToSend | Clear to send signal from [Ucc]. |
[out] | soMMIO_DropCnt | The content of the datagram drop counter. |
This process extracts the UDP pseudo header and the IP header from the incoming IPv4 packet. The IP header is forwarded to RxPacketHandler (Rph) for further processing while the UDP datagram and the UDP pseudo-header are forwarded to the UDP checksum checker. To avoid blocking the IPRX engine of the NTS, this process starts dropping incoming traffic upon one of the two following conditions: 1) If the elastic data buffer located between [Ucc] and [Rph] is full or, 2) If the maximum number of stored headers is reached. The first condition (i.e. elastic buffer full) is indicated by the clear-to- send signal not being asserted.
Definition at line 109 of file uoe.cpp.
void pRxEngine | ( | CmdBit | piMMIO_En, |
stream< StsBool > & | soMMIO_Ready, | ||
stream< AxisIp4 > & | siIPRX_Data, | ||
stream< UdpPort > & | siUAIF_LsnReq, | ||
stream< StsBool > & | soUAIF_LsnRep, | ||
stream< UdpPort > & | siUAIF_ClsReq, | ||
stream< StsBool > & | soUAIF_ClsRep, | ||
stream< UdpAppData > & | soUAIF_Data, | ||
stream< UdpAppMeta > & | soUAIF_Meta, | ||
stream< UdpAppDLen > & | soUAIF_DLen, | ||
stream< AxisIcmp > & | soICMP_Data, | ||
stream< ap_uint< 16 > > & | soMMIO_DropCnt | ||
) |
Rx Engine (RXe)
[in] | piMMIO_En | Enable signal from [SHELL/MMIO]. |
[out] | soMMIO_Ready | Process ready signal. |
[in] | siIPRX_Data | IP4 data stream from IpRxHAndler (IPRX). |
[in] | siUAIF_LsnReq | UDP open port request from UdpAppInterface (UAIF). |
[out] | soUAIF_LsnRep | UDP open port reply to [UAIF]. |
[in] | siUAIF_ClsReq | UDP close port request from [UAIF]. |
[out] | soUAIF_ClsRep | UDP close port reply to [UAIF]. |
[out] | soUAIF_Data | UDP data stream to [UAIF]. |
[out] | soUAIF_Meta | UDP metadata to [UAIF]. |
[out] | soUAIF_DLen | UDP data length to [UAIF]. |
[out] | soICMP_Data | Control message to InternetControlMessageProtocol[ICMP] engine. |
The Rx path of the UdpOffloadEngine (UOE). This is the path from [IPRX] to the UdpAppInterface (UAIF). To avoid blocking the IPRX engine of the NTS, this process will start dropping the incoming traffic upon one of the two following conditions: 1) If the internal elastic data buffer defined by 'cUdpRxDataFifoSize' is full or, 2) If the maximum number of stored headers defined by 'cUdpRxHdrsFifoSize' is reached.
Definition at line 982 of file uoe.cpp.
void pRxPacketHandler | ( | stream< AxisUdp > & | siUcc_UdpDgrm, |
stream< ValBool > & | siUcc_CsumVal, | ||
stream< AxisIp4 > & | siIhs_Ip4Hdr, | ||
stream< UdpPort > & | soUpt_PortStateReq, | ||
stream< StsBool > & | siUpt_PortStateRep, | ||
stream< UdpAppData > & | soUAIF_Data, | ||
stream< UdpAppMeta > & | soUAIF_Meta, | ||
stream< UdpAppDLen > & | soUAIF_DLen, | ||
stream< AxisIcmp > & | soICMP_Data | ||
) |
Rx Packet Handler (Rph)
[in] | siIhs_UdpDgrm | UDP datagram stream from IpHeaderStripper (Ihs). |
[in] | siIhs_Ip4Hdr | The header part of the IPv4 packet from [Ihs]. |
[in] | siUcc_CsumVal | Checksum valid information from UdpChecksumChecker (Ucc). |
[out] | soUpt_PortStateReq | Request for the state of port to UdpPortTable (Upt). |
[in] | siUpt_PortStateRep | Port state reply from [Upt]. |
[out] | soUAIF_Data | UDP data stream to UDP Application Interface (UAIF). |
[out] | soUAIF_Meta | UDP metadata to [UAIF]. |
[out] | soUAIF_DLen | UDP data length to [UAIF] |
[out] | soICMP_Data | Control message to InternetControlMessageProtocol[ICMP] engine. |
This process handles the payload of the incoming IP4 packet and forwards it the UdpAppInterface (UAIF). If the UDP checksum of incoming datagram is wrong, the datagram is dropped. If the destination UDP port is not opened, the incoming IP header and the first 8 bytes of the datagram are forwarded to the Internet Control Message Protocol (ICMP) Server which will build a 'Destination Unreachable' message.
Definition at line 610 of file uoe.cpp.
void pTxApplicationInterface | ( | CmdBit | piMMIO_En, |
stream< UdpAppData > & | siUAIF_Data, | ||
stream< UdpAppMeta > & | siUAIF_Meta, | ||
stream< UdpAppDLen > & | siUAIF_DLen, | ||
stream< UdpAppData > & | soTdh_Data, | ||
stream< UdpAppMeta > & | soTdh_Meta, | ||
stream< UdpAppDLen > & | soTdh_DLen | ||
) |
Tx Application Interface (Tai)
[in] | piMMIO_En | Enable signal from [SHELL/MMIO]. |
[in] | siUAIF_Data | Data stream from UserAppInterface (UAIF). |
[in] | siUAIF_Meta | Metadata from [UAIF]. |
[in] | siUAIF_DLen | Data payload length from [UAIF]. |
[out] | soTdh_Data | Data stream to UdpHeaderAdder (Uha). |
[out] | soTdh_Meta | Metadata stream to [Uha]. |
[out] | soTdh_DLen | Data payload length to [Uha]. |
This process is the front-end interface to the Tx part of the Udp Application Interface (UAIF). The APP must provide the data as a stream of 'AxisRaw' chunks, and every stream must be accompanied by a metadata and payload length information. The metadata specifies the socket-pair that the stream belongs to, while the payload length specifies its length. Two modes of operations are supported by the UDP application interface: 1) DATAGRAM_MODE: If the 'DLen' field is loaded with a length != 0, this length is used as reference for handling the corresponding stream. If the length is larger than UDP_MDS bytes (.i.e, MTU_ZYC2-IP_HEADER_LEN-UDP_HEADER_LEN), this process will split the incoming datagram and generate as many sub-datagrams as required to transport all 'DLen' bytes over Ethernet frames. 2) STREAMING_MODE: If the 'DLen' field is configured with a length == 0, the corresponding stream will be forwarded based on the same metadata information until the 'TLAST' bit of the data stream is set. In this mode, the UOE will wait for the reception of UDP_MDS bytes before generating a new UDP-over-IPv4 packet, unless the 'TLAST' bit of the data stream is set.
Definition at line 1101 of file uoe.cpp.
void pTxDatagramHandler | ( | stream< UdpAppData > & | siUAIF_Data, |
stream< UdpAppMeta > & | siUAIF_Meta, | ||
stream< UdpAppDLen > & | siUAIF_DLen, | ||
stream< UdpAppData > & | soUha_Data, | ||
stream< UdpAppMeta > & | soUha_Meta, | ||
stream< UdpAppDLen > & | soUha_DLen, | ||
stream< AxisPsd4 > & | soUca_Data | ||
) |
Tx Datagram Handler (Tdh)
[in] | siUAIF_Data | Data stream from UserAppInterface (UAIF). |
[in] | siUAIF_Meta | Metadata stream from [UAIF]. |
[in] | siUAIF_DLen | Data payload length from [UAIF]. |
[out] | soUha_Data | Data stream to UdpHeaderAdder (Uha). |
[out] | soUha_Meta | Metadata stream to [Uha]. |
[out] | soUha_DLen | Data payload length to [Uha]. |
[out] | soUca_Data | UDP data stream to UdpChecksumAccumulator (Uca). |
This process handles the raw data coming from the UdpAppInterface (UAIF). Data are received as a stream from the application layer. They come with a metadata information that specifies the connection the data belong to, as well as a data-length information. Two main tasks are performed by this process: 1) a UDP pseudo-packet is generated and forwarded to the process UdpChecksumAccumulator (Uca) which will compute the UDP checksum. 2) the length of the incoming data stream is measured while the AppData is streamed forward to the process UdpHeaderAdder (Uha).
Definition at line 1254 of file uoe.cpp.
void pTxEngine | ( | CmdBit | piMMIO_En, |
stream< UdpAppData > & | siUAIF_Data, | ||
stream< UdpAppMeta > & | siUAIF_Meta, | ||
stream< UdpAppDLen > & | siUAIF_DLen, | ||
stream< AxisIp4 > & | soIPTX_Data | ||
) |
Tx Engine (TXe)
[in] | piMMIO_En | Enable signal from [SHELL/MMIO]. |
[in] | siUAIF_Data | Data stream from UserAppInterface (UAIF). |
[in] | siUAIF_Meta | Metadata stream from [UAIF]. |
[in] | siUAIF_DLen | Data length from [UAIF]. |
[out] | soIPTX_Data | Data stream to IpTxHandler (IPTX). |
The Tx path of the UdpOffloadEngine (UOE). This is the path from the UdpAppInterface (UAIF).
Definition at line 1718 of file uoe.cpp.
void pUdpChecksumChecker | ( | stream< AxisUdp > & | siIhs_UdpDgrm, |
stream< UdpCsum > & | siIhs_PsdHdrSum, | ||
stream< AxisUdp > & | soRph_UdpDgrm, | ||
stream< ValBool > & | soRph_CsumVal, | ||
stream< SigBit > & | soIhs_ClearToSend | ||
) |
UDP Checksum Checker (Ucc)
[in] | siUcc_UdpDgrm | UDP datagram stream from IpHeaderStripper (Ihs). |
[in] | siUcc_PsdHdrSum | Pseudo header sum (SA+DA+Prot+Len) from [Ihs]. |
[out] | soRph_UdpDgrm | UDP datagram stream to RxPacketHandler (Rph). |
[out] | soRph_CsumVal | Checksum valid information to [Rph]. |
[out] | soIhs_ClearToSend | Clear to send signal to [Ihs]. |
This process accumulates the checksum over the UDP header and the UDP data. The computed checksum is compared with the embedded checksum when 'TLAST' is reached, and the result is forwarded to the RxPacketHandler (Rph). This process controls the total amount of data stored in the elastic buffer of the UOE. When issued, a 'soIhs_ClearToSend' signal indicates that the UOE is able to accept another datagram of up to MTU bytes.
Definition at line 430 of file uoe.cpp.
void pUdpHeaderAdder | ( | stream< UdpAppData > & | siTdh_Data, |
stream< UdpAppDLen > & | siTdh_DLen, | ||
stream< UdpAppMeta > & | siTdh_Meta, | ||
stream< UdpCsum > & | siUca_Csum, | ||
stream< AxisUdp > & | soIha_Data, | ||
stream< IpAddrPair > & | soIha_IpPair, | ||
stream< UdpLen > & | soIha_UdpLen | ||
) |
UDP Header Adder (Uha)
[in] | siTdh_Data | AppData stream from TxDatagramHandler (Tdh). |
[in] | siTdh_DLen | Data payload length from [Tdh]. |
[in] | siTdh_Meta | Metadata from [tdH]. |
[in] | siUca_Csum | The UDP checksum from UdpChecksumAccumaulato (Uca). |
[out] | soIha_Data | UdpData strem to IpHeaderAdder (Iha). |
[out] | soIha_IpPair | The IP_SA and IP_DA for this datagram. |
[out] | soIha_UdpLen | The length of the UDP datagram to [Iha]. |
This process creates a UDP header and prepends it to the AppData stream coming from the TxDatagramHandler (Tdh). The UDP checksum is read from the process UdpChecksumAccumulator(Uca).
Definition at line 1516 of file uoe.cpp.
void pUdpPortTable | ( | stream< StsBool > & | soMMIO_Ready, |
stream< UdpPort > & | siRph_PortStateReq, | ||
stream< StsBool > & | soRph_PortStateRep, | ||
stream< UdpPort > & | siUAIF_LsnReq, | ||
stream< StsBool > & | soUAIF_LsnRep, | ||
stream< UdpPort > & | siUAIF_ClsReq, | ||
stream< StsBool > & | soUAIF_ClsRep | ||
) |
UDP Port Table (Upt)
param[out] soMMIO_Ready Process ready signal. param[in] siRph_PortStateReq Port state request from RxPacketHandler (Rph). param[out] soRph_PortStateRep Port state reply to [Rph]. param[in] siUAIF_LsnReq Listen port request from [UAIF]. param[out] soUAIF_LsnRep Listen port reply to UAIF. param[in] siUAIF_ClsReq Close port request from [UAIF]. param[out] soUAIF_ClsRep Close port reply to UAIF.
The UDP Port Table (Upt) keeps track of the opened ports. A port is opened if its state is 'true' and closed otherwise.
Definition at line 865 of file uoe.cpp.
void uoe | ( | CmdBit | piMMIO_En, |
stream< ap_uint< 16 > > & | soMMIO_DropCnt, | ||
stream< StsBool > & | soMMIO_Ready, | ||
stream< AxisIp4 > & | siIPRX_Data, | ||
stream< AxisIp4 > & | soIPTX_Data, | ||
stream< UdpAppLsnReq > & | siUAIF_LsnReq, | ||
stream< UdpAppLsnRep > & | soUAIF_LsnRep, | ||
stream< UdpAppClsReq > & | siUAIF_ClsReq, | ||
stream< UdpAppClsRep > & | soUAIF_ClsRep, | ||
stream< UdpAppData > & | soUAIF_Data, | ||
stream< UdpAppMeta > & | soUAIF_Meta, | ||
stream< UdpAppDLen > & | soUAIF_DLen, | ||
stream< UdpAppData > & | siUAIF_Data, | ||
stream< UdpAppMeta > & | siUAIF_Meta, | ||
stream< UdpAppDLen > & | siUAIF_DLen, | ||
stream< AxisIcmp > & | soICMP_Data | ||
) |
Main process of the UDP Offload Engine (UOE).
– MMIO Interface
[in] | piMMIO_En | Enable signal from [SHELL/MMIO]. |
[out] | soMMIO_DropCnt | Rx drop counter to [SHELL/MMIO]. |
[out] | soMMIO_Ready | UOE ready stream to [SHELL/MMIO]. – IPRX / IP Rx / Data Interface |
[in] | siIPRX_Data | IP4 data stream from IpRxHAndler (IPRX). – IPTX / IP Tx / Data Interface |
[out] | soIPTX_Data | IP4 data stream to IpTxHandler (IPTX). – UAIF / Control Port Interfaces |
[in] | siUAIF_LsnReq | UDP open port request from UdpAppInterface (UAIF). |
[out] | soUAIF_LsnRep | UDP open port reply to UAIF. |
[in] | siUAIF_ClsReq | UDP close port request from [UAIF]. |
[out] | soUAIF_ClsRep | UDP close port reply to UAIF. – UAIF / Rx Data Interfaces |
[out] | soUAIF_Data | UDP data stream to [UAIF]. |
[out] | soUAIF_Meta | UDP metadata to [UAIF]. |
[out] | soUAIF_DLen | UDP data length to [UAIF]. – UAIF / Tx Data Interfaces |
[in] | siUAIF_Data | UDP data stream from [UAIF]. |
[in] | siUAIF_Meta | UDP metadata stream from [UAIF]. |
[in] | siUAIF_DLen | UDP data length form [UAIF]. – ICMP / Message Data Interface |
[out] | soICMP_Data | Data stream to [ICMP]. |
Definition at line 1838 of file uoe.cpp.
void uoe_top | ( | CmdBit | piMMIO_En, |
stream< ap_uint< 16 > > & | soMMIO_DropCnt, | ||
stream< StsBool > & | soMMIO_Ready, | ||
stream< AxisRaw > & | siIPRX_Data, | ||
stream< AxisRaw > & | soIPTX_Data, | ||
stream< UdpAppLsnReq > & | siUAIF_LsnReq, | ||
stream< UdpAppLsnRep > & | soUAIF_LsnRep, | ||
stream< UdpAppClsReq > & | siUAIF_ClsReq, | ||
stream< UdpAppClsRep > & | soUAIF_ClsRep, | ||
stream< UdpAppData > & | soUAIF_Data, | ||
stream< UdpAppMeta > & | soUAIF_Meta, | ||
stream< UdpAppDLen > & | soUAIF_DLen, | ||
stream< UdpAppData > & | siUAIF_Data, | ||
stream< UdpAppMeta > & | siUAIF_Meta, | ||
stream< UdpAppDLen > & | siUAIF_DLen, | ||
stream< AxisRaw > & | soICMP_Data | ||
) |
Top of UDP Offload Engine (UOE)
– MMIO Interface
[in] | piMMIO_En | Enable signal from [SHELL/MMIO]. |
[out] | soMMIO_DropCnt | Rx drop counter to [SHELL/MMIO]. |
[out] | soMMIO_Ready | UOE ready stream to [SHELL/MMIO]. – IPRX / IP Rx / Data Interface |
[in] | siIPRX_Data | IP4 data stream from IpRxHAndler (IPRX). – IPTX / IP Tx / Data Interface |
[out] | soIPTX_Data | IP4 data stream to IpTxHandler (IPTX). – UAIF / Control Port Interfaces |
[in] | siUAIF_LsnReq | UDP open port request from UdpAppInterface (UAIF). |
[out] | soUAIF_LsnRep | UDP open port reply to UAIF. |
[in] | siUAIF_ClsReq | UDP close port request from [UAIF]. |
[out] | soUAIF_ClsRep | UDP close port reply to UAIF. – UAIF / Rx Data Interfaces |
[out] | soUAIF_Data | UDP data stream to [UAIF]. |
[out] | soUAIF_Meta | UDP metadata stream to [UAIF]. – UAIF / Tx Data Interfaces |
[in] | siUAIF_Data | UDP data stream from [UAIF]. |
[in] | siUAIF_Meta | UDP metadata stream from [UAIF]. |
[in] | siUAIF_DLen | UDP data length form [UAIF]. – ICMP / Message Data Interface |
[out] | soICMP_Data | Data stream to [ICMP]. |
ENTITY - UDP OFFLOAD ENGINE (UOE)
Definition at line 2042 of file uoe.cpp.
const int cIp4RxHdrsFifoSize = (cUdpRxHdrsFifoSize * 4) |
|
extern |
HELPERS FOR THE DEBUGGING TRACES .e.g: DEBUG_LEVEL = (TRACE_MPd | TRACE_IBUF)
HELPERS FOR THE DEBUGGING TRACES .e.g: DEBUG_LEVEL = (MDL_TRACE | IPS_TRACE)
Definition at line 151 of file tb_nal.cpp.