|
|
|
@ -260,6 +260,9 @@ void __fcoe_get_lesb(struct fc_lport *lport, struct fc_els_lesb *fc_lesb,
|
|
|
|
|
struct net_device *netdev);
|
|
|
|
|
void fcoe_wwn_to_str(u64 wwn, char *buf, int len);
|
|
|
|
|
int fcoe_validate_vport_create(struct fc_vport *vport);
|
|
|
|
|
int fcoe_link_speed_update(struct fc_lport *);
|
|
|
|
|
void fcoe_get_lesb(struct fc_lport *, struct fc_els_lesb *);
|
|
|
|
|
void fcoe_ctlr_get_lesb(struct fcoe_ctlr_device *ctlr_dev);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* is_fip_mode() - returns true if FIP mode selected.
|
|
|
|
@ -289,8 +292,11 @@ static inline bool is_fip_mode(struct fcoe_ctlr *fip)
|
|
|
|
|
* @attached: whether this transport is already attached
|
|
|
|
|
* @list: list linkage to all attached transports
|
|
|
|
|
* @match: handler to allow the transport driver to match up a given netdev
|
|
|
|
|
* @alloc: handler to allocate per-instance FCoE structures
|
|
|
|
|
* (no discovery or login)
|
|
|
|
|
* @create: handler to sysfs entry of create for FCoE instances
|
|
|
|
|
* @destroy: handler to sysfs entry of destroy for FCoE instances
|
|
|
|
|
* @destroy: handler to delete per-instance FCoE structures
|
|
|
|
|
* (frees all memory)
|
|
|
|
|
* @enable: handler to sysfs entry of enable for FCoE instances
|
|
|
|
|
* @disable: handler to sysfs entry of disable for FCoE instances
|
|
|
|
|
*/
|
|
|
|
@ -299,6 +305,7 @@ struct fcoe_transport {
|
|
|
|
|
bool attached;
|
|
|
|
|
struct list_head list;
|
|
|
|
|
bool (*match) (struct net_device *device);
|
|
|
|
|
int (*alloc) (struct net_device *device);
|
|
|
|
|
int (*create) (struct net_device *device, enum fip_state fip_mode);
|
|
|
|
|
int (*destroy) (struct net_device *device);
|
|
|
|
|
int (*enable) (struct net_device *device);
|
|
|
|
@ -347,7 +354,20 @@ struct fcoe_port {
|
|
|
|
|
struct timer_list timer;
|
|
|
|
|
struct work_struct destroy_work;
|
|
|
|
|
u8 data_src_addr[ETH_ALEN];
|
|
|
|
|
struct net_device * (*get_netdev)(const struct fc_lport *lport);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* fcoe_get_netdev() - Return the net device associated with a local port
|
|
|
|
|
* @lport: The local port to get the net device from
|
|
|
|
|
*/
|
|
|
|
|
static inline struct net_device *fcoe_get_netdev(const struct fc_lport *lport)
|
|
|
|
|
{
|
|
|
|
|
struct fcoe_port *port = ((struct fcoe_port *)lport_priv(lport));
|
|
|
|
|
|
|
|
|
|
return (port->get_netdev) ? port->get_netdev(lport) : NULL;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void fcoe_clean_pending_queue(struct fc_lport *);
|
|
|
|
|
void fcoe_check_wait_queue(struct fc_lport *lport, struct sk_buff *skb);
|
|
|
|
|
void fcoe_queue_timer(ulong lport);
|
|
|
|
@ -356,7 +376,7 @@ int fcoe_get_paged_crc_eof(struct sk_buff *skb, int tlen,
|
|
|
|
|
|
|
|
|
|
/* FCoE Sysfs helpers */
|
|
|
|
|
void fcoe_fcf_get_selected(struct fcoe_fcf_device *);
|
|
|
|
|
void fcoe_ctlr_get_fip_mode(struct fcoe_ctlr_device *);
|
|
|
|
|
void fcoe_ctlr_set_fip_mode(struct fcoe_ctlr_device *);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* struct netdev_list
|
|
|
|
@ -372,4 +392,12 @@ struct fcoe_netdev_mapping {
|
|
|
|
|
int fcoe_transport_attach(struct fcoe_transport *ft);
|
|
|
|
|
int fcoe_transport_detach(struct fcoe_transport *ft);
|
|
|
|
|
|
|
|
|
|
/* sysfs store handler for ctrl_control interface */
|
|
|
|
|
ssize_t fcoe_ctlr_create_store(struct bus_type *bus,
|
|
|
|
|
const char *buf, size_t count);
|
|
|
|
|
ssize_t fcoe_ctlr_destroy_store(struct bus_type *bus,
|
|
|
|
|
const char *buf, size_t count);
|
|
|
|
|
|
|
|
|
|
#endif /* _LIBFCOE_H */
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|