25 #ifndef FLEXTCP_PLIF_H_ 26 #define FLEXTCP_PLIF_H_ 30 #include <packet_defs.h> 38 #define FLEXNIC_HUGE_PREFIX "/dev/hugepages" 41 #define FLEXNIC_NAME_INFO "tas_info" 43 #define FLEXNIC_NAME_DMA_MEM "tas_memory" 45 #define FLEXNIC_NAME_INTERNAL_MEM "tas_internal" 48 #define FLEXNIC_INFO_BYTES 0x1000 51 #define FLEXNIC_FLAG_READY 1 53 #define FLEXNIC_FLAG_HUGEPAGES 2 73 } __attribute__((packed));
80 #define FLEXTCP_PL_KRX_INVALID 0x0 81 #define FLEXTCP_PL_KRX_PACKET 0x1 93 } __attribute__((packed)) msg;
94 volatile uint8_t type;
95 } __attribute__((packed));
103 #define FLEXTCP_PL_KTX_INVALID 0x0 104 #define FLEXTCP_PL_KTX_PACKET 0x1 105 #define FLEXTCP_PL_KTX_CONNRETRAN 0x2 106 #define FLEXTCP_PL_KTX_PACKET_NOTS 0x3 119 } __attribute__((packed)) msg;
120 volatile uint8_t type;
121 } __attribute__((packed));
129 #define FLEXTCP_PL_ARX_INVALID 0x0 130 #define FLEXTCP_PL_ARX_CONNUPDATE 0x1 132 #define FLEXTCP_PL_ARX_FLRXDONE 0x1 141 } __attribute__((packed));
148 } __attribute__((packed)) msg;
149 volatile uint8_t type;
150 } __attribute__((packed));
157 #define FLEXTCP_PL_ATX_CONNUPDATE 0x1 159 #define FLEXTCP_PL_ATX_FLTXDONE 0x1 170 } __attribute__((packed)) connupdate;
172 } __attribute__((packed)) msg;
173 volatile uint8_t type;
174 } __attribute__((packed));
181 #define FLEXNIC_PL_APPST_NUM 8 182 #define FLEXNIC_PL_APPST_CTX_NUM 31 183 #define FLEXNIC_PL_APPST_CTX_MCS 16 184 #define FLEXNIC_PL_APPCTX_NUM 16 185 #define FLEXNIC_PL_FLOWST_NUM (128 * 1024) 186 #define FLEXNIC_PL_FLOWHT_ENTRIES (FLEXNIC_PL_FLOWST_NUM * 2) 187 #define FLEXNIC_PL_FLOWHT_NBSZ 4 198 uint16_t ctx_ids[FLEXNIC_PL_APPST_CTX_NUM];
199 } __attribute__((packed));
219 } __attribute__((packed));
222 #define FLEXNIC_PL_OOO_RECV 1 224 #define FLEXNIC_PL_FLOWST_SLOWPATH 1 225 #define FLEXNIC_PL_FLOWST_ECN 8 226 #define FLEXNIC_PL_FLOWST_TXFIN 16 227 #define FLEXNIC_PL_FLOWST_RXFIN 32 228 #define FLEXNIC_PL_FLOWST_RX_MASK (~63ULL) 285 #ifdef FLEXNIC_PL_OOO_RECV 287 uint32_t rx_ooo_start;
318 } __attribute__((packed, aligned(64)));
320 #define FLEXNIC_PL_FLOWHTE_VALID (1 << 31) 321 #define FLEXNIC_PL_FLOWHTE_POSSHIFT 29 327 } __attribute__((packed));
330 #define FLEXNIC_PL_MAX_FLOWGROUPS 4096 335 struct flextcp_pl_appctx appctx[FLEXNIC_PL_APPST_CTX_MCS][FLEXNIC_PL_APPCTX_NUM];
349 uint8_t flow_group_steering[FLEXNIC_PL_MAX_FLOWGROUPS];
350 } __attribute__((packed));
uint64_t internal_mem_size
uint32_t cnt_rx_ack_bytes
uint32_t cnt_rx_ecn_bytes