#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_login.h"#include "ocs_cxn.h"#include "ocs_session.h"#include "ocs_md5.h"Go to the source code of this file.
Implements the iSCSI Login interface functions.
This module queues requests when insufficient resources exist to send the request immediately.
Definition in file ocs_login.c.
Macros | |
| #define | OCS_TEXT_TIMEOUT_MS (1 * 1000) /* 1 second */ |
Functions | |
| static int32_t | ocs_iscsi_login_buffer_get (ocs_cxn_t *cxn) |
| Get an available login buffer from the pre-allocated pool. More... | |
| static void | ocs_iscsi_login_buffer_free (ocs_cxn_t *cxn) |
| Return a login buffer to the pre-allocated pool. More... | |
| static int32_t | ocs_iscsi_login_retries_allocate (ocs_iscsi_t *iscsi) |
| Allocate the iSCSI retry buffers and add them to the pool. More... | |
| static void | ocs_iscsi_login_retries_free (ocs_iscsi_t *iscsi) |
| Free the iSCSI login retry buffers. More... | |
| static ocs_iscsi_lgn_retry_t * | ocs_iscsi_login_retry_get (ocs_iscsi_t *iscsi) |
| Get an available retry buffer from the pre-allocated pool. More... | |
| static void | ocs_iscsi_login_retry_free (ocs_iscsi_t *iscsi, ocs_iscsi_lgn_retry_t *retry) |
| Return a login retry buffer to the pre-allocated pool. More... | |
| int32_t | ocs_iscsi_login_cb_free_lgn_mem (ocs_hal_io_t *io, ocs_cxn_t *cxn, int32_t status, ocs_ini_cmpl_fields_t *ini_fields, void *ul_arg) |
| int32_t | ocs_iscsi_login_cb_no_lgn_mem (ocs_hal_io_t *io, ocs_cxn_t *cxn, int32_t status, ocs_ini_cmpl_fields_t *ini_fields, void *ul_arg) |
| Function to free resources for login responses. More... | |
| int32_t | ocs_iscsi_login_tgt_nop_cb_free_lgn_mem (ocs_hal_io_t *io, ocs_cxn_t *cxn, int32_t status, ocs_ini_cmpl_fields_t *ini_fields, void *ul_arg) |
| Function to target NOP completions. More... | |
| int32_t | ocs_iscsi_login_tgt_nop_cb_no_lgn_mem (ocs_hal_io_t *io, ocs_cxn_t *cxn, int32_t status, ocs_ini_cmpl_fields_t *ini_fields, void *ul_arg) |
| Function to target NOP completions. More... | |
| static void | ocs_iscsi_login_convert_bin_to_hexstring (uint8_t *bin, uint32_t nbytes, char *str, uint32_t max_str) |
| Converts binary to an ASCII hex string. More... | |
| int32_t | ocs_iscsi_login_initialize (ocs_iscsi_t *iscsi) |
| Initialize the login and retry object used within the login module. More... | |
| void | ocs_iscsi_login_teardown (ocs_iscsi_t *iscsi) |
| Releases the login and retry object used within the login module. More... | |
| int32_t | ocs_iscsi_are_login_reqs_outstanding (ocs_cxn_t *cxn) |
| Checks to see if there are any retry or login IOs active on a connection. More... | |
| ocs_hal_rtn_e | ocs_iscsi_login_cxn_cleanup (ocs_cxn_t *cxn) |
| Frees any retry objects for the connection. More... | |
| void | ocs_iscsi_login_retry (ocs_cxn_t *cxn) |
| Attempt to start a request on the retry queue. More... | |
| static void | ocs_iscsi_login_set_dslen (iscsi_hdr_dw2_t *dw, unsigned int count) |
| Fill in the data segment length in a PDU header. More... | |
| static char * | ocs_iscsi_login_find_key (char *key, char *text, unsigned int length) |
| Find a key within the passed login text. More... | |
| static ocs_login_key_t | ocs_iscsi_login_locate_key_locations (char *data, uint32_t data_len, uint32_t pos, uint32_t *equal_pos, uint32_t *null_pos) |
| Finds the next equal and null termination for the key. More... | |
| static int32_t | ocs_iscsi_login_find_value (char *text, const char *value) |
| Searches the list of comma-separated values for a specific value. More... | |
| static uint32_t | ocs_iscsi_login_send_key (ocs_cxn_t *cxn, ocs_login_key_t key, char *strptr, uint32_t avail_bytes) |
| Function to send iSCSI login keys. More... | |
| static int32_t | ocs_iscsi_login_recv_key (ocs_cxn_t *cxn, ocs_login_key_t key, char *value, uint8_t *status_detail) |
| Function to receive a login key and update the login structure. More... | |
| static ocs_sport_t * | ocs_iscsi_login_convert_tgt_name (ocs_cxn_t *cxn, char *tgt_name) |
| Convert a target name to a sport object. More... | |
| static int32_t | ocs_iscsi_login_check_first (ocs_cxn_t *cxn, iscsi_login_cmd_hdr_t *pi, uint8_t *status, uint8_t *status_detail, char *data, uint32_t data_len) |
| Function to validate the initial login PDU. More... | |
| static uint32_t | ocs_iscsi_login_negotiate (ocs_cxn_t *cxn, uint8_t phase, uint8_t *status, uint8_t *status_detail, char *recv, uint32_t recv_len, char *rsp, uint32_t rsp_size) |
| Function to negotiate iSCSI keys. More... | |
| static uint32_t | ocs_iscsi_login_convert_hexstring_to_bin (char *hex_str, uint8_t *bin, uint32_t nbytes) |
| Function to negotiate CHAP keys. More... | |
| static int32_t | ocs_iscsi_login_negotiate_chap_tgt (ocs_cxn_t *cxn, uint8_t *status, uint8_t *status_detail, char *rsp, uint32_t rsp_size, uint32_t *rsp_len) |
| Function to negotiate CHAP keys on a target connection. More... | |
| static int32_t | ocs_iscsi_login_negotiate_chap_ini (ocs_cxn_t *cxn, uint8_t *status, uint8_t *status_detail, char *rsp, uint32_t rsp_size, uint32_t *rsp_len) |
| Function to negotiate CHAP keys on an initiator connection. More... | |
| static int32_t | ocs_iscsi_recv_common_queue (ocs_cxn_t *cxn, ocs_iscsi_retry_type_e type, ocs_hal_rq_buffer_t *hdr, uint32_t hdr_len, ocs_hal_rq_buffer_t *data, uint32_t data_len) |
| Function to queue a receive request. More... | |
| static ocs_cxn_q_cbit_t * | ocs_iscsi_cbit_pdu_setup (ocs_cxn_t *cxn, ocs_hal_rq_buffer_t *hdr, ocs_hal_rq_buffer_t *data, uint32_t data_len, uint8_t *status, uint8_t *status_detail, char **recv_ptr, uint32_t *recv_len, char **resp_ptr, uint32_t *resp_size) |
| Does the initial checks and processing for the continue bit. More... | |
| static void | ocs_iscsi_cbit_fill_buffer (ocs_cxn_t *cxn, uint8_t status, uint32_t *len) |
| Copies the appropriate send data from the c bit processing. More... | |
| static void | ocs_iscsi_cbit_backout (ocs_cxn_t *cxn, ocs_cxn_q_cbit_t *cbit) |
| Backs out the adding of a cbit object on this connection. More... | |
| void | ocs_iscsi_cbit_cleanup (ocs_cxn_t *cxn) |
| Sends the login parameters to the firmware. More... | |
| ocs_pdu_process_rtn_e | ocs_iscsi_recv_login (ocs_cxn_t *cxn, ocs_hal_rq_buffer_t *hdr, uint32_t hdr_len, ocs_hal_rq_buffer_t *data, uint32_t data_len) |
| Function to process a login PDU on a target. More... | |
| static int32_t | ocs_iscsi_send_login_rsp_invalid_during_login_queue (ocs_cxn_t *cxn, uint32_t itt) |
| Function to queue a send login request. More... | |
| int32_t | ocs_iscsi_send_login_rsp_invalid_during_login (ocs_cxn_t *cxn, uint32_t itt) |
| Function to send an login Response PDU (invalid during login). More... | |
| int32_t | ocs_iscsi_recv_login_rsp (ocs_cxn_t *cxn, ocs_hal_rq_buffer_t *hdr, uint32_t hdr_len, ocs_hal_rq_buffer_t *data, uint32_t data_len) |
| Function to process a login response PDU. More... | |
| static int32_t | ocs_iscsi_send_login_queue (ocs_cxn_t *cxn, bool is_discovery, char *tgt_name) |
| Function to queue a send login request. More... | |
| int32_t | ocs_iscsi_send_login (ocs_cxn_t *cxn, bool is_discovery, char *tgt_name) |
| Function to send an initial login PDU. More... | |
| uint32_t | ocs_iscsi_add_cluster_tgt_keys (ocs_cxn_t *cxn, char *resp_ptr, uint32_t resp_size, uint32_t plen_orig) |
| Add iSCSI cluster target name and address. More... | |
| static int32_t | ocs_iscsi_add_tgt_keys (ocs_cxn_t *cxn, char *resp_ptr, uint32_t resp_size, uint32_t plen_orig, char *tgt_name) |
| Add targets to the sendTarget response. More... | |
| void | ocs_iscsi_ffp_text_timeout (void *arg) |
| This function is called to check for stalled text negotiations for a connection on a target. More... | |
| ocs_pdu_process_rtn_e | ocs_iscsi_recv_text (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 *reject_reason) |
| Function to process a text PDU. More... | |
| ocs_pdu_process_rtn_e | ocs_iscsi_recv_logout (ocs_cxn_t *cxn, ocs_hal_rq_buffer_t *hdr, uint32_t hdr_len) |
| Function to process a logout PDU. More... | |
| static int32_t | ocs_iscsi_send_logout_queue (ocs_cxn_t *cxn, uint8_t immediate, uint8_t reason_code) |
| Function to queue a send logout request. More... | |
| int32_t | ocs_iscsi_send_logout (ocs_cxn_t *cxn, uint8_t immediate, uint8_t reason_code) |
| Function to send a logout PDU. More... | |
| static int32_t | ocs_iscsi_send_logout_rsp_queue (ocs_cxn_t *cxn, uint8_t response, uint32_t itt) |
| Function to queue a send logout response request. More... | |
| int32_t | ocs_iscsi_send_logout_rsp (ocs_cxn_t *cxn, uint8_t response, uint32_t itt) |
| Function to send a logout response PDU. More... | |
| int32_t | ocs_iscsi_recv_logout_rsp (ocs_cxn_t *cxn, ocs_hal_rq_buffer_t *hdr, uint32_t hdr_len) |
| Handle logout response from a target. More... | |
| static int32_t | ocs_iscsi_send_nop_out_queue (ocs_cxn_t *cxn, uint64_t lun, uint32_t itt, uint32_t ttt, char *data_ptr, uint32_t data_len) |
| Function to queue a send nop-out request. More... | |
| int32_t | ocs_iscsi_send_nop_out (ocs_cxn_t *cxn, uint64_t lun, uint32_t itt, uint32_t ttt, char *data_ptr, uint32_t data_len) |
| Send NOP-Out from an initiator. More... | |
| static int32_t | ocs_iscsi_send_nop_in_queue (ocs_cxn_t *cxn, uint64_t lun, uint32_t itt, uint32_t ttt, char *data_ptr, uint32_t data_len) |
| Function to queue a send nop-in request. More... | |
| int32_t | ocs_iscsi_send_nop_in (ocs_cxn_t *cxn, uint64_t lun, uint32_t itt, uint32_t ttt, char *data_ptr, uint32_t data_len) |
| Send NOP-In from a target. More... | |
| int32_t | ocs_iscsi_recv_nop_in (ocs_cxn_t *cxn, ocs_hal_rq_buffer_t *hdr, uint32_t hdr_len, ocs_hal_rq_buffer_t *data, uint32_t data_len) |
| Handle NOP-IN from a target. More... | |
| ocs_pdu_process_rtn_e | ocs_iscsi_recv_nop_out (ocs_cxn_t *cxn, ocs_hal_rq_buffer_t *hdr, uint32_t hdr_len, ocs_hal_rq_buffer_t *data, uint32_t data_len) |
| Handle NOP-OUT from an initiator. More... | |
| static int32_t | ocs_iscsi_send_reject_queue (ocs_cxn_t *cxn, void *hdr, uint32_t hdr_len, uint8_t reason) |
| Function to queue a send reject request. More... | |
| int32_t | ocs_iscsi_send_reject (ocs_cxn_t *cxn, void *hdr, uint32_t hdr_len, uint8_t reason) |
| Sends a reject PDU for the supplied PDU header. More... | |
| static int32_t | ocs_iscsi_send_async_queue (ocs_cxn_t *cxn, void *payload, uint32_t payload_len, uint8_t reason, uint64_t lun, uint16_t param1, uint16_t param2, uint16_t param3) |
| Function to queue an asynchronous request. More... | |
| int32_t | ocs_iscsi_send_async (ocs_cxn_t *cxn, void *payload, uint32_t payload_len, uint8_t reason, uint64_t lun, uint16_t param1, uint16_t param2, uint16_t param3) |
| Sends a asynchronous PDU with an optional payload. More... | |
Variables | |
| const ocs_login_key_def_t | ocs_login_key_defs [KEY_MAX] |
| static const char | chap [] = "CHAP" |
| static const char | none [] = "None" |
| static const char | crc32c [] = "CRC32C" |
| static const char | yes [] = "Yes" |
| static const char | no [] = "No" |
| static const char | all [] = "All" |
| static const char | rfc3720 [] = "RFC3720" |
| static const char | irrelevant [] = "Irrelevant" |
| #define OCS_TEXT_TIMEOUT_MS (1 * 1000) /* 1 second */ |
Definition at line 56 of file ocs_login.c.
| uint32_t ocs_iscsi_add_cluster_tgt_keys | ( | ocs_cxn_t * | cxn, |
| char * | resp_ptr, | ||
| uint32_t | resp_size, | ||
| uint32_t | plen_orig | ||
| ) |
Add iSCSI cluster target name and address.
| cxn | Pointer to the connection object. |
| resp_ptr | Pointer to the start of the response buffer. |
| resp_size | Size of the response buffer. |
| plen_orig | Payload length added so far. |
Definition at line 3357 of file ocs_login.c.
| void ocs_iscsi_ffp_text_timeout | ( | void * | arg | ) |
This function is called to check for stalled text negotiations for a connection on a target.
| arg | Pointer to the connection object. |
Definition at line 3496 of file ocs_login.c.
|
static |
Return a login buffer to the pre-allocated pool.
| cxn | Pointer to the connection object. |
Definition at line 328 of file ocs_login.c.
|
static |
Get an available login buffer from the pre-allocated pool.
| cxn | Pointer to the connection object. |
Definition at line 309 of file ocs_login.c.
| int32_t ocs_iscsi_login_cb_free_lgn_mem | ( | ocs_hal_io_t * | io, |
| ocs_cxn_t * | cxn, | ||
| int32_t | status, | ||
| ocs_ini_cmpl_fields_t * | ini_fields, | ||
| void * | ul_arg | ||
| ) |
Definition at line 4968 of file ocs_login.c.
| int32_t ocs_iscsi_login_cb_no_lgn_mem | ( | ocs_hal_io_t * | io, |
| ocs_cxn_t * | cxn, | ||
| int32_t | status, | ||
| ocs_ini_cmpl_fields_t * | ini_fields, | ||
| void * | ul_arg | ||
| ) |
Function to free resources for login responses.
| io | Pointer to the io object. |
| cxn | Pointer to the connection object. |
| status | Status of the IO (1 = good). |
| ini_fields | Pointer to the initiator completion fields. |
| ul_arg | Pointer to the login memory structure. |
Definition at line 4937 of file ocs_login.c.
|
static |
Function to validate the initial login PDU.
| cxn | Pointer to the connection object. |
| pi | Pointer to the inbound PDU header. |
| status | Returns the login status based on the received keys. |
| status_detail | Returns the login status detail based on the received keys. |
| data | Pointer to the payload data. |
| data_len | Length of the data received. |
Definition at line 1404 of file ocs_login.c.
|
static |
Converts binary to an ASCII hex string.
| bin | Pointer to the binary array. |
| nbytes | Number of bytes to convert. |
| str | Pointer to the output string. |
| max_str | Maximum size string allowed. |
Definition at line 1738 of file ocs_login.c.
|
static |
Function to negotiate CHAP keys.
| hex_str | Pointer to the hex string. |
| bin | Pointer to the binary array. |
| nbytes | Number of bytes in the binary array. |
Definition at line 1762 of file ocs_login.c.
|
static |
Convert a target name to a sport object.
| cxn | Pointer to the connection object. |
| tgt_name | Target name string. |
Definition at line 1369 of file ocs_login.c.
|
static |
Find a key within the passed login text.
| key | Pointer to the requested key. |
| text | Pointer to the text to search. |
| length | Length of the text buffer. |
Definition at line 576 of file ocs_login.c.
|
static |
Searches the list of comma-separated values for a specific value.
| text | Pointer to the return from ocs_iscsi_login_find_key(). |
| value | Pointer to the value to find. |
Definition at line 692 of file ocs_login.c.
|
static |
Finds the next equal and null termination for the key.
| data | Pointer to the payload data. |
| data_len | Length of the data received. |
| pos | Current position in the payload. |
| equal_pos | Returns the position of the equal sign. |
| null_pos | Returns the position of the null termination character (may include padding bytes). |
Definition at line 626 of file ocs_login.c.
|
static |
Function to negotiate iSCSI keys.
| cxn | Pointer to the connection object. |
| phase | Login phase being negotiated. |
| status | Returns the login status based on the received keys. |
| status_detail | Returns the login status detail based on the received keys. |
| recv | Pointer to the payload data. |
| recv_len | Length of the data received. |
| rsp | Pointer to the the login response payload. |
| rsp_size | Maximum size of the response. |
Definition at line 1582 of file ocs_login.c.
|
static |
Function to negotiate CHAP keys on an initiator connection.
| cxn | Pointer to the connection object. |
| status | Returns the login status based on the received keys. |
| status_detail | Returns the login status detail based on the received keys. |
| rsp | Pointer to the login response payload. |
| rsp_size | Maximum size of the response payload. |
| rsp_len | Pointer to the current length of the response. |
Definition at line 2012 of file ocs_login.c.
|
static |
Function to negotiate CHAP keys on a target connection.
| cxn | Pointer to the connection object. |
| status | Returns the login status based on the received keys. |
| status_detail | Returns the login status detail based on the received keys. |
| rsp | Pointer to the the login response payload. |
| rsp_size | Maximum size of the response payload. |
| rsp_len | Pointer to the current length of the response. |
Definition at line 1816 of file ocs_login.c.
|
static |
Function to receive a login key and update the login structure.
| cxn | Pointer to the connection object. |
| key | Login key enum that was received. |
| value | Value sent for the key. |
| status_detail | Returns the status detail field if an error occurs. |
Definition at line 1011 of file ocs_login.c.
|
static |
Allocate the iSCSI retry buffers and add them to the pool.
| iscsi | Pointer to the iSCSI object. |
Definition at line 354 of file ocs_login.c.
|
static |
Free the iSCSI login retry buffers.
| iscsi | Pointer to the iSCSI object. |
Definition at line 379 of file ocs_login.c.
|
static |
Return a login retry buffer to the pre-allocated pool.
| iscsi | Pointer to the iSCSI object. |
| retry | Pointer to the login retry object. |
Definition at line 542 of file ocs_login.c.
|
static |
Get an available retry buffer from the pre-allocated pool.
| iscsi | Pointer to the iSCSI object. |
Definition at line 515 of file ocs_login.c.
|
static |
Function to send iSCSI login keys.
| cxn | Pointer to the connection object. |
| key | Login key to send. |
| strptr | Pointer of where to place output. |
| avail_bytes | Number of bytes remaining in the payload. |
Definition at line 725 of file ocs_login.c.
|
static |
Fill in the data segment length in a PDU header.
| dw | Pointer to the dword in the BHS. |
| count | Data segment length. |
Definition at line 558 of file ocs_login.c.
| int32_t ocs_iscsi_login_tgt_nop_cb_free_lgn_mem | ( | ocs_hal_io_t * | io, |
| ocs_cxn_t * | cxn, | ||
| int32_t | status, | ||
| ocs_ini_cmpl_fields_t * | ini_fields, | ||
| void * | ul_arg | ||
| ) |
Function to target NOP completions.
| io | Pointer to the io object. |
| cxn | Pointer to the connection object. |
| status | Status of the IO (1 = good). |
| ini_fields | Pointer to the initiator completion fields. |
| ul_arg | Pointer to the login memory structure. |
Definition at line 4887 of file ocs_login.c.
| int32_t ocs_iscsi_login_tgt_nop_cb_no_lgn_mem | ( | ocs_hal_io_t * | io, |
| ocs_cxn_t * | cxn, | ||
| int32_t | status, | ||
| ocs_ini_cmpl_fields_t * | ini_fields, | ||
| void * | ul_arg | ||
| ) |
Function to target NOP completions.
| io | Pointer to the io object. |
| cxn | Pointer to the connection object. |
| status | Status of the IO (1 = good). |
| ini_fields | Pointer to the initiator completion fields. |
| ul_arg | Pointer to the login memory structure. |
Definition at line 4912 of file ocs_login.c.
|
static |
Function to queue a receive request.
| cxn | Pointer to the connection object. |
| type | Type of request being queued. |
| hdr | DMA memory information for the header. |
| hdr_len | Length of the header received. |
| data | DMA memory information for the data. |
| data_len | Length of the data received. |
Definition at line 2194 of file ocs_login.c.
| int32_t ocs_iscsi_send_async | ( | ocs_cxn_t * | cxn, |
| void * | payload, | ||
| uint32_t | payload_len, | ||
| uint8_t | reason, | ||
| uint64_t | lun, | ||
| uint16_t | param1, | ||
| uint16_t | param2, | ||
| uint16_t | param3 | ||
| ) |
Sends a asynchronous PDU with an optional payload.
| cxn | Pointer to the connection object. |
| payload | Virtual memory containing the payload to send. |
| payload_len | Length of the payload to send. |
| reason | The iSCSI asynchronous reason. |
| lun | SCSI LUN. |
| param1 | Parameter 1 in the asynchronous PDU. |
| param2 | Parameter 2 in the asynchronous PDU. |
| param3 | Parameter 3 in the asynchronous PDU. |
Definition at line 4792 of file ocs_login.c.
| int32_t ocs_iscsi_send_login | ( | ocs_cxn_t * | cxn, |
| bool | is_discovery, | ||
| char * | tgt_name | ||
| ) |
Function to send an initial login PDU.
| cxn | Pointer to the connection object. |
| is_discovery | TRUE for a discovery session. |
| tgt_name | Target name for a normal session. |
Definition at line 3182 of file ocs_login.c.
| int32_t ocs_iscsi_send_login_rsp_invalid_during_login | ( | ocs_cxn_t * | cxn, |
| uint32_t | itt | ||
| ) |
Function to send an login Response PDU (invalid during login).
| cxn | Pointer to the connection object. |
| itt | Initiator task tag of the received PDU. |
Definition at line 2815 of file ocs_login.c.
|
static |
Function to queue a send logout request.
| cxn | Pointer to the connection object. |
| immediate | TRUE if sending as an immediate command. |
| reason_code | The logout reason. |
Definition at line 3958 of file ocs_login.c.
|
static |
Function to queue a send logout response request.
| cxn | Pointer to the connection object. |
| response | Logout response per the iSCSI specification. |
| itt | Initiator task tag of the logout request. |
Definition at line 4061 of file ocs_login.c.
|
static |
Function to queue a send nop-in request.
| cxn | pointer to the connection object |
| lun | the lun for the PDU (Host byte order) |
| itt | the initiator task tag (Host byte order) |
| ttt | the target transfer tag (Host byte order) |
| data_ptr | pointer to the payload data (may be NULL) |
| data_len | length of the payload data |
Definition at line 4354 of file ocs_login.c.
|
static |
Function to queue a send nop-out request.
| cxn | Pointer to the connection object. |
| lun | LUN for the PDU (Host byte order). |
| itt | Initiator task tag (Host byte order). |
| ttt | Target transfer tag (Host byte order). |
| data_ptr | Pointer to the payload data (may be NULL). |
| data_len | Length of the payload data. |
Definition at line 4200 of file ocs_login.c.
| int32_t ocs_iscsi_send_reject | ( | ocs_cxn_t * | cxn, |
| void * | hdr, | ||
| uint32_t | hdr_len, | ||
| uint8_t | reason | ||
| ) |
Sends a reject PDU for the supplied PDU header.
| cxn | Pointer to the connection object. |
| hdr | Virtual memory information for the rejected header. |
| hdr_len | Length of the header received. |
| reason | The iSCSI reject reason. |
Definition at line 4652 of file ocs_login.c.
|
static |
Definition at line 154 of file ocs_login.c.
|
static |
Definition at line 149 of file ocs_login.c.
|
static |
Definition at line 151 of file ocs_login.c.
|
static |
Definition at line 156 of file ocs_login.c.
|
static |
Definition at line 153 of file ocs_login.c.
|
static |
Definition at line 150 of file ocs_login.c.
| const ocs_login_key_def_t ocs_login_key_defs[KEY_MAX] |
Definition at line 58 of file ocs_login.c.
|
static |
Definition at line 155 of file ocs_login.c.
|
static |
Definition at line 152 of file ocs_login.c.