diff options
Diffstat (limited to 'drivers/net/enic/vnic_vic.h')
-rw-r--r-- | drivers/net/enic/vnic_vic.h | 44 |
1 files changed, 34 insertions, 10 deletions
diff --git a/drivers/net/enic/vnic_vic.h b/drivers/net/enic/vnic_vic.h index 7e46e5e8600f..9ef81f148351 100644 --- a/drivers/net/enic/vnic_vic.h +++ b/drivers/net/enic/vnic_vic.h | |||
@@ -24,14 +24,30 @@ | |||
24 | /* Note: String field lengths include null char */ | 24 | /* Note: String field lengths include null char */ |
25 | 25 | ||
26 | #define VIC_PROVINFO_CISCO_OUI { 0x00, 0x00, 0x0c } | 26 | #define VIC_PROVINFO_CISCO_OUI { 0x00, 0x00, 0x0c } |
27 | #define VIC_PROVINFO_LINUX_TYPE 0x2 | 27 | #define VIC_PROVINFO_GENERIC_TYPE 0x4 |
28 | 28 | ||
29 | enum vic_linux_prov_tlv_type { | 29 | enum vic_generic_prov_tlv_type { |
30 | VIC_LINUX_PROV_TLV_PORT_PROFILE_NAME_STR = 0, | 30 | VIC_GENERIC_PROV_TLV_PORT_PROFILE_NAME_STR = 0, |
31 | VIC_LINUX_PROV_TLV_CLIENT_MAC_ADDR = 1, /* u8[6] */ | 31 | VIC_GENERIC_PROV_TLV_CLIENT_MAC_ADDR = 1, |
32 | VIC_LINUX_PROV_TLV_CLIENT_NAME_STR = 2, | 32 | VIC_GENERIC_PROV_TLV_CLIENT_NAME_STR = 2, |
33 | VIC_LINUX_PROV_TLV_HOST_UUID_STR = 8, | 33 | VIC_GENERIC_PROV_TLV_CLUSTER_PORT_NAME_STR = 3, |
34 | VIC_LINUX_PROV_TLV_CLIENT_UUID_STR = 9, | 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, | ||
35 | }; | 51 | }; |
36 | 52 | ||
37 | struct vic_provinfo { | 53 | struct vic_provinfo { |
@@ -46,14 +62,22 @@ struct vic_provinfo { | |||
46 | } tlv[0]; | 62 | } tlv[0]; |
47 | } __packed; | 63 | } __packed; |
48 | 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 | |||
49 | #define VIC_PROVINFO_MAX_DATA 1385 | 72 | #define VIC_PROVINFO_MAX_DATA 1385 |
50 | #define VIC_PROVINFO_MAX_TLV_DATA (VIC_PROVINFO_MAX_DATA - \ | 73 | #define VIC_PROVINFO_MAX_TLV_DATA (VIC_PROVINFO_MAX_DATA - \ |
51 | sizeof(struct vic_provinfo)) | 74 | sizeof(struct vic_provinfo)) |
52 | 75 | ||
53 | struct vic_provinfo *vic_provinfo_alloc(gfp_t flags, u8 *oui, u8 type); | 76 | struct vic_provinfo *vic_provinfo_alloc(gfp_t flags, const u8 *oui, |
77 | const u8 type); | ||
54 | void vic_provinfo_free(struct vic_provinfo *vp); | 78 | void vic_provinfo_free(struct vic_provinfo *vp); |
55 | int vic_provinfo_add_tlv(struct vic_provinfo *vp, u16 type, u16 length, | 79 | int vic_provinfo_add_tlv(struct vic_provinfo *vp, u16 type, u16 length, |
56 | void *value); | 80 | const void *value); |
57 | size_t vic_provinfo_size(struct vic_provinfo *vp); | 81 | size_t vic_provinfo_size(struct vic_provinfo *vp); |
58 | 82 | ||
59 | #endif /* _VNIC_VIC_H_ */ | 83 | #endif /* _VNIC_VIC_H_ */ |