Emulex Logo
OneCoreā„¢ Storage SDK Release 11.2
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
sli4_iscsi.c File Reference
#include "ocs_os.h"
#include "ocs_hal.h"
#include "sli4_iscsi.h"

Go to the source code of this file.

Detailed Description

Implementation of iSCSI SLI-4 functions

Definition in file sli4_iscsi.c.

Functions

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 More...
 
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 More...
 
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 More...
 
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 More...
 
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 More...
 
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 More...
 
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. More...
 
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. More...
 
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 More...
 
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 More...
 
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 More...
 
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 More...
 
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 More...
 
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 More...
 
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 More...
 
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 More...
 
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 More...
 
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 More...
 
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 More...
 
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 More...
 
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 More...
 
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 More...
 
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) More...
 
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) More...
 
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 More...
 
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 More...
 
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 More...
 
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 More...
 
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 More...
 
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 More...
 
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 More...
 
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 More...
 
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 More...
 
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)
 
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 More...
 
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 More...
 
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 More...
 
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 More...
 
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 More...
 
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 More...
 
int32_t sli_iscsi_process_link_state (sli4_t *sli4, void *acqe)
 Process an asynchronous Link State event entry. More...
 
int32_t sli_iscsi_process_iscsi (sli4_t *sli4, void *acqe)
 Process an asynchronous iSCSI event entry. More...
 
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. More...
 
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 More...
 
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. More...
 
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 More...
 
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. More...
 
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 More...
 
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. More...
 
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. More...
 
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. More...
 

Variables

const char * SLI_QNAME []
 

Function Details

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 
)
static

write a COMMON_ISCSI_CFG_POST_SGL_PAGES (v0) command

Parameters
sli4SLI context
bufdestination buffer for the command
sizebuffer size in bytes
tagcommand tag
pagespointer to an array of DMA page memory
num_pagesThe number of pages passed
page_offsetThe index of the page into the ICD SGL pages
Returns
number of bytes written

Definition at line 2314 of file sli4_iscsi.c.

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 
)
static

write a COMMON_ISCSI_CFG_POST_SGL_PAGES (v1) command

Parameters
sli4SLI context
bufdestination buffer for the command
sizebuffer size in bytes
tagcommand tag
pagespointer to an array of DMA page memory
icd_startThe starting ICD index
icd_countThe number of ICD to post (1 page per ICD)
Returns
number of bytes written

Definition at line 2424 of file sli4_iscsi.c.

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 
)

Definition at line 1593 of file sli4_iscsi.c.

Variable Details

const char* SLI_QNAME[]

Definition at line 75 of file sli4.c.