- patches.suse/slab-handle-memoryless-nodes-v2a.patch: Refresh.
[linux-flexiantxendom0-3.2.10.git] / drivers / scsi / bfa / include / defs / bfa_defs_auth.h
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_TIMEOUT           0xFF
27
28 /**
29  * Authentication status
30  */
31 enum bfa_auth_status {
32         BFA_AUTH_STATUS_NONE    = 0,    /*  no authentication */
33         BFA_AUTH_UNINIT         = 1,    /*  state - uninit */
34         BFA_AUTH_NEG_SEND       = 2,    /*  state - negotiate send */
35         BFA_AUTH_CHAL_WAIT      = 3,    /*  state - challenge wait */
36         BFA_AUTH_NEG_RETRY      = 4,    /*  state - negotiate retry */
37         BFA_AUTH_REPLY_SEND     = 5,    /*  state - reply send */
38         BFA_AUTH_STATUS_WAIT    = 6,    /*  state - status wait */
39         BFA_AUTH_SUCCESS        = 7,    /*  state - success */
40         BFA_AUTH_FAILED         = 8,    /*  state - failed */
41         BFA_AUTH_STATUS_UNKNOWN = 9,    /*  authentication status unknown */
42 };
43
44 struct auth_proto_stats_s {
45         u32        auth_rjts;
46         u32        auth_negs;
47         u32        auth_dones;
48
49         u32        dhchap_challenges;
50         u32        dhchap_replies;
51         u32        dhchap_successes;
52 };
53
54 /**
55  * Authentication related statistics
56  */
57 struct bfa_auth_stats_s {
58         u32           auth_failures;    /*  authentication failures */
59         u32           auth_successes;   /*  authentication successes*/
60         struct auth_proto_stats_s auth_rx_stats; /*  Rx protocol stats */
61         struct auth_proto_stats_s auth_tx_stats; /*  Tx protocol stats */
62 };
63
64 /**
65  * Authentication hash function algorithms
66  */
67 enum bfa_auth_algo {
68         BFA_AUTH_ALGO_MD5       = 1,    /*  Message-Digest algorithm 5 */
69         BFA_AUTH_ALGO_SHA1      = 2,    /*  Secure Hash Algorithm 1 */
70         BFA_AUTH_ALGO_MS        = 3,    /*  MD5, then SHA-1 */
71         BFA_AUTH_ALGO_SM        = 4,    /*  SHA-1, then MD5 */
72 };
73
74 /**
75  * DH Groups
76  *
77  * Current value could be combination of one or more of the following values
78  */
79 enum bfa_auth_group {
80         BFA_AUTH_GROUP_DHNULL   = 0,    /*  DH NULL (value == 0) */
81         BFA_AUTH_GROUP_DH768    = 1,    /*  DH group 768 (value == 1) */
82         BFA_AUTH_GROUP_DH1024   = 2,    /*  DH group 1024 (value == 2) */
83         BFA_AUTH_GROUP_DH1280   = 4,    /*  DH group 1280 (value == 3) */
84         BFA_AUTH_GROUP_DH1536   = 8,    /*  DH group 1536 (value == 4) */
85
86         BFA_AUTH_GROUP_ALL      = 256   /*  Use default DH group order
87                                          *    0, 1, 2, 3, 4 */
88 };
89
90 /**
91  * Authentication secret sources
92  */
93 enum bfa_auth_secretsource {
94         BFA_AUTH_SECSRC_LOCAL   = 1,    /*  locally configured */
95         BFA_AUTH_SECSRC_RADIUS  = 2,    /*  use radius server */
96         BFA_AUTH_SECSRC_TACACS  = 3,    /*  TACACS server */
97 };
98
99 /**
100  * Authentication attributes
101  */
102 struct bfa_auth_attr_s {
103         enum bfa_auth_status    status;
104         enum bfa_auth_algo      algo;
105         enum bfa_auth_group     dh_grp;
106         u16             rjt_code;
107         u16             rjt_code_exp;
108         u8                      secret_set;
109         u8                      resv[7];
110 };
111
112 #endif /* __BFA_DEFS_AUTH_H__ */