• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/scsi/bfa/include/defs/
1/*
2 * Copyright (c) 2005-2009 Brocade Communications Systems, Inc.
3 * All rights reserved
4 * www.brocade.com
5 *
6 * Linux driver for Brocade Fibre Channel Host Bus Adapter.
7 *
8 * This program is free software; you can redistribute it and/or modify it
9 * under the terms of the GNU General Public License (GPL) Version 2 as
10 * published by the Free Software Foundation
11 *
12 * This program is distributed in the hope that it will be useful, but
13 * WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15 * General Public License for more details.
16 */
17#ifndef __BFA_DEFS_AUTH_H__
18#define __BFA_DEFS_AUTH_H__
19
20#include <defs/bfa_defs_types.h>
21
22#define PUBLIC_KEY			15409
23#define PRIVATE_KEY			19009
24#define KEY_LEN				32399
25#define BFA_AUTH_SECRET_STRING_LEN	256
26#define BFA_AUTH_FAIL_NO_PASSWORD	0xFE
27#define BFA_AUTH_FAIL_TIMEOUT		0xFF
28
29/**
30 * Authentication status
31 */
32enum bfa_auth_status {
33	BFA_AUTH_STATUS_NONE 	= 0,	/*  no authentication */
34	BFA_AUTH_UNINIT 	= 1,	/*  state - uninit */
35	BFA_AUTH_NEG_SEND 	= 2,	/*  state - negotiate send */
36	BFA_AUTH_CHAL_WAIT 	= 3,	/*  state - challenge wait */
37	BFA_AUTH_NEG_RETRY 	= 4,	/*  state - negotiate retry */
38	BFA_AUTH_REPLY_SEND 	= 5,	/*  state - reply send */
39	BFA_AUTH_STATUS_WAIT 	= 6,	/*  state - status wait */
40	BFA_AUTH_SUCCESS 	= 7,	/*  state - success */
41	BFA_AUTH_FAILED 	= 8,	/*  state - failed */
42	BFA_AUTH_STATUS_UNKNOWN = 9,	/*  authentication status unknown */
43};
44
45enum bfa_auth_rej_code {
46	BFA_AUTH_RJT_CODE_AUTH_FAILURE   = 1, /* auth failure */
47	BFA_AUTH_RJT_CODE_LOGICAL_ERR    = 2, /* logical error */
48};
49
50/**
51 * Authentication reject codes
52 */
53enum bfa_auth_rej_code_exp {
54	BFA_AUTH_MECH_NOT_USABLE        = 1, /* auth. mechanism not usable */
55	BFA_AUTH_DH_GROUP_NOT_USABLE    = 2, /* DH Group not usable */
56	BFA_AUTH_HASH_FUNC_NOT_USABLE   = 3, /* hash Function not usable */
57	BFA_AUTH_AUTH_XACT_STARTED      = 4, /* auth xact started */
58	BFA_AUTH_AUTH_FAILED            = 5, /* auth failed */
59	BFA_AUTH_INCORRECT_PLD          = 6, /* incorrect payload */
60	BFA_AUTH_INCORRECT_PROTO_MSG    = 7, /* incorrect proto msg */
61	BFA_AUTH_RESTART_AUTH_PROTO     = 8, /* restart auth protocol */
62	BFA_AUTH_AUTH_CONCAT_NOT_SUPP   = 9, /* auth concat not supported */
63	BFA_AUTH_PROTO_VER_NOT_SUPP     = 10,/* proto version not supported */
64};
65
66struct auth_proto_stats_s {
67	u32        auth_rjts;
68	u32        auth_negs;
69	u32        auth_dones;
70
71	u32        dhchap_challenges;
72	u32        dhchap_replies;
73	u32        dhchap_successes;
74};
75
76/**
77 * Authentication related statistics
78 */
79struct bfa_auth_stats_s {
80	u32           auth_failures;	/*  authentication failures */
81	u32           auth_successes;	/*  authentication successes*/
82	struct auth_proto_stats_s auth_rx_stats; /*  Rx protocol stats */
83	struct auth_proto_stats_s auth_tx_stats; /*  Tx protocol stats */
84};
85
86/**
87 * Authentication hash function algorithms
88 */
89enum bfa_auth_algo {
90	BFA_AUTH_ALGO_MD5 	= 1,	/*  Message-Digest algorithm 5 */
91	BFA_AUTH_ALGO_SHA1 	= 2,	/*  Secure Hash Algorithm 1 */
92	BFA_AUTH_ALGO_MS 	= 3,	/*  MD5, then SHA-1 */
93	BFA_AUTH_ALGO_SM 	= 4,	/*  SHA-1, then MD5 */
94};
95
96/**
97 * DH Groups
98 *
99 * Current value could be combination of one or more of the following values
100 */
101enum bfa_auth_group {
102	BFA_AUTH_GROUP_DHNULL 	= 0,	/*  DH NULL (value == 0) */
103	BFA_AUTH_GROUP_DH768 	= 1,	/*  DH group 768 (value == 1) */
104	BFA_AUTH_GROUP_DH1024 	= 2,	/*  DH group 1024 (value == 2) */
105	BFA_AUTH_GROUP_DH1280 	= 4,	/*  DH group 1280 (value == 3) */
106	BFA_AUTH_GROUP_DH1536 	= 8,	/*  DH group 1536 (value == 4) */
107
108	BFA_AUTH_GROUP_ALL 	= 256	/*  Use default DH group order
109					 *    0, 1, 2, 3, 4 */
110};
111
112/**
113 * Authentication secret sources
114 */
115enum bfa_auth_secretsource {
116	BFA_AUTH_SECSRC_LOCAL 	= 1,	/*  locally configured */
117	BFA_AUTH_SECSRC_RADIUS 	= 2,	/*  use radius server */
118	BFA_AUTH_SECSRC_TACACS 	= 3,	/*  TACACS server */
119};
120
121/**
122 * Authentication attributes
123 */
124struct bfa_auth_attr_s {
125	enum bfa_auth_status 	status;
126	enum bfa_auth_algo 	algo;
127	enum bfa_auth_group 	dh_grp;
128	enum bfa_auth_rej_code  rjt_code;
129	enum bfa_auth_rej_code_exp rjt_code_exp;
130	u8			secret_set;
131	u8			resv[3];
132};
133
134#endif /* __BFA_DEFS_AUTH_H__ */
135