diff options
author | Scott Feldman <scofeldm@cisco.com> | 2010-05-18 01:50:19 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-05-18 01:50:19 -0400 |
commit | f8bd909183acffad68780b10c1cdf36161cfd5d1 (patch) | |
tree | aefec6e6f1e67e93bc1b2ec223f974a4cd34f00f /drivers/net/enic/enic.h | |
parent | 57b610805ce92dbd79fc97509f80fa5391b99623 (diff) |
net: Add ndo_{set|get}_vf_port support for enic dynamic vnics
Add enic ndo_{set|get}_vf_port ops to support setting/getting
port-profile for enic dynamic devices. Enic dynamic devices are just like
normal enic eth devices except dynamic enics require an extra configuration
step to assign a port-profile identifier to the interface before the
interface is useable. Once a port-profile is assigned, link comes up on the
interface and is ready for I/O. The port-profile is used to configure the
network port assigned to the interface. The network port configuration
includes VLAN membership, QoS policies, and port security settings typical
of a data center network.
A dynamic enic initially has a zero-mac address. Before a port-profile is
assigned, a valid non-zero unicast mac address should be assign to the
dynamic enic interface.
Signed-off-by: Scott Feldman <scofeldm@cisco.com>
Signed-off-by: Roopa Prabhu <roprabhu@cisco.com>
Diffstat (limited to 'drivers/net/enic/enic.h')
-rw-r--r-- | drivers/net/enic/enic.h | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/net/enic/enic.h b/drivers/net/enic/enic.h index 5fa56f1e5590..85f2a2e7030a 100644 --- a/drivers/net/enic/enic.h +++ b/drivers/net/enic/enic.h | |||
@@ -34,7 +34,7 @@ | |||
34 | 34 | ||
35 | #define DRV_NAME "enic" | 35 | #define DRV_NAME "enic" |
36 | #define DRV_DESCRIPTION "Cisco VIC Ethernet NIC Driver" | 36 | #define DRV_DESCRIPTION "Cisco VIC Ethernet NIC Driver" |
37 | #define DRV_VERSION "1.3.1.1" | 37 | #define DRV_VERSION "1.3.1.1-pp" |
38 | #define DRV_COPYRIGHT "Copyright 2008-2009 Cisco Systems, Inc" | 38 | #define DRV_COPYRIGHT "Copyright 2008-2009 Cisco Systems, Inc" |
39 | #define PFX DRV_NAME ": " | 39 | #define PFX DRV_NAME ": " |
40 | 40 | ||
@@ -74,6 +74,13 @@ struct enic_msix_entry { | |||
74 | void *devid; | 74 | void *devid; |
75 | }; | 75 | }; |
76 | 76 | ||
77 | struct enic_port_profile { | ||
78 | u8 request; | ||
79 | char name[PORT_PROFILE_MAX]; | ||
80 | u8 instance_uuid[PORT_UUID_MAX]; | ||
81 | u8 host_uuid[PORT_UUID_MAX]; | ||
82 | }; | ||
83 | |||
77 | /* Per-instance private data structure */ | 84 | /* Per-instance private data structure */ |
78 | struct enic { | 85 | struct enic { |
79 | struct net_device *netdev; | 86 | struct net_device *netdev; |
@@ -95,6 +102,7 @@ struct enic { | |||
95 | u32 port_mtu; | 102 | u32 port_mtu; |
96 | u32 rx_coalesce_usecs; | 103 | u32 rx_coalesce_usecs; |
97 | u32 tx_coalesce_usecs; | 104 | u32 tx_coalesce_usecs; |
105 | struct enic_port_profile pp; | ||
98 | 106 | ||
99 | /* work queue cache line section */ | 107 | /* work queue cache line section */ |
100 | ____cacheline_aligned struct vnic_wq wq[ENIC_WQ_MAX]; | 108 | ____cacheline_aligned struct vnic_wq wq[ENIC_WQ_MAX]; |