diff options
author | Jeff Kirsher <jeffrey.t.kirsher@intel.com> | 2011-05-14 01:20:35 -0400 |
---|---|---|
committer | Jeff Kirsher <jeffrey.t.kirsher@intel.com> | 2011-08-11 05:42:06 -0400 |
commit | a6a5580c4d90788d67a77c689d3ab22aa5eecfc3 (patch) | |
tree | 89080daf4b0b4939daadb807f19eca3e977d42cb /drivers/net/ethernet/cisco/enic/vnic_vic.h | |
parent | 9aa3283595451ca093500ff0977b106e1f465586 (diff) |
enic: Move the Cisco driver
Move the Cisco driver into drivers/net/ethernet/cisco/ and make the
necessary Kconfig and Makefile changes.
CC: Christian Benvenuti <benve@cisco.com>
CC: Vasanthy Kolluri <vkolluri@cisco.com>
CC: Roopa Prabhu <roprabhu@cisco.com>
CC: David Wang <dwang2@cisco.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Diffstat (limited to 'drivers/net/ethernet/cisco/enic/vnic_vic.h')
-rw-r--r-- | drivers/net/ethernet/cisco/enic/vnic_vic.h | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/drivers/net/ethernet/cisco/enic/vnic_vic.h b/drivers/net/ethernet/cisco/enic/vnic_vic.h new file mode 100644 index 000000000000..9ef81f148351 --- /dev/null +++ b/drivers/net/ethernet/cisco/enic/vnic_vic.h | |||
@@ -0,0 +1,83 @@ | |||
1 | /* | ||
2 | * Copyright 2010 Cisco Systems, Inc. All rights reserved. | ||
3 | * | ||
4 | * This program is free software; you may redistribute it and/or modify | ||
5 | * it under the terms of the GNU General Public License as published by | ||
6 | * the Free Software Foundation; version 2 of the License. | ||
7 | * | ||
8 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||
9 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | ||
10 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | ||
11 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS | ||
12 | * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN | ||
13 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | ||
14 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||
15 | * SOFTWARE. | ||
16 | * | ||
17 | */ | ||
18 | |||
19 | #ifndef _VNIC_VIC_H_ | ||
20 | #define _VNIC_VIC_H_ | ||
21 | |||
22 | /* Note: All integer fields in NETWORK byte order */ | ||
23 | |||
24 | /* Note: String field lengths include null char */ | ||
25 | |||
26 | #define VIC_PROVINFO_CISCO_OUI { 0x00, 0x00, 0x0c } | ||
27 | #define VIC_PROVINFO_GENERIC_TYPE 0x4 | ||
28 | |||
29 | enum vic_generic_prov_tlv_type { | ||
30 | VIC_GENERIC_PROV_TLV_PORT_PROFILE_NAME_STR = 0, | ||
31 | VIC_GENERIC_PROV_TLV_CLIENT_MAC_ADDR = 1, | ||
32 | VIC_GENERIC_PROV_TLV_CLIENT_NAME_STR = 2, | ||
33 | VIC_GENERIC_PROV_TLV_CLUSTER_PORT_NAME_STR = 3, | ||
34 | VIC_GENERIC_PROV_TLV_CLUSTER_PORT_UUID_STR = 4, | ||
35 | VIC_GENERIC_PROV_TLV_CLUSTER_UUID_STR = 5, | ||
36 | VIC_GENERIC_PROV_TLV_CLUSTER_NAME_STR = 7, | ||
37 | VIC_GENERIC_PROV_TLV_HOST_UUID_STR = 8, | ||
38 | VIC_GENERIC_PROV_TLV_CLIENT_UUID_STR = 9, | ||
39 | VIC_GENERIC_PROV_TLV_INCARNATION_NUMBER = 10, | ||
40 | VIC_GENERIC_PROV_TLV_OS_TYPE = 11, | ||
41 | VIC_GENERIC_PROV_TLV_OS_VENDOR = 12, | ||
42 | VIC_GENERIC_PROV_TLV_CLIENT_TYPE = 15, | ||
43 | }; | ||
44 | |||
45 | enum vic_generic_prov_os_type { | ||
46 | VIC_GENERIC_PROV_OS_TYPE_UNKNOWN = 0, | ||
47 | VIC_GENERIC_PROV_OS_TYPE_ESX = 1, | ||
48 | VIC_GENERIC_PROV_OS_TYPE_LINUX = 2, | ||
49 | VIC_GENERIC_PROV_OS_TYPE_WINDOWS = 3, | ||
50 | VIC_GENERIC_PROV_OS_TYPE_SOLARIS = 4, | ||
51 | }; | ||
52 | |||
53 | struct vic_provinfo { | ||
54 | u8 oui[3]; /* OUI of data provider */ | ||
55 | u8 type; /* provider-specific type */ | ||
56 | u32 length; /* length of data below */ | ||
57 | u32 num_tlvs; /* number of tlvs */ | ||
58 | struct vic_provinfo_tlv { | ||
59 | u16 type; | ||
60 | u16 length; | ||
61 | u8 value[0]; | ||
62 | } tlv[0]; | ||
63 | } __packed; | ||
64 | |||
65 | #define VIC_PROVINFO_ADD_TLV(vp, tlvtype, tlvlen, data) \ | ||
66 | do { \ | ||
67 | err = vic_provinfo_add_tlv(vp, tlvtype, tlvlen, data); \ | ||
68 | if (err) \ | ||
69 | goto add_tlv_failure; \ | ||
70 | } while (0) | ||
71 | |||
72 | #define VIC_PROVINFO_MAX_DATA 1385 | ||
73 | #define VIC_PROVINFO_MAX_TLV_DATA (VIC_PROVINFO_MAX_DATA - \ | ||
74 | sizeof(struct vic_provinfo)) | ||
75 | |||
76 | struct vic_provinfo *vic_provinfo_alloc(gfp_t flags, const u8 *oui, | ||
77 | const u8 type); | ||
78 | void vic_provinfo_free(struct vic_provinfo *vp); | ||
79 | int vic_provinfo_add_tlv(struct vic_provinfo *vp, u16 type, u16 length, | ||
80 | const void *value); | ||
81 | size_t vic_provinfo_size(struct vic_provinfo *vp); | ||
82 | |||
83 | #endif /* _VNIC_VIC_H_ */ | ||