Loading drivers/net/enic/enic.h +1 −1 Original line number Diff line number Diff line Loading @@ -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 Loading drivers/net/enic/enic_main.c +23 −10 Original line number Diff line number Diff line Loading @@ -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); Loading @@ -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 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_LINUX_PROV_TLV_CLIENT_MAC_ADDR, ETH_ALEN, mac); 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) Loading drivers/net/enic/vnic_vic.h +23 −8 Original line number Diff line number Diff line Loading @@ -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 { Loading Loading
drivers/net/enic/enic.h +1 −1 Original line number Diff line number Diff line Loading @@ -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 Loading
drivers/net/enic/enic_main.c +23 −10 Original line number Diff line number Diff line Loading @@ -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); Loading @@ -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 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_LINUX_PROV_TLV_CLIENT_MAC_ADDR, ETH_ALEN, mac); 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) Loading
drivers/net/enic/vnic_vic.h +23 −8 Original line number Diff line number Diff line Loading @@ -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 { Loading