cloudFPGA (cF) API  1.0
The documentation of the source code of cloudFPGA (cF)
nal.hpp
Go to the documentation of this file.
1 
17 
34 #ifndef _NAL_H_
35 #define _NAL_H_
36 
37 #include <stdio.h>
38 #include <iostream>
39 #include <fstream>
40 #include <string>
41 #include <math.h>
42 #include <hls_stream.h>
43 #include "ap_int.h"
44 #include <stdint.h>
45 
46 
47 // CTRL LINK DEFINITONS
48 // =====================
49 
50 //#define NAL_AXI_CTRL_REGISTER 0
51 
53 //#define XNAL_PIFMC_NAL_CTRLLINK_AXI_ADDR_CTRLLINK_V_BASE 0x2000
54 //#define XNAL_PIFMC_NAL_CTRLLINK_AXI_ADDR_CTRLLINK_V_HIGH 0x3fff
55 //#define NAL_CTRL_LINK_SIZE (XNAL_PIFMC_NAL_CTRLLINK_AXI_ADDR_CTRLLINK_V_HIGH/4)
56 //#define NAL_CTRL_LINK_CONFIG_START_ADDR (0x2000/4)
57 //#define NAL_CTRL_LINK_CONFIG_END_ADDR (0x203F/4)
58 //#define NAL_CTRL_LINK_STATUS_START_ADDR (0x2040/4)
59 //#define NAL_CTRL_LINK_STATUS_END_ADDR (0x207F/4)
60 //#define NAL_CTRL_LINK_MRT_START_ADDR (0x2080/4)
61 //#define NAL_CTRL_LINK_MRT_END_ADDR (0x307F/4)
62 
63 
65 //#define XNAL_PIFMC_NAL_CTRLLINK_AXI_ADDR_CTRLLINK_V_BASE 0x400
66 //#define XNAL_PIFMC_NAL_CTRLLINK_AXI_ADDR_CTRLLINK_V_HIGH 0x7ff
67 //#define XNAL_PIFMC_NAL_CTRLLINK_AXI_WIDTH_CTRLLINK_V 32
68 //#define XNAL_PIFMC_NAL_CTRLLINK_AXI_DEPTH_CTRLLINK_V 160
69 //#define NAL_CTRL_LINK_SIZE (XNAL_PIFMC_NAL_CTRLLINK_AXI_ADDR_CTRLLINK_V_HIGH/4)
70 //#define NAL_CTRL_LINK_CONFIG_START_ADDR (0x400/4)
71 //#define NAL_CTRL_LINK_CONFIG_END_ADDR (0x43F/4)
72 //#define NAL_CTRL_LINK_STATUS_START_ADDR (0x440/4)
73 //#define NAL_CTRL_LINK_STATUS_END_ADDR (0x47F/4)
74 //#define NAL_CTRL_LINK_MRT_START_ADDR (0x480/4)
75 //#define NAL_CTRL_LINK_MRT_END_ADDR (0x67F/4)
76 
77 // MRT size 64
78 #define XNAL_PIFMC_NAL_CTRLLINK_AXI_ADDR_CTRLLINK_V_BASE 0x200
79 #define XNAL_PIFMC_NAL_CTRLLINK_AXI_ADDR_CTRLLINK_V_HIGH 0x3ff
80 #define XNAL_PIFMC_NAL_CTRLLINK_AXI_WIDTH_CTRLLINK_V 32
81 #define XNAL_PIFMC_NAL_CTRLLINK_AXI_DEPTH_CTRLLINK_V 96
82 #define NAL_CTRL_LINK_SIZE (XNAL_PIFMC_NAL_CTRLLINK_AXI_ADDR_CTRLLINK_V_HIGH/4)
83 #define NAL_CTRL_LINK_CONFIG_START_ADDR (0x200/4)
84 #define NAL_CTRL_LINK_CONFIG_END_ADDR (0x23F/4)
85 #define NAL_CTRL_LINK_STATUS_START_ADDR (0x240/4)
86 #define NAL_CTRL_LINK_STATUS_END_ADDR (0x27F/4)
87 #define NAL_CTRL_LINK_MRT_START_ADDR (0x280/4)
88 #define NAL_CTRL_LINK_MRT_END_ADDR (0x37F/4)
89 
90 // (CtrlLink definitions end)
91 
92 //#define MAX_MRT_SIZE 1024
93 //#define MAX_MRT_SIZE 128
94 #define MAX_MRT_SIZE 64
95 
96 
97 #include "../../FMC/src/fmc.hpp"
98 
99 #include "../../../../../hls/network.hpp"
100 #include "../../network_utils.hpp"
101 //#include "../../memory_utils.hpp"
102 #include "../../simulation_utils.hpp"
103 
104 
105 
109 #ifndef __SYNTHESIS__
110 extern bool gTraceEvent;
111 #endif
112 
113 #define THIS_NAME "NAL"
114 
115 #define TRACE_OFF 0x0000
116 #define TRACE_RDP 1 << 1
117 #define TRACE_WRP 1 << 2
118 #define TRACE_SAM 1 << 3
119 #define TRACE_LSN 1 << 4
120 #define TRACE_CON 1 << 5
121 #define TRACE_ALL 0xFFFF
122 
123 #define DEBUG_LEVEL (TRACE_ALL)
124 
125 enum DropCmd {KEEP_CMD=false, DROP_CMD};
126 
127 
128 
134 //#define USE_DEPRECATED_DIRECTIVES
135 
136 using namespace hls;
137 
138 #define DEFAULT_TX_PORT 2718
139 #define DEFAULT_RX_PORT 2718
140 
142  FSM_WRITE_META, FSM_DROP_PACKET};
143 
145 
147 
149 
151 
153  RDP_WRITE_META_ROLE, RDP_WRITE_META_FMC, RDP_DROP_PACKET};
154 
156  WRP_STREAM_ROLE, WRP_DROP_PACKET};
157 
159 
161 
163 
165 
167 
169  //A4L_BROADCAST_CONFIG_1, A4L_BROADCAST_CONFIG_2,
171 
173 
174 
178 
179 enum PortType {FMC = 0, UDP, TCP};
180 
183  AUTH_ACCESS, FMC_TCP_BYTES};
184 
185 
186 #define MAX_NAL_SESSIONS (TOE_MAX_SESSIONS)
187 #define NAL_STREAMING_SPLIT_TCP (ZYC2_MSS)
188 //#define NAL_STREAMING_SPLIT_TCP (ZYC2_MSS - 8)
189 
190 #define NAL_MAX_FIFO_DEPTHS_BYTES 2000 //does apply for ROLE and FMC FIFOs
191 #define NUMBER_CONFIG_WORDS 16
192 #define NUMBER_STATUS_WORDS 16
193 #define NAL_NUMBER_CONFIG_WORDS NUMBER_CONFIG_WORDS
194 #define NAL_NUMBER_STATUS_WORDS NUMBER_STATUS_WORDS
195 //#define NAL_READ_TIMEOUT 160000000 //is a little more than one second with 156Mhz
196 #define NAL_CONNECTION_TIMEOUT 160000000 //is a little more than one second with 156Mhz
197 #define NAL_TCP_RX_DATA_DELAY_CYCLES 80 //based on chipscope
198 
199 #define NAL_MMIO_STABILIZE_TIME 150 //based on chipscope...
200 
201 #define UNUSED_TABLE_ENTRY_VALUE 0x111000
202 #define UNUSED_SESSION_ENTRY_VALUE 0xFFFE
203 #define INVALID_MRT_VALUE 0xFFFFF
204 
205 /*
206  * ctrlLINK Structure:
207  * 1. 0 -- NUMBER_CONFIG_WORDS -1 : possible configuration from FMC to NAL
208  * 2. NUMBER_CONFIG_WORDS -- NUMBER_STATUS_WORDS -1 : possible status from NAL to FMC
209  * 3. NUMBER_STATUS_WORDS
210  * + NUMBER_STATUS_WORDS -- MAX_MRT_SIZE +
211  * NUMBER_CONFIG_WORDS +
212  * NUMBER_STATUS_WORDS : Message Routing Table (MRT)
213  *
214  */
215 #define NAL_CONFIG_OWN_RANK 0
216 #define NAL_CONFIG_MRT_VERSION 1
217 #define NAL_CONFIG_SAVED_UDP_PORTS 2
218 #define NAL_CONFIG_SAVED_TCP_PORTS 3
219 #define NAL_CONFIG_SAVED_FMC_PORTS 4
220 
221 #define NAL_STATUS_MRT_VERSION 0
222 #define NAL_STATUS_OPEN_UDP_PORTS 1
223 #define NAL_STATUS_OPEN_TCP_PORTS 2
224 #define NAL_STATUS_FMC_PORT_PROCESSED 3
225 #define NAL_STATUS_OWN_RANK 13
226 
227 //#define NAL_STATUS_WRITE_ERROR_CNT 4
228 //#define NAL_STATUS_UNUSED_1 4
229 #define NAL_UNAUTHORIZED_ACCESS 4
230 //#define NAL_STATUS_READ_ERROR_CNT 5
231 #define NAL_AUTHORIZED_ACCESS 5
232 //#define NAL_STATUS_UNUSED_2 5
233 #define NAL_STATUS_SEND_STATE 6
234 #define NAL_STATUS_RECEIVE_STATE 7
235 #define NAL_STATUS_GLOBAL_STATE 8
236 #define NAL_STATUS_LAST_RX_NODE_ID 9
237 #define NAL_STATUS_RX_NODEID_ERROR 10
238 #define NAL_STATUS_LAST_TX_NODE_ID 11
239 #define NAL_STATUS_TX_NODEID_ERROR 12
240 //#define NAL_STATUS_TX_PORT_CORRECTIONS 13
241 #define NAL_STATUS_PACKET_CNT_RX 14
242 #define NAL_STATUS_PACKET_CNT_TX 15
243 
244 
245 
246 typedef bool StsBool; // Status : Noun or verb indicating a status (.e.g isOpen). Does not have to go back to source of stimulus.
247 typedef ap_uint<16> UdpSrcPort; // UDP Source Port
248 typedef ap_uint<16> UdpDstPort; // UDP Destination Port
249 typedef ap_uint<16> UdpPort; // UDP source or destination Port
250 typedef ap_uint<16> UdpLen; // UDP header and data Length
251 //DELME typedef SocketPair UdpAppMeta;
252 //typedef Axis<64> UdpAppData;
253 //typedef NetworkWord UdpAppData;
254 //typedef UdpMeta UdpAppMeta;
256 
257 //DELME typedef UdpAppMeta UdpMeta;
259 
260 typedef ap_uint<16> PacketLen;
261 
262 
263 
266  ap_uint<32> update_value;
267  //in case of LAST_* types, the update_value is the new value
268  //on other cases, it is an increment value
270  NalEventNotif(NalCntIncType nt, ap_uint<32> uv): type(nt), update_value(uv) {}
271 };
272 
273 typedef ap_uint<64> NalTriple;
274 
279  NalNewTableEntry(NalTriple nt, SessionId sid): new_triple(nt), sessId(sid) {}
280 };
281 
285  bool failure;
287  NalNewTcpConRep(NalTriple nt, SessionId ns, bool fail): new_triple(nt), newSessionId(ns), failure(fail) {}
288 };
289 
291  ap_uint<16> config_addr;
292  ap_uint<32> update_value;
294  NalConfigUpdate(ap_uint<16> ca, ap_uint<32> uv): config_addr(ca), update_value(uv) {}
295 };
296 
297 struct NalMrtUpdate {
301  NalMrtUpdate(NodeId node, Ip4Addr addr): nid(node), ip4a(addr) {}
302 };
303 
305  ap_uint<16> status_addr;
306  ap_uint<32> new_value;
308  NalStatusUpdate(ap_uint<16> sa, ap_uint<32> nv): status_addr(sa), new_value(nv) {}
309 };
310 
313  ap_uint<32> new_value;
315  NalPortUpdate(PortType pt, ap_uint<32> nv): port_type(pt), new_value(nv) {}
316 };
317 
320  bool fmc_con;
322  NalWaitingData(SessionId si, bool is_fmc): sessId(si), fmc_con(is_fmc) {}
323 };
324 
325 
326 //INLINE METHODS
327 ap_uint<32> getRightmostBitPos(ap_uint<32> num);
328 NalTriple newTriple(Ip4Addr ipRemoteAddres, TcpPort tcpRemotePort, TcpPort tcpLocalPort);
332 uint8_t extractByteCnt(AxisRaw currWord);
333 uint8_t extractByteCnt(NetworkWord currWord);
334 
335 
336 #include "uss.hpp"
337 #include "tss.hpp"
338 #include "hss.hpp"
339 #include "cam8.hpp"
340 //#include "cam16.hpp"
341 
342 void nal_main(
343  // ----- link to FMC -----
345  //state of the FPGA
346  ap_uint<1> *layer_4_enabled,
347  ap_uint<1> *layer_7_enabled,
348  ap_uint<1> *role_decoupled,
349  // ready signal from NTS
350  ap_uint<1> *piNTS_ready,
351  // ----- link to MMIO ----
352  ap_uint<16> *piMMIO_FmcLsnPort,
353  ap_uint<32> *piMMIO_CfrmIp4Addr,
354  // -- my IP address
355  ap_uint<32> *myIpAddress,
356 
357  //-- ROLE UDP connection
358  ap_uint<32> *pi_udp_rx_ports,
359  stream<NetworkWord> &siUdp_data,
360  stream<NetworkWord> &soUdp_data,
361  stream<NetworkMetaStream> &siUdp_meta,
362  stream<NetworkMetaStream> &soUdp_meta,
363 
364  // -- ROLE TCP connection
365  ap_uint<32> *pi_tcp_rx_ports,
366  stream<NetworkWord> &siTcp_data,
367  stream<NetworkMetaStream> &siTcp_meta,
368  stream<NetworkWord> &soTcp_data,
369  stream<NetworkMetaStream> &soTcp_meta,
370 
371  // -- FMC TCP connection
372  stream<NetworkWord> &siFMC_data,
373  stream<TcpSessId> &siFMC_SessId,
374  stream<NetworkWord> &soFMC_data,
375  stream<TcpSessId> &soFMC_SessId,
376 
377  //-- UOE / Control Port Interfaces
378  stream<UdpPort> &soUOE_LsnReq,
379  stream<StsBool> &siUOE_LsnRep,
380  stream<UdpPort> &soUOE_ClsReq,
381  stream<StsBool> &siUOE_ClsRep,
382 
383  //-- UOE / Rx Data Interfaces
384  stream<UdpAppData> &siUOE_Data,
385  stream<UdpAppMeta> &siUOE_Meta,
386  stream<UdpAppDLen> &siUOE_DLen,
387 
388  //-- UOE / Tx Data Interfaces
389  stream<UdpAppData> &soUOE_Data,
390  stream<UdpAppMeta> &soUOE_Meta,
391  stream<UdpAppDLen> &soUOE_DLen,
392 
393  //-- TOE / Rx Data Interfaces
394  stream<TcpAppNotif> &siTOE_Notif,
395  stream<TcpAppRdReq> &soTOE_DReq,
396  stream<TcpAppData> &siTOE_Data,
397  stream<TcpAppMeta> &siTOE_SessId,
398  //-- TOE / Listen Interfaces
399  stream<TcpAppLsnReq> &soTOE_LsnReq,
400  stream<TcpAppLsnRep> &siTOE_LsnRep,
401  //-- TOE / Tx Data Interfaces
402  stream<TcpAppData> &soTOE_Data,
403  stream<TcpAppSndReq> &soTOE_SndReq,
404  stream<TcpAppSndRep> &siTOE_SndRep,
405  //-- TOE / Open Interfaces
406  stream<TcpAppOpnReq> &soTOE_OpnReq,
407  stream<TcpAppOpnRep> &siTOE_OpnRep,
408  //-- TOE / Close Interfaces
409  stream<TcpAppClsReq> &soTOE_ClsReq
410  );
411 
412 #endif
413 
414 
: A Content Address Memory (CAM) for 16 entries.
ap_uint< 1 > layer_7_enabled
Definition: tb_fmc.cpp:68
ap_uint< 1 > layer_4_enabled
Definition: tb_fmc.cpp:66
NalTriple newTriple(Ip4Addr ipRemoteAddres, TcpPort tcpRemotePort, TcpPort tcpLocalPort)
Definition: nal.cpp:62
#define NUMBER_CONFIG_WORDS
Definition: nal.hpp:191
RrhEnqFsmStates
Definition: nal.hpp:150
UdpLen UdpAppDLen
Definition: nal.hpp:255
ConfigBcastStates
Definition: nal.hpp:172
OpnFsmStates
Definition: nal.hpp:144
LsnFsmStates
Definition: nal.hpp:146
DeqFsmStates
Definition: nal.hpp:164
AxiLiteFsmStates
Definition: nal.hpp:168
#define NUMBER_STATUS_WORDS
Definition: nal.hpp:192
RrhFsmStates
Definition: nal.hpp:148
RdpFsmStates
Definition: nal.hpp:152
ap_uint< 16 > UdpDstPort
Definition: nal.hpp:248
stream< NetworkMetaStream > soUdp_meta("soUdp_meta")
WbuFsmStates
Definition: nal.hpp:158
bool StsBool
Definition: nal.hpp:246
ap_uint< 16 > PacketLen
Definition: nal.hpp:260
ClsFsmStates
Definition: nal.hpp:162
PortType
Definition: nal.hpp:179
#define MAX_MRT_SIZE
Definition: nal.hpp:94
uint8_t extractByteCnt(AxisRaw currWord)
Definition: nal.cpp:94
ap_uint< 64 > NalTriple
Definition: nal.hpp:273
ap_uint< 16 > UdpLen
Definition: nal.hpp:250
TcpPort getLocalPortFromTriple(NalTriple triple)
Definition: nal.cpp:86
FsmStateUdp
Definition: nal.hpp:141
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: nal.cpp:464
bool gTraceEvent
Definition: tb_nal.cpp:151
CacheInvalFsmStates
Definition: nal.hpp:160
PortFsmStates
Definition: nal.hpp:175
Ip4Addr getRemoteIpAddrFromTriple(NalTriple triple)
Definition: nal.cpp:70
ap_uint< 32 > getRightmostBitPos(ap_uint< 32 > num)
Definition: nal.cpp:43
ap_uint< 16 > UdpSrcPort
Definition: nal.hpp:247
TcpPort getRemotePortFromTriple(NalTriple triple)
Definition: nal.cpp:78
ap_uint< 1 > role_decoupled
Definition: tb_nal.cpp:134
UdpAppDLen UdpPLen
Definition: nal.hpp:258
TableFsmStates
Definition: nal.hpp:166
stream< NetworkMetaStream > siUdp_meta("siUdp_meta")
NalCntIncType
Definition: nal.hpp:181
DropCmd
Definition: nal.hpp:125
ap_uint< 32 > myIpAddress
Definition: tb_nal.cpp:140
ap_uint< 16 > UdpPort
Definition: nal.hpp:249
ap_uint< 32 > ctrlLink[64+16+16]
Definition: tb_nal.cpp:137
WrpFsmStates
Definition: nal.hpp:155
@ RRH_ENQ_STREAM
Definition: nal.hpp:150
@ RRH_ENQ_RESET
Definition: nal.hpp:150
@ CB_3_1
Definition: nal.hpp:172
@ CB_START
Definition: nal.hpp:172
@ CB_3_0
Definition: nal.hpp:172
@ CB_3_2
Definition: nal.hpp:172
@ CB_1
Definition: nal.hpp:172
@ CB_WAIT
Definition: nal.hpp:172
@ CB_2
Definition: nal.hpp:172
@ OPN_DONE
Definition: nal.hpp:144
@ OPN_REP
Definition: nal.hpp:144
@ OPN_REQ
Definition: nal.hpp:144
@ OPN_IDLE
Definition: nal.hpp:144
@ LSN_IDLE
Definition: nal.hpp:146
@ LSN_SEND_REQ
Definition: nal.hpp:146
@ LSN_WAIT_ACK
Definition: nal.hpp:146
@ LSN_DONE
Definition: nal.hpp:146
@ DEQ_WAIT_META
Definition: nal.hpp:164
@ DEQ_STREAM_DATA
Definition: nal.hpp:164
@ DEQ_SEND_NOTIF
Definition: nal.hpp:164
@ A4L_COPY_MRT
Definition: nal.hpp:170
@ A4L_COPY_STATUS
Definition: nal.hpp:170
@ A4L_WAIT_FOR_SUB_FSMS
Definition: nal.hpp:170
@ A4L_STATUS_UPDATE
Definition: nal.hpp:168
@ A4L_COPY_CONFIG_2
Definition: nal.hpp:168
@ A4L_RESET
Definition: nal.hpp:168
@ A4L_COPY_CONFIG
Definition: nal.hpp:168
@ A4L_COPY_FINISH
Definition: nal.hpp:170
@ RRH_DRAIN
Definition: nal.hpp:148
@ RRH_WAIT_FMC
Definition: nal.hpp:148
@ RRH_WAIT_NOTIF
Definition: nal.hpp:148
@ RRH_START_REQUEST
Definition: nal.hpp:148
@ RRH_PROCESS_NOTIF
Definition: nal.hpp:148
@ RRH_WAIT_ROLE
Definition: nal.hpp:148
@ RRH_RESET
Definition: nal.hpp:148
@ RRH_PROCESS_REQUEST
Definition: nal.hpp:148
@ RDP_STREAM_FMC
Definition: nal.hpp:152
@ RDP_RESET
Definition: nal.hpp:152
@ RDP_WRITE_META_FMC
Definition: nal.hpp:153
@ RDP_STREAM_ROLE
Definition: nal.hpp:152
@ RDP_W8FORREQS_1
Definition: nal.hpp:152
@ RDP_DROP_PACKET
Definition: nal.hpp:153
@ RDP_WAIT_META
Definition: nal.hpp:152
@ RDP_W8FORREQS_2
Definition: nal.hpp:152
@ RDP_FILTER_META
Definition: nal.hpp:152
@ WBU_SND_REQ
Definition: nal.hpp:158
@ WBU_DRAIN
Definition: nal.hpp:158
@ WBU_DROP
Definition: nal.hpp:158
@ WBU_WAIT_META
Definition: nal.hpp:158
@ WBU_STREAM
Definition: nal.hpp:158
@ WBU_WAIT_REP
Definition: nal.hpp:158
@ CLS_WAIT4RESP
Definition: nal.hpp:162
@ CLS_IDLE
Definition: nal.hpp:162
@ CLS_NEXT
Definition: nal.hpp:162
@ TCP
Definition: nal.hpp:179
@ UDP
Definition: nal.hpp:179
@ FMC
Definition: nal.hpp:179
@ FSM_RESET
Definition: nal.hpp:141
@ FSM_W8FORREQS
Definition: nal.hpp:141
@ FSM_W8FORMETA
Definition: nal.hpp:141
@ FSM_FIRST_ACC
Definition: nal.hpp:141
@ FSM_DROP_PACKET
Definition: nal.hpp:142
@ FSM_ACC
Definition: nal.hpp:141
@ CACHE_INV_SEND_1
Definition: nal.hpp:160
@ CACHE_INV_SEND_3
Definition: nal.hpp:160
@ CACHE_VALID
Definition: nal.hpp:160
@ CACHE_INV_SEND_2
Definition: nal.hpp:160
@ CACHE_INV_SEND_0
Definition: nal.hpp:160
@ CACHE_WAIT_FOR_VALID
Definition: nal.hpp:160
@ PORT_NEW_UDP_REP
Definition: nal.hpp:175
@ PORT_START_UDP_CLS
Definition: nal.hpp:177
@ PORT_L7_RESET
Definition: nal.hpp:176
@ PORT_START_TCP_CLS_1
Definition: nal.hpp:177
@ PORT_START_TCP_CLS_2
Definition: nal.hpp:177
@ PORT_NEW_FMC_REP
Definition: nal.hpp:176
@ PORT_NEW_TCP_REP
Definition: nal.hpp:176
@ PORT_NEW_UDP_REQ
Definition: nal.hpp:175
@ PORT_SEND_UPDATE
Definition: nal.hpp:177
@ PORT_RESET
Definition: nal.hpp:175
@ PORT_START_TCP_CLS_0
Definition: nal.hpp:177
@ PORT_L4_RESET
Definition: nal.hpp:175
@ PORT_IDLE
Definition: nal.hpp:175
@ PORT_NEW_TCP_REQ
Definition: nal.hpp:176
@ TAB_FSM_READ
Definition: nal.hpp:166
@ TAB_FSM_WRITE
Definition: nal.hpp:166
@ LAST_TX_PORT
Definition: nal.hpp:182
@ NID_MISS_RX
Definition: nal.hpp:181
@ PCOR_TX
Definition: nal.hpp:181
@ PACKET_TX
Definition: nal.hpp:182
@ FMC_TCP_BYTES
Definition: nal.hpp:183
@ LAST_TX_NID
Definition: nal.hpp:182
@ PACKET_RX
Definition: nal.hpp:182
@ TCP_CON_FAIL
Definition: nal.hpp:181
@ NID_MISS_TX
Definition: nal.hpp:181
@ UNAUTH_ACCESS
Definition: nal.hpp:182
@ LAST_RX_PORT
Definition: nal.hpp:181
@ WRP_WAIT_CONNECTION
Definition: nal.hpp:155
@ WRP_WAIT_META
Definition: nal.hpp:155
@ WRP_W8FORREQS_2
Definition: nal.hpp:155
@ WRP_RESET
Definition: nal.hpp:155
@ WRP_W8FORREQS_11
Definition: nal.hpp:155
@ WRP_STREAM_FMC
Definition: nal.hpp:155
@ WRP_DROP_PACKET
Definition: nal.hpp:156
@ WRP_W8FORREQS_1
Definition: nal.hpp:155
@ WRP_W8FORREQS_22
Definition: nal.hpp:155
ap_uint< 16 > SessionId
Definition: nts_types.hpp:136
ap_uint< 32 > Ip4Addr
Definition: AxisIp4.hpp:169
ap_uint< 16 > TcpPort
Definition: AxisTcp.hpp:105
@ KEEP_CMD
Definition: nal.hpp:125
@ DROP_CMD
Definition: nal.hpp:125
: The Housekeeping Sub System (HSS) of the NAL core.
ap_uint< 8 > NodeId
Definition: network.hpp:82
ap_uint< 16 > config_addr
Definition: nal.hpp:291
ap_uint< 32 > update_value
Definition: nal.hpp:292
NalConfigUpdate()
Definition: nal.hpp:293
NalConfigUpdate(ap_uint< 16 > ca, ap_uint< 32 > uv)
Definition: nal.hpp:294
NalEventNotif(NalCntIncType nt, ap_uint< 32 > uv)
Definition: nal.hpp:270
ap_uint< 32 > update_value
Definition: nal.hpp:266
NalCntIncType type
Definition: nal.hpp:265
NalEventNotif()
Definition: nal.hpp:269
Ip4Addr ip4a
Definition: nal.hpp:299
NalMrtUpdate(NodeId node, Ip4Addr addr)
Definition: nal.hpp:301
NodeId nid
Definition: nal.hpp:298
NalMrtUpdate()
Definition: nal.hpp:300
NalNewTableEntry()
Definition: nal.hpp:278
NalNewTableEntry(NalTriple nt, SessionId sid)
Definition: nal.hpp:279
NalTriple new_triple
Definition: nal.hpp:276
SessionId sessId
Definition: nal.hpp:277
NalTriple new_triple
Definition: nal.hpp:283
SessionId newSessionId
Definition: nal.hpp:284
bool failure
Definition: nal.hpp:285
NalNewTcpConRep(NalTriple nt, SessionId ns, bool fail)
Definition: nal.hpp:287
NalNewTcpConRep()
Definition: nal.hpp:286
ap_uint< 32 > new_value
Definition: nal.hpp:313
NalPortUpdate()
Definition: nal.hpp:314
NalPortUpdate(PortType pt, ap_uint< 32 > nv)
Definition: nal.hpp:315
PortType port_type
Definition: nal.hpp:312
ap_uint< 16 > status_addr
Definition: nal.hpp:305
NalStatusUpdate()
Definition: nal.hpp:307
ap_uint< 32 > new_value
Definition: nal.hpp:306
NalStatusUpdate(ap_uint< 16 > sa, ap_uint< 32 > nv)
Definition: nal.hpp:308
NalWaitingData(SessionId si, bool is_fmc)
Definition: nal.hpp:322
NalWaitingData()
Definition: nal.hpp:321
bool fmc_con
Definition: nal.hpp:320
SessionId sessId
Definition: nal.hpp:319
: The TCP Sub System (TSS) of the NAL core.
: The UDP Sub System (USS) of the NAL core.