Emulex Logo
OneCoreā„¢ Storage SDK Release 11.2
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
ocs_session.c File Reference
#include "ocs.h"
#include "ocs_iscsi.h"
#include "ocs_iscsi_spec.h"
#include "ocs_common.h"
#include "ocs_hal.h"
#include "ocs_iscsi_api.h"
#include "ocs_cxn.h"
#include "ocs_login.h"
#include "ocs_session.h"

Go to the source code of this file.

Detailed Description

OCS iSCSI session managment functions.

Definition in file ocs_session.c.

Macros

#define CMD_Q_TIMER_MS   30 /* 30 milliseconds */
 

Functions

static void ocs_session_check_queued_commands (ocs_session_t *session)
 Checks the queued command to see if any can start. More...
 
static void ocs_session_cmd_q_timeout (void *arg)
 This function is called to process commands on a session command queue. More...
 
int32_t ocs_session_initialize (ocs_iscsi_t *iscsi)
 Initialize the session management by allocating objects for sessions. More...
 
void ocs_session_teardown (ocs_iscsi_t *iscsi)
 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...
 
static int32_t ocs_session_queue_command (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, uint32_t cmd_sn)
 Adds a command to the command queue. 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...
 
static void ocs_ddump_cmd_q (ocs_textbuf_t *textbuf, ocs_session_q_unsol_t *cmd_q)
 Generate node ddump data. More...
 
static void ocs_ddump_session (ocs_textbuf_t *textbuf, ocs_session_t *session)
 Generate node ddump data. More...
 
void ocs_ddump_sessions (ocs_textbuf_t *textbuf, ocs_iscsi_t *iscsi)
 Generate node ddump data. More...
 

Macro Details

#define CMD_Q_TIMER_MS   30 /* 30 milliseconds */

Definition at line 51 of file ocs_session.c.

Function Details

static void ocs_ddump_cmd_q ( ocs_textbuf_t *  textbuf,
ocs_session_q_unsol_t *  cmd_q 
)
static

Generate node ddump data.

Description
Generates the node ddump data.
Parameters
textbufPointer to text buffer.
cmd_qThis queue contains the out-of-order commands for a session.
Returns
None.

Definition at line 1019 of file ocs_session.c.

static void ocs_ddump_session ( ocs_textbuf_t *  textbuf,
ocs_session_t *  session 
)
static

Generate node ddump data.

Description
Generates the node ddump data.
Parameters
textbufPointer to text buffer.
sessionPointer to session.
Returns
None.

Definition at line 1042 of file ocs_session.c.

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_cmd_q_timeout ( void *  arg)
static

This function is called to process commands on a session command queue.

Parameters
argPointer to the session object.

Definition at line 487 of file ocs_session.c.