46 #if defined(OCS_INCLUDE_DEBUG)
66 size_t size, uint64_t tag, uint32_t vlan)
70 uint32_t payload_size;
104 size_t size, uint64_t tag, uint32_t iface)
107 uint32_t cmd_off = 0;
108 uint32_t payload_size;
143 size_t size, uint64_t tag,
144 uint32_t iface, uint8_t isv4,
148 uint32_t cmd_off = 0;
149 uint32_t payload_size;
159 ((uint8_t *)buf + cmd_off);
165 req->
ip_type = (isv4 ? 0x01 : 0x10);
188 size_t size, uint64_t tag,
189 uint32_t iface, uint8_t isv4)
192 uint32_t cmd_off = 0;
193 uint32_t payload_size;
203 ((uint8_t *)buf + cmd_off);
209 req->
ip_type = (isv4 ? 0x01 : 0x10);
229 size_t size, uint64_t tag,
230 uint32_t iface, uint32_t retries)
233 uint32_t cmd_off = 0;
234 uint32_t payload_size;
244 ((uint8_t *)buf + cmd_off);
270 size_t size, uint64_t tag,
274 uint32_t cmd_off = 0;
275 uint32_t payload_size;
285 ((uint8_t *)buf + cmd_off);
386 uint64_t tag, uint8_t isadd,
392 uint32_t cmd_off = 0;
393 uint32_t payload_size;
395 payload_size = dma->size;
428 uint64_t tag, ocs_dma_t *dma)
431 uint32_t cmd_off = 0;
432 uint32_t payload_size;
434 payload_size = dma->size;
463 size_t size, uint64_t tag,
464 uint32_t iface, uint8_t isadd,
468 uint32_t cmd_off = 0;
469 uint32_t payload_size;
479 ((uint8_t *)buf + cmd_off);
485 req->
action = (isadd ? 1 : 2);
510 size_t size, uint64_t tag,
514 uint32_t cmd_off = 0;
515 uint32_t payload_size;
525 ((uint8_t *)buf + cmd_off);
530 req->
ip_type = (isv4 ? 0x01 : 0x10);
550 size_t size, uint64_t tag,
555 uint32_t cmd_off = 0;
556 uint32_t payload_size;
566 ((uint8_t *)buf + cmd_off);
571 req->
action = (isadd ? 1 : 2);
592 size_t size, uint64_t tag)
595 uint32_t cmd_off = 0;
596 uint32_t payload_size;
630 size_t size, uint64_t tag,
631 uint32_t iface, uint8_t isv4)
634 uint32_t cmd_off = 0;
635 uint32_t payload_size;
650 req->
ip_type = (isv4 ? 0x01 : 0x10);
672 size_t size, uint64_t tag,
678 uint32_t cmd_off = 0;
679 uint32_t payload_size;
717 size_t size, uint64_t tag,
723 uint32_t cmd_off = 0;
724 uint32_t payload_size;
761 size_t size, uint64_t tag,
765 uint32_t cmd_off = 0;
766 uint32_t payload_size;
801 size_t size, uint64_t tag,
806 uint32_t cmd_off = 0;
807 uint32_t payload_size;
817 ((uint8_t *)buf + cmd_off);
846 size_t size, uint64_t tag,
851 uint32_t cmd_off = 0;
852 uint32_t payload_size;
862 ((uint8_t *)buf + cmd_off);
890 size_t size, uint64_t tag,
894 uint32_t cmd_off = 0;
895 uint32_t payload_size;
905 ((uint8_t *)buf + cmd_off);
930 size_t size, uint64_t tag,
934 uint32_t cmd_off = 0;
935 uint32_t payload_size;
945 ((uint8_t *)buf + cmd_off);
980 size_t size, uint64_t tag,
982 uint32_t tcp_window_size,
992 uint32_t cmd_off = 0;
993 uint32_t payload_size;
1005 ((uint8_t *)buf + cmd_off);
1070 size_t size, uint64_t tag,
1072 uint32_t tcp_window_size,
1082 uint32_t cmd_off = 0;
1083 uint32_t payload_size;
1095 ((uint8_t *)buf + cmd_off);
1153 size_t size, uint64_t tag,
1159 uint32_t cmd_off = 0;
1160 uint32_t payload_size;
1170 ((uint8_t *)buf + cmd_off);
1198 size_t size, uint64_t tag,
1203 uint32_t cmd_off = 0;
1204 uint32_t payload_size;
1214 ((uint8_t *)buf + cmd_off);
1243 size_t size, uint64_t tag,
1248 uint32_t cmd_off = 0;
1249 uint32_t payload_size;
1259 ((uint8_t *)buf + cmd_off);
1289 size_t size, uint64_t tag,
1295 uint32_t cmd_off = 0;
1296 uint32_t payload_size;
1306 ((uint8_t *)buf + cmd_off);
1345 size_t size, uint64_t tag,
1349 uint32_t pkt_length,
1353 uint32_t cmd_off = 0;
1354 uint32_t payload_size;
1358 ocs_log_test(sli4->
os,
"iSNS packet of size %d is too big for DMA buffer of size %d\n",
1369 payload_size, pkt_mem);
1371 ocs_memset(pkt_mem->virt, 0, pkt_mem->size);
1410 ocs_dma_t *qmem, uint16_t cq_id, uint16_t ulp)
1413 uint32_t cmd_off = 0;
1416 uint32_t payload_size;
1443 for (p = 0, addr = qmem->phys;
1470 uint32_t cmd_off = 0;
1471 uint32_t payload_size;
1508 uint32_t cmd_off = 0;
1509 uint32_t payload_size;
1554 ocs_dma_t *data_out,
1555 uint16_t hdr_ring_id,
1556 uint16_t data_ring_id,
1560 uint32_t cmd_off = 0;
1561 uint32_t payload_size;
1594 size_t size, uint64_t tag,
1599 ocs_dma_t *data_out,
1600 uint16_t hdr_ring_id,
1601 uint16_t data_ring_id,
1603 uint16_t window_size,
1604 uint8_t window_scale,
1608 uint32_t cmd_off = 0;
1609 uint32_t payload_size;
1662 uint32_t cmd_off = 0;
1663 uint32_t payload_size;
1696 size_t size, uint64_t tag,
1700 uint32_t cmd_off = 0;
1701 uint32_t payload_size;
1711 ((uint8_t *)buf + cmd_off);
1745 uint32_t cmd_off = 0;
1746 uint32_t payload_size;
1749 if (num_ios > 128) {
1750 ocs_log_test(sli4->
os,
"%d ios is too many for command\n", num_ios);
1763 ocs_memset(req, 0, msg_mem->size);
1771 for (index = 0; index < num_ios; index++) {
1772 ocs_cxn_t *cxn = ios[index]->
node;
1775 req->
icds[index].
cid = cxn->wq_id;
1797 uint32_t cmd_off = 0;
1798 uint32_t payload_size;
1837 ocs_dma_t *qmem, uint32_t num_entries, uint16_t cq_id,
1838 uint16_t buffer_size, uint16_t ulp)
1841 uint32_t cmd_off = 0;
1844 uint32_t payload_size;
1861 ocs_log_test(sli4->
os,
"num_pages %d not valid\n", defq->
num_pages);
1874 defq->
ring_size = ocs_lg2(num_entries) + 1;
1875 defq->
cq_id = cq_id;
1879 ocs_log_test(sli4->
os,
"buffer_size %d out of range (%d-%d)\n",
1887 for (p = 0, addr = qmem->phys;
1888 p < defq->num_pages;
1914 uint32_t cmd_off = 0;
1915 uint32_t payload_size;
1973 ocs_log_test(sli4->
os,
"unsupported link status %#x\n",
1993 event.speed = 10000;
1996 event.speed = 20000;
1999 event.speed = 25000;
2002 event.speed = 40000;
2005 event.speed = 100000;
2008 ocs_log_test(sli4->
os,
"unsupported port_speed %#x\n",
2055 new_tcp->
cid = tcp_event->
cid;
2056 ocs_log_debug(sli4->
os,
"ACQE New TCP Connection 0x%x\n", tcp_event->
cid);
2059 stateless_event = acqe;
2063 stateless_cmpl->
iface = stateless_event->
iface;
2064 ocs_log_debug(sli4->
os,
"Stateless operation complete - IPv4\n");
2067 stateless_event = acqe;
2071 stateless_cmpl->
iface = stateless_event->
iface;
2072 ocs_log_debug(sli4->
os,
"Stateless operation complete - IPv6\n");
2080 ocs_log_debug(sli4->
os,
"DHCP operation complete\n");
2087 ocs_log_debug(sli4->
os,
"iSMPv6 Error packet received\n");
2093 ocs_log_debug(sli4->
os,
"IPv6 default port MTU changed\n");
2097 ocs_log_test(sli4->
os,
"unsupported iSCSI ACQE type %#x\n",
2125 uint32_t code = sol_cqe->
code;
2128 if (cq->
u.
flag.is_ini_cq) {
2146 ocs_log_test(sli4->
os,
"CQE code 0x%x exceeds max code value of 0x%x - discarded\n",
2174 uint32_t n_entries, uint32_t hsize, uint32_t psize,
2178 if (!sli4 || !header || !payload) {
2180 "bad parameter sli4=%p header=%p payload=%p\n",
2181 sli4, header, payload);
2193 &header->
dma, n_entries, cq->
id, hsize, ulp)) {
2195 ocs_dma_free(sli4->
os, &header->
dma);
2196 ocs_memset(&header->
dma, 0,
sizeof(ocs_dma_t));
2200 if (header->
id & 1) {
2201 ocs_log_test(sli4->
os,
"bad header RQ_ID %d\n", header->
id);
2202 ocs_dma_free(sli4->
os, &header->
dma);
2203 ocs_memset(&header->
dma, 0,
sizeof(ocs_dma_t));
2209 header->
u.
flag.is_hdr = TRUE;
2211 header->
u.
flag.rq_batch = TRUE;
2221 &payload->
dma, n_entries, cq->
id, psize, ulp)) {
2226 if ((header->
id + 1) != payload->
id) {
2227 ocs_log_test(sli4->
os,
2228 "bad payload RQ_ID %d (header RQ_ID %d\n",
2229 payload->
id, header->
id);
2236 payload->
u.
flag.rq_batch = TRUE;
2266 ocs_log_test(sli4->
os,
"Invalid # of SGEs per ICD %d "
2277 ocs_log_crit(sli4->
os,
"bootstrap mailbox write "
2278 "fail SET_FRAGNUM_BITS\n");
2285 ocs_log_test(sli4->
os,
"bad status SET_FRAGNUM_BITS"
2286 " status=%#x addl=%#x\n", hdr->
status,
2293 ocs_log_test(sli4->
os,
"Error building SET_FRAGNUM_BITS message\n");
2315 ocs_dma_t *pages, uint16_t num_pages, uint16_t page_offset)
2318 uint32_t cmd_off = 0;
2319 uint32_t payload_size;
2339 for (index = 0; index < num_pages; index++) {
2361 uint32_t page_off = 0;
2362 uint32_t num_to_post;
2366 ocs_log_debug(sli4->
os,
"ICD SGE page offset is 0x%x, num pages = %d\n",
2370 while (indx < sli4->num_sgl_pages) {
2373 if (num_to_post > 26) {
2382 (uint16_t)num_to_post,
2383 (uint16_t)page_off)) {
2385 ocs_log_crit(sli4->
os,
"bootstrap mailbox write "
2386 "fail CFG_POST_SGL (v0)\n");
2393 ocs_log_test(sli4->
os,
"bad create CFG_POST_SGL (v0)"
2394 " status=%#x addl=%#x\n", hdr->
status,
2399 ocs_log_test(sli4->
os,
"Error building post SGL page (v0) message\n");
2403 indx += num_to_post;
2404 page_off += num_to_post;
2425 ocs_dma_t *pages, uint16_t icd_start, uint16_t icd_count)
2428 uint32_t cmd_off = 0;
2429 uint32_t payload_size;
2449 for (index = 0; index < icd_count; index++) {
2471 uint32_t icd_indx = 0;
2472 uint32_t num_to_post;
2474 ocs_dma_t pages[20];
2477 while (icd_indx < sli4->icd_count) {
2479 num_to_post = sli4->
icd_count - icd_indx;
2480 if (num_to_post > 20) {
2490 for (page_indx = 0; page_indx < num_to_post; page_indx++) {
2491 uint32_t icd_off = (icd_indx + page_indx);
2496 pages[page_indx].virt = (uint8_t*)sli4->
sgl_pages[page_num].virt + page_off;
2497 pages[page_indx].phys = sli4->
sgl_pages[page_num].phys + page_off;
2498 pages[page_indx].size = page_size;
2506 (uint16_t)(sli4->
icd_base + icd_indx),
2507 (uint16_t)num_to_post)) {
2509 ocs_log_crit(sli4->
os,
"bootstrap mailbox write "
2510 "fail CFG_POST_SGL (v1)\n");
2517 ocs_log_test(sli4->
os,
"bad create CFG_POST_SGL (v1)"
2518 " status=%#x addl=%#x\n", hdr->status,
2519 hdr->additional_status);
2523 ocs_log_test(sli4->
os,
2524 "Error building post SGL page (v1) message\n");
2528 icd_indx += num_to_post;
2561 OCS_M_ZERO | OCS_M_NOWAIT);
2563 ocs_log_err(sli4->
os,
"Failed to allocate SGL DMA structures\n");
2568 if (ocs_dma_alloc(sli4->
os,
2572 ocs_log_err(sli4->
os,
"Failed to allocate SGL page %d\n", indx);
2577 ocs_log_debug(sli4->
os,
"Use ver %d to register %d SGEs per ICD\n",
2588 ocs_log_test(sli4->
os,
"Invalid post sgl version of %d\n",
2610 uint16_t *icd,
void **sgl)
2613 uint32_t icd_page_off;
2625 *sgl = ((uint8_t*)sli4->
sgl_pages[icd_page_off].virt) + icd_off;
This structure contains the type and associated fields for a CQE completion.
uint32_t uint32_t uint32_t tcp_mss
int32_t(* link)(void *, void *)
#define ISCSI_CQE_CODE_MAX
ISCSI_TGT_OFFLOAD_CONNECTION.
ocs_hal_ip_type_e ip_type
#define SLI4_OPC_ISCSI_TGT_INVALIDATE_CONNECTION
int32_t sli_iscsi_set_frag_bits(sli4_t *sli4)
Allocate the SGL pages assigned to the ICD table and post them to the chip.
#define SLI4_OPC_ISCSI_NTWK_IFACE_DELETE
Generic Common Create EQ/CQ/MQ/WQ/RQ Queue completion.
sli4_session_login_options_t session_options
uint32_t def_time_to_retain
uint32_t additional_status
ISCSI_INI_INVALIDATE_CONNECTION.
COMMON_ISCSI_NTWK_IFACE_CREATE.
uint32_t additional_status
COMMON_ISCSI_CFG_REMOVE_SGL_PAGES.
int32_t sli_cmd_iscsi_tgt_invalidate_connection(sli4_t *sli4, void *buf, size_t size, uint64_t tag, uint32_t conn_hdl, uint16_t cid, uint8_t sendRst)
write a ISCSI_TGT_INVALIDATE_CONNECTION command
uint8_t data_pdu_in_order
#define SLI4_OPC_ISCSI_NTWK_DISCOVER_ISNS_SERVER
#define SLI4_OPC_ISCSI_ERROR_RECOVERY_INVALIDATE_CMDS
int32_t sli_cmd_iscsi_common_get_default_gateway(sli4_t *sli4, void *buf, size_t size, uint64_t tag, uint8_t isv4)
write a COMMON_ISCSI_NTWK_GET_DEFAULT_GATEWAY command
int32_t sli_cmd_mailbox_queue_entry(sli4_t *sli4, void *buf, size_t size, uint64_t tag, uint32_t length, ocs_dma_t *dma)
Write a MQE header in the provided buffer.
cqe_handler_t * ini_be3_cqe_handlers[ISCSI_CQE_CODE_MAX+1]
int32_t sli_cmd_iscsi_common_modify_default_gateway(sli4_t *sli4, void *buf, size_t size, uint64_t tag, uint8_t isadd, ocs_hal_ip_address_t *gateway)
write a COMMON_ISCSI_NTWK_MODIFY_DEFAULT_GATEWAY command
#define SLI4_ISCSI_DEFQ_CREATE_V0_MAX_PAGES
ISCSI_TGT_ISNS_SEND_PACKET.
#define SLI4_ISCSI_WQ_CREATE_V0_MAX_PAGES
uint32_t additional_status
mailbox queue Element header
int32_t sli_cmd_iscsi_tcp_disconnect(sli4_t *sli4, void *buf, size_t size, uint64_t tag, uint32_t conn_hdl)
write a ISCSI_TCP_DISCONNECT command
#define SLI4_ISCSI_ACQE_NEW_TCP_CONNECTION
#define SLI4_OPC_ISCSI_SET_FRAGNUM_BITS
#define SLI4_OPC_ISCSI_WQ_DESTROY
#define SLI_PAGE_COUNT(b)
uint32_t uint32_t max_rcv_dsl
int32_t sli_cmd_iscsi_cleanup_v0(sli4_t *sli4, void *buf, size_t size, uint64_t tag, uint16_t ulp_no, uint8_t hdrq_id, uint8_t dataq_id)
write a COMMON_ISCSI_CLEANUP (version 0) command
uint32_t data_out_tmpl_high
#define SLI4_ISCSI_DEFQ_CREATE_V0_MIN_BUF_SIZE
#define SLI4_ISCSI_ACQE_ICMPV6_ERROR_PKT_RECVD
int32_t sli_cmd_iscsi_common_get_if_info(sli4_t *sli4, void *buf, size_t size, uint64_t tag, uint32_t iface, uint8_t isv4)
write a COMMON_ISCSI_NTWK_GET_IF_INFO command
uint32_t uint32_t hdr_ring_id
COMMON_ISCSI_CFG_POST_SGL_PAGES (v1)
uint16_t def_time_to_retain
COMMON_ISCSI_NTWK_IFACE_DELETE.
cqe_handler_t * ini_skh_cqe_handlers[ISCSI_CQE_CODE_MAX+1]
sli4_ip_addr_subnet_t ip_addr_subnet
#define SLI4_OPC_ISCSI_CFG_POST_SGL_PAGES
int32_t sli_cmd_iscsi_common_discovered_isns_servers(sli4_t *sli4, void *buf, size_t size, uint64_t tag, uint32_t iface)
write a COMMON_ISCSI_NTWK_DISCOVERED_ISNS_SERVERS command
#define SLI4_OPC_ISCSI_TGT_START_LISTEN_SERVER
int32_t sli_cmd_iscsi_tgt_offload_connection_v1(sli4_t *sli4, void *buf, size_t size, uint64_t tag, uint32_t conn_hdl, uint32_t tcp_window_size, uint16_t ulp_no, uint16_t wq_id, uint16_t cq_id, uint16_t hdrq_id, uint16_t dataq_id, uint8_t nrs, ocs_hal_target_login_options_t *lgn_options)
write a ISCSI_TGT_OFFLOAD_CONNECTION command (version 1)
#define SLI4_OPC_ISCSI_NTWK_GET_DEFAULT_GATEWAY
structure wrapping an IP address and subnet together with their type.
uint32_t uint32_t cleanup_type
struct sli4_queue_t::@33::@34 flag
#define SLI4_OPC_ISCSI_INI_INVALIDATE_CONNECTION
ocs_hal_ip_type_e
enum identifying the types of IP addresses.
#define SLI4_ISCSI_DEFQE_SIZE
COMMON_ISCSI_SET_FRAGNUM_BITS.
#define SLI4_OPC_ISCSI_NTWK_MODIFY_IP_ADDR
cqe_handler_t * tgt_be3_cqe_handlers[ISCSI_CQE_CODE_MAX+1]
int32_t sli_iscsi_io_get_icd_and_sgl(sli4_t *sli4, uint32_t io_offset, uint16_t *icd, void **sgl)
return the ICD and virtual SGL pointer for an IO at the specified offset into the ICD table...
Asynchronouse Event : iSCSI Event - iCMPv6 Error.
ocs_hal_abort_type_e
HAL abort types.
COMMON_ISCSI_NTWK_RELEASE_STATELESS_IP_ADDR.
#define SLI_LOGIN_FLAG_INITIAL_R2T
uint32_t data_out_tmpl_low
cqe_handler_t * tgt_skh_cqe_handlers[ISCSI_CQE_CODE_MAX+1]
COMMON_ISCSI_ERROR_RECOVERY_INVALIDATE_CMDS.
int32_t __sli_queue_init(sli4_t *sli4, sli4_queue_t *q, uint32_t qtype, uint32_t version, size_t size, uint32_t n_entries, uint32_t align)
Initialize a queue object.
COMMON_ISCSI_NTWK_GET_DEFAULT_GATEWAY.
struct sli4_t::@37 features
#define SLI4_OPC_ISCSI_NTWK_SET_ROUTE_TABLE
int32_t sli_iscsi_process_iscsi(sli4_t *sli4, void *acqe)
Process an asynchronous iSCSI event entry.
uint32_t uint32_t window_size
static int32_t sli_cmd_iscsi_post_sgl_pages_v0(sli4_t *sli4, void *buf, size_t size, uint64_t tag, ocs_dma_t *pages, uint16_t num_pages, uint16_t page_offset)
write a COMMON_ISCSI_CFG_POST_SGL_PAGES (v0) command
struct sli4_req_iscsi_defq_create_t::@44 page_physical_address[8]
int32_t sli_cmd_iscsi_common_discover_isns_server(sli4_t *sli4, void *buf, size_t size, uint64_t tag, uint32_t iface, uint32_t retries)
write a COMMON_ISCSI_NTWK_DISCOVER_ISNS_SERVER command
int32_t sli_cmd_iscsi_tcp_connect_v0(sli4_t *sli4, void *buf, size_t size, uint64_t tag, ocs_hal_ip_address_t *ipaddr, uint32_t tcp_port, uint16_t cid, uint16_t cq_id, ocs_dma_t *data_out, uint16_t hdr_ring_id, uint16_t data_ring_id, uint8_t do_offload)
write a ISCSI_TCP_CONNECT_AND_OFFLOAD V0 command
#define SLI4_SUBSYSTEM_COMMON_ISCSI
int32_t sli_cmd_iscsi_tgt_stop_listen_server(sli4_t *sli4, void *buf, size_t size, uint64_t tag, ocs_hal_ip_address_t *ipaddr, uint32_t tcp_port)
write a ISCSI_TGT_STOP_LISTEN_SERVER command
uint8_t sli_iscsi_conv_hal_ip_addr_type(ocs_hal_ip_type_e ip_type)
Converts the IP address type field to the SLI4 equivalent value.
int32_t sli_cmd_iscsi_common_iface_delete(sli4_t *sli4, void *buf, size_t size, uint64_t tag, uint32_t iface)
write a COMMON_ISCSI_NTWK_IFACE_CREATE command
#define SLI4_ISCSI_ACQE_IPV6_DEFAULT_PORT_MTU_CHANGED
#define SLI4_ISCSI_ACQE_DHCP_OPERATION_COMPLETE
uint32_t uint32_t window_shift
union sli4_queue_t::@33 u
int32_t sli_cmd_iscsi_wq_create(sli4_t *sli4, void *buf, size_t size, uint64_t tag, ocs_dma_t *qmem, uint16_t cq_id, uint16_t ulp)
write a ISCSI_WQ_CREATE command
int32_t sli_cmd_iscsi_tgt_get_connection_info(sli4_t *sli4, void *buf, size_t size, uint64_t tag, uint32_t conn_hdl)
write a ISCSI_TGT_GET_CONNECTION_INFO command
Asynchronouse Event : iSCSI Event - iCMPv6 Error.
COMMON_ISCSI_NTWK_SET_ROUTE_TABLE.
#define SLI4_SUBSYSTEM_ISCSI_TGT
int32_t sli_cmd_iscsi_remove_sgl_pages(sli4_t *sli4, void *buf, size_t size, uint64_t tag)
write a COMMON_ISCSI_CFG_REMOVE_SGL_PAGES command
uint16_t def_time_to_wait
ISCSI_TGT_START_ESI_LISTEN.
#define SLI4_OPC_ISCSI_NTWK_RELEASE_STATELESS_IP_ADDR
int32_t sli_cmd_iscsi_get_connection_info(sli4_t *sli4, void *buf, size_t size, uint64_t tag, uint32_t conn_hdl)
write a ISCSI_GET_CONNECTION_INFO command
int32_t sli_cmd_iscsi_tgt_start_esi_listen(sli4_t *sli4, void *buf, size_t size, uint64_t tag, ocs_hal_ip_address_t *ipaddr, uint32_t tcp_port)
write a ISCSI_TGT_START_ESI_LISTEN command
Asynchronouse Event : Link State ACQE.
int32_t sli_iscsi_process_link_state(sli4_t *sli4, void *acqe)
Process an asynchronous Link State event entry.
uint32_t uint32_t data_id
#define SLI4_SUBSYSTEM_ISCSI_INI
void ocs_dump32(uint32_t mask, ocs_os_handle_t os, const char *label, void *buf, uint32_t buf_length)
Dump 32 bit hex/ascii data.
int32_t sli_cmd_iscsi_defq_destroy(sli4_t *sli4, void *buf, size_t size, uint64_t tag, uint16_t rq_id)
write a ISCSI_DEFQ_DESTROY command
#define SLI4_OPC_ISCSI_NTWK_IFACE_CREATE
int32_t(* iscsi_async)(void *, void *)
uint32_t uint32_t uint32_t ulp_number
COMMON_ISCSI_CFG_POST_SGL_PAGES (v0)
struct sli4_req_common_iscsi_cfg_post_sgl_pages_v0_t::@41 page_physical_address[26]
int32_t sli_cmd_iscsi_common_configure_stateless_ip_addr(sli4_t *sli4, void *buf, size_t size, uint64_t tag, uint32_t iface, uint8_t isv4, uint32_t retries)
write a COMMON_ISCSI_NTWK_CONFIGURE_STATELESS_IP_ADDR command
#define SLI4_OPC_ISCSI_WQ_CREATE
#define SLI4_OPC_ISCSI_NTWK_MODIFY_DEFAULT_GATEWAY
#define SLI4_PORT_LINK_STATUS_UP
int32_t sli_cmd_iscsi_ntwk_set_mtu(sli4_t *sli4, void *buf, size_t size, uint64_t tag, uint32_t mtu)
write a ISCSI_NTWK_SET_MTU command
int32_t sli_cmd_iscsi_wq_destroy(sli4_t *sli4, void *buf, size_t size, uint64_t tag, uint16_t wq_id)
write a ISCSI_WQ_DESTROY command
sli4_route_table_entry_t entry[1]
#define SLI_LOGIN_FLAG_DATA_PDU_IN_ORDER
int32_t sli_cmd_iscsi_invalidate_cmds(sli4_t *sli4, void *buf, size_t size, uint64_t tag, ocs_dma_t *msg_mem, ocs_hal_io_t **ios, uint16_t num_ios, ocs_hal_abort_type_e abort_type)
write a COMMON_ISCSI_INVALIDATE_COMMANDS command
ocs_hal_ip_type_e ip_type
COMMON_ISCSI_NTWK_DISCOVERED_ISNS_SERVERS.
int32_t sli_cmd_iscsi_common_modify_ip_addr(sli4_t *sli4, void *buf, size_t size, uint64_t tag, uint32_t iface, uint8_t isadd, ocs_hal_ip_address_subnet_t *ipaddr)
write a COMMON_ISCSI_NTWK_MODIFY_IP_ADDR command
#define SLI_LOGIN_FLAG_DATA_SEQUENCE_IN_ORDER
#define SLI4_OPC_ISCSI_NTWK_DISCOVERED_ISNS_SERVERS
sli4_ip_addr_subnet_t ip_sub
COMMON_ISCSI_NTWK_DISCOVER_ISNS_SERVER.
int32_t sli_iscsi_post_sgl_pages(sli4_t *sli4)
Allocate the SGL pages assigned to the ICD table and post them to the chip.
#define SLI4_OPC_ISCSI_TGT_START_ESI_LISTEN
#define SLI4_ISCSI_ACQE_STATELESS_OPERATION_COMPLETE_IPV4
int32_t sli_cmd_iscsi_common_set_route_table(sli4_t *sli4, void *buf, size_t size, uint64_t tag, uint8_t isadd, ocs_hal_ip_address_subnet_t *hal_ipsub, ocs_hal_ip_address_t *hal_gateway, ocs_dma_t *dma)
write a COMMON_ISCSI_NTWK_SET_ROUTE_TABLE command
int32_t sli_cmd_iscsi_tcp_connect_v1(sli4_t *sli4, void *buf, size_t size, uint64_t tag, ocs_hal_ip_address_t *ipaddr, uint32_t tcp_port, uint16_t cid, uint16_t cq_id, ocs_dma_t *data_out, uint16_t hdr_ring_id, uint16_t data_ring_id, uint8_t do_offload, uint16_t window_size, uint8_t window_scale, uint32_t tcp_mss)
#define SLI4_ISCSI_ROUTE_TABLE_ENTRY_ADD
#define SLI4_OPC_ISCSI_TCP_CONNECT_AND_OFFLOAD
#define SLI_LOGIN_FLAG_IMMEDIATE_DATA
#define SLI4_OPC_ISCSI_TGT_GET_CONNECTION_INFO
int32_t sli_cmd_iscsi_tgt_isns_send_packet(sli4_t *sli4, void *buf, size_t size, uint64_t tag, ocs_hal_ip_address_t *isns_server, uint32_t tcp_port, void *packet, uint32_t pkt_length, ocs_dma_t *pkt_mem)
write a ISCSI_TGT_ISNS_SEND_PACKET command
Asynchronouse Event : iSCSI Event - New TCP Connection.
int32_t sli_iscsi_defq_alloc(sli4_t *sli4, sli4_queue_t *header, sli4_queue_t *payload, uint32_t n_entries, uint32_t hsize, uint32_t psize, sli4_queue_t *cq, uint16_t ulp)
allocate a receive queue
uint32_t error_recovery_level
struct sli4_t::@38 config
COMMON_ISCSI_NTWK_MODIFY_IP_ADDR.
uint32_t uint32_t uint32_t data_ring_id
ISCSI_TGT_INVALIDATE_CONNECTION.
int32_t sli_cmd_iscsi_common_get_all_if_id(sli4_t *sli4, void *buf, size_t size, uint64_t tag)
write a COMMON_ISCSI_NTWK_GET_ALL_IF_ID command
#define SLI4_ISCSI_ACQE_STATELESS_OPERATION_COMPLETE_IPV6
Asynchronouse Event : iSCSI Event - stateless operation complete.
#define SLI4_OPC_ISCSI_TGT_CONNECTION_REJECT
COMMON_ISCSI_NTWK_GET_IF_INFO.
uint8_t data_sequence_in_order
int32_t sli_cmd_iscsi_cleanup_v1(sli4_t *sli4, void *buf, size_t size, uint64_t tag, uint16_t ulp_no, uint16_t hdrq_id, uint16_t dataq_id)
write a COMMON_ISCSI_CLEANUP (version 1) command
#define SLI4_OPC_ISCSI_TGT_STOP_LISTEN_SERVER
This structure is used to track the SLI4 queues.
uint32_t def_time_to_wait
uint32_t uint32_t first_burst
#define SLI4_OPC_ISCSI_CFG_REMOVE_SGL_PAGES
#define SLI4_OPC_ISCSI_NTWK_GET_ALL_IF_ID
sli4_isns_ip_addr_t isns_server
int32_t sli_iscsi_cqe_parse(sli4_t *sli4, sli4_queue_t *cq, uint8_t *cqe, sli4_qentry_fields_t *fields)
Parse a iSCSI work queue CQ entry.
#define SLI4_OPC_ISCSI_DEFQ_CREATE
structure wrapping an IP address together with it's type.
struct sli4_req_common_iscsi_cfg_post_sgl_pages_v1_t::@42 page_set[20]
sli4_target_login_options_t login_options
Asynchronouse Event : iSCSI Event.
ISCSI_TGT_STOP_ESI_LISTEN.
int32_t sli_cmd_iscsi_ini_invalidate_connection(sli4_t *sli4, void *buf, size_t size, uint64_t tag, uint32_t conn_hdl, uint16_t cid, uint8_t sendRst)
write a ISCSI_INI_INVALIDATE_CONNECTION command
static int32_t sli_iscsi_post_sgl_pages_v0(sli4_t *sli4)
Allocate the SGL pages assigned to the ICD table and post them to the chip.
int32_t __sli_create_queue(sli4_t *sli4, sli4_queue_t *q)
Issue command to create queue.
sli4_target_login_options_t login_options
uint8_t additional_status
uint8_t error_recovery_level
uint8_t additional_status
uint32_t uint32_t uint32_t uint32_t tcp_window
struct sli4_req_iscsi_wq_create_t::@43 page_physical_address[8]
uint32_t data_out_tmpl_high
uint32_t data_out_tmpl_low
#define SLI4_OPC_ISCSI_NTWK_GET_ROUTE_TABLE
ISCSI_TGT_CONNECTION_REJECT.
Asynchronouse Event : iSCSI Event - DHCP operation complete.
int32_t sli_cmd_iscsi_tgt_stop_esi_listen(sli4_t *sli4, void *buf, size_t size, uint64_t tag, ocs_hal_ip_address_t *ipaddr, uint32_t tcp_port)
write a ISCSI_TGT_STOP_ESI_LISTEN command
int32_t sli_bmbx_command(sli4_t *sli4)
Submit a command to the bootstrap mailbox and check the status.
#define SLI4_OPC_ISCSI_NTWK_GET_IF_INFO
int32_t sli_cmd_iscsi_tgt_offload_connection_v0(sli4_t *sli4, void *buf, size_t size, uint64_t tag, uint32_t conn_hdl, uint32_t tcp_window_size, uint16_t ulp_no, uint16_t wq_id, uint16_t cq_id, uint8_t hdrq_id, uint8_t dataq_id, uint8_t nrs, ocs_hal_target_login_options_t *lgn_options)
write a ISCSI_TGT_OFFLOAD_CONNECTION command (version 0)
uint16_t num_sges_per_icd
struct sli4_req_common_iscsi_invalidate_cmds_t::@40 icds[128]
IP_ADDRESS_SUBNET_FORMAT.
Scatter-Gather Entry (SGE)
ISCSI_GET_CONNECTION_INFO.
#define SLI4_OPC_ISCSI_TGT_OFFLOAD_CONNECTION
COMMON_ISCSI_NTWK_MODIFY_DEFAULT_GATEWAY.
ocs_hal_ip_type_e sli_iscsi_conv_sli4_ip_addr_type(uint8_t ip_type)
Converts the SLI4 IP address type field to the HAL equivalent value.
#define SLI4_OPC_ISCSI_TGT_STOP_ESI_LISTEN
int32_t sli_cmd_iscsi_defq_create(sli4_t *sli4, void *buf, size_t size, uint64_t tag, ocs_dma_t *qmem, uint32_t num_entries, uint16_t cq_id, uint16_t buffer_size, uint16_t ulp)
write a ISCSI_DEFQ_CREATE command
#define SLI4_ISCSI_ROUTE_TABLE_ENTRY_DEL
int32_t sli_cmd_iscsi_common_get_route_table(sli4_t *sli4, void *buf, size_t size, uint64_t tag, ocs_dma_t *dma)
write a COMMON_ISCSI_NTWK_GET_ROUTE_TABLE command
Generic Command Request header.
uint32_t icd_num_per_page
#define SLI4_ISCSI_DEFQ_CREATE_V0_MAX_BUF_SIZE
Generic Command Response header.
#define SLI4_OPC_ISCSI_GET_CONNECTION_INFO
#define SLI4_OPC_ISCSI_CLEANUP
#define SLI4_OPC_ISCSI_DEFQ_DESTROY
#define SLI4_OPC_ISCSI_TCP_DISCONNECT
ISCSI_TGT_GET_CONNECTION_INFO.
int32_t sli_cmd_iscsi_tgt_start_listen_server(sli4_t *sli4, void *buf, size_t size, uint64_t tag, ocs_hal_ip_address_t *ipaddr, uint32_t tcp_port)
write a ISCSI_TGT_START_LISTEN_SERVER command
#define SLI4_OPC_ISCSI_NTWK_CONFIGURE_STATELESS_IP_ADDR
ISCSI_TGT_STOP_LISTEN_SERVER.
#define SLI4_OPC_ISCSI_NTWK_SET_MTU
static int32_t sli_iscsi_post_sgl_pages_v1(sli4_t *sli4)
Allocate the SGL pages assigned to the ICD table and post them to the chip.
static int32_t sli_cmd_iscsi_set_fragnum_bits(sli4_t *sli4, void *buf, size_t size, uint64_t tag, uint32_t num_bits)
write a COMMON_ISCSI_SET_FRAGNUM_BITS command
ocs_session_login_options_t session_options
static int32_t sli_cmd_iscsi_post_sgl_pages_v1(sli4_t *sli4, void *buf, size_t size, uint64_t tag, ocs_dma_t *pages, uint16_t icd_start, uint16_t icd_count)
write a COMMON_ISCSI_CFG_POST_SGL_PAGES (v1) command
int32_t sli_cmd_iscsi_common_iface_create(sli4_t *sli4, void *buf, size_t size, uint64_t tag, uint32_t vlan)
write a COMMON_ISCSI_NTWK_IFACE_CREATE command
COMMON_ISCSI_NTWK_GET_ALL_IF_ID.
int32_t sli_cmd_iscsi_tgt_connection_reject(sli4_t *sli4, void *buf, size_t size, uint64_t tag, uint32_t conn_hdl)
write a ISCSI_TGT_CONNECTION_REJECT command
#define SLI4_OPC_ISCSI_TGT_ISNS_SEND_PACKET
ISCSI_TGT_START_LISTEN_SERVER.
#define SLI4_PORT_LINK_STATUS_DOWN
ISCSI_TCP_CONNECT_AND_OFFLOAD.
int32_t sli_cmd_iscsi_common_release_stateless_ip_addr(sli4_t *sli4, void *buf, size_t size, uint64_t tag, uint32_t iface, uint8_t isv4)
write a COMMON_ISCSI_NTWK_RELEASE_STATELESS_IP_ADDR command