[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 committed by James Bottomley
parent 7af074dc9d
commit f926a05f5c
5 changed files with 33 additions and 2 deletions

View file

@ -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),

View file

@ -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)
{

View file

@ -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);

View file

@ -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;

View file

@ -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 */