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

Go to the source code of this file.

Detailed Description

Defines the iSCSI session managment functions. This code should be OS independant.

Definition in file ocs_session.h.

Functions

int32_t ocs_session_initialize (ocs_iscsi_t *)
 Initialize the session management by allocating objects for sessions. More...
 
void ocs_session_teardown (ocs_iscsi_t *)
 Releases the session objects used within the login module. More...
 
int32_t ocs_session_cxn_new (ocs_cxn_t *cxn, char *tgt_name, char *ini_name, uint64_t isid, uint16_t tsih, uint16_t cid, uint32_t cmd_sn)
 Find an existing session or create a new one based on the login parameters. More...
 
int32_t ocs_session_cxn_del (ocs_cxn_t *cxn)
 Removes a connection from its session. More...
 
ocs_cxn_t * ocs_session_cxn_find (ocs_session_t *session, uint16_t cid)
 Locate a connection within a session based on the cid. More...
 
void ocs_session_close (ocs_session_t *session, uint8_t reset)
 Closes all connections on a session. More...
 
void ocs_session_max_cmd_sn_upd (ocs_session_t *session)
 Updates the max_cmd_sn based on the number IOs available. More...
 
int32_t ocs_session_tgt_unsol_pdu_recv (ocs_cxn_t *cxn, ocs_hal_rq_buffer_t *hdr, uint32_t hdr_len, ocs_hal_rq_buffer_t *data, uint32_t data_len, uint8_t code)
 Function to handle unsolicited PDUs on a target. More...
 
int32_t ocs_session_abort_itt (ocs_session_t *session, uint32_t itt)
 Abort a specific IO based on the ITT. More...
 
void ocs_session_abort_cmdsn (ocs_session_t *session, uint32_t cmdsn)
 Abort a specific IO based on the cmdSN of the abort request. More...
 
void ocs_session_all_abort_cmdsn (ocs_iscsi_t *iscsi, uint32_t cmdsn)
 Abort a specific IO based on the cmdSN of the abort request. More...
 
void ocs_ddump_sessions (ocs_textbuf_t *textbuf, ocs_iscsi_t *iscsi)
 Generate node ddump data. More...
 
static uint32_t ocs_session_is_window_open (ocs_cxn_t *cxn)
 
static uint64_t ocs_session_isid_get (ocs_cxn_t *cxn)
 
static uint32_t ocs_session_cmd_sn_get (ocs_cxn_t *cxn, uint32_t inc)
 
static uint32_t ocs_session_exp_cmd_sn_get (ocs_cxn_t *cxn)
 
static uint32_t ocs_session_max_cmd_sn_get (ocs_cxn_t *cxn)
 
static uint32_t ocs_session_cmd_window_get (ocs_cxn_t *cxn)
 
static uint16_t ocs_session_tsih_get (ocs_cxn_t *cxn)
 
static void ocs_session_cmd_sn_set (ocs_cxn_t *cxn, uint32_t cmd_sn)
 
static void ocs_session_exp_cmd_sn_set (ocs_cxn_t *cxn, uint32_t exp_cmd_sn)
 
static void ocs_session_max_cmd_sn_set (ocs_cxn_t *cxn, uint32_t max_cmd_sn)
 
static void ocs_session_cmd_window_set (ocs_cxn_t *cxn, uint32_t cmd_window)
 
static void ocs_session_calc_cmd_window (ocs_cxn_t *cxn)
 
static void ocs_session_tsih_set (ocs_cxn_t *cxn, uint16_t tsih)
 

Function Details

void ocs_ddump_sessions ( ocs_textbuf_t *  textbuf,
ocs_iscsi_t *  iscsi 
)

Generate node ddump data.

Description
Generates the node ddump data.
Parameters
textbufPointer to text buffer.
iscsiPointer to the iscsi object.
Returns
None.

Definition at line 1095 of file ocs_session.c.

void ocs_session_abort_cmdsn ( ocs_session_t *  session,
uint32_t  cmdsn 
)

Abort a specific IO based on the cmdSN of the abort request.

Parameters
sessionPointer to the session object.
cmdsnAny commands preceding this cmdSN are aborted.

Definition at line 965 of file ocs_session.c.

int32_t ocs_session_abort_itt ( ocs_session_t *  session,
uint32_t  itt 
)

Abort a specific IO based on the ITT.

Parameters
sessionPointer to the session object.
ittInitiator task tag to abort.
Returns
Returns 0 if the IO was found.

Definition at line 932 of file ocs_session.c.

void ocs_session_all_abort_cmdsn ( ocs_iscsi_t *  iscsi,
uint32_t  cmdsn 
)

Abort a specific IO based on the cmdSN of the abort request.

Parameters
iscsiPointer to the iSCSI object.
cmdsnAny commands preceding this cmdSN are aborted.

Definition at line 994 of file ocs_session.c.

static void ocs_session_calc_cmd_window ( ocs_cxn_t *  cxn)
inlinestatic

Definition at line 194 of file ocs_session.h.

static uint32_t ocs_session_cmd_sn_get ( ocs_cxn_t *  cxn,
uint32_t  inc 
)
inlinestatic

Definition at line 109 of file ocs_session.h.

static void ocs_session_cmd_sn_set ( ocs_cxn_t *  cxn,
uint32_t  cmd_sn 
)
inlinestatic

Definition at line 154 of file ocs_session.h.

static uint32_t ocs_session_cmd_window_get ( ocs_cxn_t *  cxn)
inlinestatic

Definition at line 138 of file ocs_session.h.

static void ocs_session_cmd_window_set ( ocs_cxn_t *  cxn,
uint32_t  cmd_window 
)
inlinestatic

Definition at line 184 of file ocs_session.h.

static uint32_t ocs_session_exp_cmd_sn_get ( ocs_cxn_t *  cxn)
inlinestatic

Definition at line 122 of file ocs_session.h.

static void ocs_session_exp_cmd_sn_set ( ocs_cxn_t *  cxn,
uint32_t  exp_cmd_sn 
)
inlinestatic

Definition at line 164 of file ocs_session.h.

static uint32_t ocs_session_is_window_open ( ocs_cxn_t *  cxn)
inlinestatic

Definition at line 86 of file ocs_session.h.

static uint64_t ocs_session_isid_get ( ocs_cxn_t *  cxn)
inlinestatic

Definition at line 101 of file ocs_session.h.

static uint32_t ocs_session_max_cmd_sn_get ( ocs_cxn_t *  cxn)
inlinestatic

Definition at line 130 of file ocs_session.h.

static void ocs_session_max_cmd_sn_set ( ocs_cxn_t *  cxn,
uint32_t  max_cmd_sn 
)
inlinestatic

Definition at line 174 of file ocs_session.h.

static uint16_t ocs_session_tsih_get ( ocs_cxn_t *  cxn)
inlinestatic

Definition at line 146 of file ocs_session.h.

static void ocs_session_tsih_set ( ocs_cxn_t *  cxn,
uint16_t  tsih 
)
inlinestatic

Definition at line 208 of file ocs_session.h.