Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 224990
b: refs/heads/master
c: 6c2c9d9
h: refs/heads/master
v: v3
  • Loading branch information
Roopa Prabhu authored and David S. Miller committed Dec 11, 2010
1 parent d69b222 commit e74641a
Show file tree
Hide file tree
Showing 4 changed files with 48 additions and 20 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 36accaed22347f4b09cbc3c9fe2c1163a3575ea1
refs/heads/master: 6c2c9d964e71770e7d6efc1a82f3621005d12185
2 changes: 1 addition & 1 deletion trunk/drivers/net/enic/enic.h
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@

#define DRV_NAME "enic"
#define DRV_DESCRIPTION "Cisco VIC Ethernet NIC Driver"
#define DRV_VERSION "1.4.1.9"
#define DRV_VERSION "1.4.1.10"
#define DRV_COPYRIGHT "Copyright 2008-2010 Cisco Systems, Inc"

#define ENIC_BARS_MAX 6
Expand Down
33 changes: 23 additions & 10 deletions trunk/drivers/net/enic/enic_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -1252,7 +1252,10 @@ static int enic_set_port_profile(struct enic *enic, u8 *mac)
{
struct vic_provinfo *vp;
u8 oui[3] = VIC_PROVINFO_CISCO_OUI;
u16 os_type = VIC_GENERIC_PROV_OS_TYPE_LINUX;
char uuid_str[38];
char client_mac_str[18];
u8 *client_mac;
int err;

err = enic_vnic_dev_deinit(enic);
Expand All @@ -1270,37 +1273,47 @@ static int enic_set_port_profile(struct enic *enic, u8 *mac)
return -EADDRNOTAVAIL;

vp = vic_provinfo_alloc(GFP_KERNEL, oui,
VIC_PROVINFO_LINUX_TYPE);
VIC_PROVINFO_GENERIC_TYPE);
if (!vp)
return -ENOMEM;

vic_provinfo_add_tlv(vp,
VIC_LINUX_PROV_TLV_PORT_PROFILE_NAME_STR,
VIC_GENERIC_PROV_TLV_PORT_PROFILE_NAME_STR,
strlen(enic->pp.name) + 1, enic->pp.name);

if (!is_zero_ether_addr(enic->pp.mac_addr))
vic_provinfo_add_tlv(vp,
VIC_LINUX_PROV_TLV_CLIENT_MAC_ADDR,
ETH_ALEN, enic->pp.mac_addr);
client_mac = enic->pp.mac_addr;
else
vic_provinfo_add_tlv(vp,
VIC_LINUX_PROV_TLV_CLIENT_MAC_ADDR,
ETH_ALEN, mac);
client_mac = mac;

vic_provinfo_add_tlv(vp,
VIC_GENERIC_PROV_TLV_CLIENT_MAC_ADDR,
ETH_ALEN, client_mac);

sprintf(client_mac_str, "%pM", client_mac);
vic_provinfo_add_tlv(vp,
VIC_GENERIC_PROV_TLV_CLUSTER_PORT_UUID_STR,
sizeof(client_mac_str), client_mac_str);

if (enic->pp.set & ENIC_SET_INSTANCE) {
sprintf(uuid_str, "%pUB", enic->pp.instance_uuid);
vic_provinfo_add_tlv(vp,
VIC_LINUX_PROV_TLV_CLIENT_UUID_STR,
VIC_GENERIC_PROV_TLV_CLIENT_UUID_STR,
sizeof(uuid_str), uuid_str);
}

if (enic->pp.set & ENIC_SET_HOST) {
sprintf(uuid_str, "%pUB", enic->pp.host_uuid);
vic_provinfo_add_tlv(vp,
VIC_LINUX_PROV_TLV_HOST_UUID_STR,
VIC_GENERIC_PROV_TLV_HOST_UUID_STR,
sizeof(uuid_str), uuid_str);
}

os_type = htons(os_type);
vic_provinfo_add_tlv(vp,
VIC_GENERIC_PROV_TLV_OS_TYPE,
sizeof(os_type), &os_type);

err = enic_dev_init_prov(enic, vp);
vic_provinfo_free(vp);
if (err)
Expand Down
31 changes: 23 additions & 8 deletions trunk/drivers/net/enic/vnic_vic.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,14 +24,29 @@
/* Note: String field lengths include null char */

#define VIC_PROVINFO_CISCO_OUI { 0x00, 0x00, 0x0c }
#define VIC_PROVINFO_LINUX_TYPE 0x2

enum vic_linux_prov_tlv_type {
VIC_LINUX_PROV_TLV_PORT_PROFILE_NAME_STR = 0,
VIC_LINUX_PROV_TLV_CLIENT_MAC_ADDR = 1, /* u8[6] */
VIC_LINUX_PROV_TLV_CLIENT_NAME_STR = 2,
VIC_LINUX_PROV_TLV_HOST_UUID_STR = 8,
VIC_LINUX_PROV_TLV_CLIENT_UUID_STR = 9,
#define VIC_PROVINFO_GENERIC_TYPE 0x4

enum vic_generic_prov_tlv_type {
VIC_GENERIC_PROV_TLV_PORT_PROFILE_NAME_STR = 0,
VIC_GENERIC_PROV_TLV_CLIENT_MAC_ADDR = 1,
VIC_GENERIC_PROV_TLV_CLIENT_NAME_STR = 2,
VIC_GENERIC_PROV_TLV_CLUSTER_PORT_NAME_STR = 3,
VIC_GENERIC_PROV_TLV_CLUSTER_PORT_UUID_STR = 4,
VIC_GENERIC_PROV_TLV_CLUSTER_UUID_STR = 5,
VIC_GENERIC_PROV_TLV_CLUSTER_NAME_STR = 7,
VIC_GENERIC_PROV_TLV_HOST_UUID_STR = 8,
VIC_GENERIC_PROV_TLV_CLIENT_UUID_STR = 9,
VIC_GENERIC_PROV_TLV_INCARNATION_NUMBER = 10,
VIC_GENERIC_PROV_TLV_OS_TYPE = 11,
VIC_GENERIC_PROV_TLV_OS_VENDOR = 12,
VIC_GENERIC_PROV_TLV_CLIENT_TYPE = 15,
};

enum vic_generic_prov_os_type {
VIC_GENERIC_PROV_OS_TYPE_UNKNOWN = 0,
VIC_GENERIC_PROV_OS_TYPE_ESX = 1,
VIC_GENERIC_PROV_OS_TYPE_LINUX = 2,
VIC_GENERIC_PROV_OS_TYPE_WINDOWS = 3,
};

struct vic_provinfo {
Expand Down

0 comments on commit e74641a

Please sign in to comment.