[SCSI] bfa: FCS authentication related changes.

Made FCS authentication related changes to state machines and header
files.

Made changes in FCS state machines to handle the case when secret
string is NULL.

Signed-off-by: Krishna Gudipati <kgudipat@brocade.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
This commit is contained in:
Krishna Gudipati 2010-03-05 19:36:00 -08:00 коммит произвёл James Bottomley
Родитель 7af074dc9d
Коммит f926a05f5c
5 изменённых файлов: 33 добавлений и 2 удалений

Просмотреть файл

@ -931,6 +931,8 @@ bfa_fcs_port_get_attr(struct bfa_fcs_port_s *port,
if (port->fabric) {
port_attr->port_type = bfa_fcs_fabric_port_type(port->fabric);
port_attr->loopback = bfa_fcs_fabric_is_loopback(port->fabric);
port_attr->authfail =
bfa_fcs_fabric_is_auth_failed(port->fabric);
port_attr->fabric_name = bfa_fcs_port_get_fabric_name(port);
memcpy(port_attr->fabric_ip_addr,
bfa_fcs_port_get_fabric_ipaddr(port),

Просмотреть файл

@ -895,6 +895,12 @@ bfa_fcs_fabric_is_loopback(struct bfa_fcs_fabric_s *fabric)
return bfa_sm_cmp_state(fabric, bfa_fcs_fabric_sm_loopback);
}
bfa_boolean_t
bfa_fcs_fabric_is_auth_failed(struct bfa_fcs_fabric_s *fabric)
{
return bfa_sm_cmp_state(fabric, bfa_fcs_fabric_sm_auth_failed);
}
enum bfa_pport_type
bfa_fcs_fabric_port_type(struct bfa_fcs_fabric_s *fabric)
{

Просмотреть файл

@ -47,6 +47,7 @@ void bfa_fcs_fabric_uf_recv(struct bfa_fcs_fabric_s *fabric,
struct fchs_s *fchs, u16 len);
u16 bfa_fcs_fabric_vport_count(struct bfa_fcs_fabric_s *fabric);
bfa_boolean_t bfa_fcs_fabric_is_loopback(struct bfa_fcs_fabric_s *fabric);
bfa_boolean_t bfa_fcs_fabric_is_auth_failed(struct bfa_fcs_fabric_s *fabric);
enum bfa_pport_type bfa_fcs_fabric_port_type(struct bfa_fcs_fabric_s *fabric);
void bfa_fcs_fabric_psymb_init(struct bfa_fcs_fabric_s *fabric);
void bfa_fcs_fabric_port_delete_comp(struct bfa_fcs_fabric_s *fabric);

Просмотреть файл

@ -23,6 +23,7 @@
#define PRIVATE_KEY 19009
#define KEY_LEN 32399
#define BFA_AUTH_SECRET_STRING_LEN 256
#define BFA_AUTH_FAIL_NO_PASSWORD 0xFE
#define BFA_AUTH_FAIL_TIMEOUT 0xFF
/**
@ -41,6 +42,27 @@ enum bfa_auth_status {
BFA_AUTH_STATUS_UNKNOWN = 9, /* authentication status unknown */
};
enum bfa_auth_rej_code {
BFA_AUTH_RJT_CODE_AUTH_FAILURE = 1, /* auth failure */
BFA_AUTH_RJT_CODE_LOGICAL_ERR = 2, /* logical error */
};
/**
* Authentication reject codes
*/
enum bfa_auth_rej_code_exp {
BFA_AUTH_MECH_NOT_USABLE = 1, /* auth. mechanism not usable */
BFA_AUTH_DH_GROUP_NOT_USABLE = 2, /* DH Group not usable */
BFA_AUTH_HASH_FUNC_NOT_USABLE = 3, /* hash Function not usable */
BFA_AUTH_AUTH_XACT_STARTED = 4, /* auth xact started */
BFA_AUTH_AUTH_FAILED = 5, /* auth failed */
BFA_AUTH_INCORRECT_PLD = 6, /* incorrect payload */
BFA_AUTH_INCORRECT_PROTO_MSG = 7, /* incorrect proto msg */
BFA_AUTH_RESTART_AUTH_PROTO = 8, /* restart auth protocol */
BFA_AUTH_AUTH_CONCAT_NOT_SUPP = 9, /* auth concat not supported */
BFA_AUTH_PROTO_VER_NOT_SUPP = 10,/* proto version not supported */
};
struct auth_proto_stats_s {
u32 auth_rjts;
u32 auth_negs;

Просмотреть файл

@ -232,7 +232,7 @@ struct bfa_pport_attr_s {
u32 pid; /* port ID */
enum bfa_pport_type port_type; /* current topology */
u32 loopback; /* external loopback */
u32 rsvd1;
u32 authfail; /* auth fail state */
u32 rsvd2; /* padding for 64 bit */
};
@ -247,7 +247,7 @@ struct bfa_pport_fc_stats_s {
u64 rx_words; /* received words */
u64 lip_count; /* LIPs seen */
u64 nos_count; /* NOS count */
u64 error_frames; /* errored frames (sent?) */
u64 error_frames; /* errored frames */
u64 dropped_frames; /* dropped frames */
u64 link_failures; /* link failure count */
u64 loss_of_syncs; /* loss of sync count */