Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Functions | Variables
fnic_fcs.c File Reference
#include <linux/errno.h>
#include <linux/pci.h>
#include <linux/slab.h>
#include <linux/skbuff.h>
#include <linux/interrupt.h>
#include <linux/spinlock.h>
#include <linux/if_ether.h>
#include <linux/if_vlan.h>
#include <linux/workqueue.h>
#include <scsi/fc/fc_fip.h>
#include <scsi/fc/fc_els.h>
#include <scsi/fc/fc_fcoe.h>
#include <scsi/fc_frame.h>
#include <scsi/libfc.h>
#include "fnic_io.h"
#include "fnic.h"
#include "cq_enet_desc.h"
#include "cq_exch_desc.h"

Go to the source code of this file.

Functions

void fnic_handle_link (struct work_struct *work)
 
void fnic_handle_frame (struct work_struct *work)
 
void fnic_update_mac_locked (struct fnic *fnic, u8 *new)
 
void fnic_update_mac (struct fc_lport *lport, u8 *new)
 
void fnic_set_port_id (struct fc_lport *lport, u32 port_id, struct fc_frame *fp)
 
int fnic_rq_cmpl_handler (struct fnic *fnic, int rq_work_to_do)
 
int fnic_alloc_rq_frame (struct vnic_rq *rq)
 
void fnic_free_rq_buf (struct vnic_rq *rq, struct vnic_rq_buf *buf)
 
void fnic_eth_send (struct fcoe_ctlr *fip, struct sk_buff *skb)
 
int fnic_send (struct fc_lport *lp, struct fc_frame *fp)
 
void fnic_flush_tx (struct fnic *fnic)
 
int fnic_wq_cmpl_handler (struct fnic *fnic, int work_to_do)
 
void fnic_free_wq_buf (struct vnic_wq *wq, struct vnic_wq_buf *buf)
 

Variables

struct workqueue_structfnic_event_queue
 

Function Documentation

int fnic_alloc_rq_frame ( struct vnic_rq rq)

Definition at line 428 of file fnic_fcs.c.

void fnic_eth_send ( struct fcoe_ctlr fip,
struct sk_buff skb 
)

fnic_eth_send() - Send Ethernet frame. : fcoe_ctlr instance. : Ethernet Frame, FIP, without VLAN encapsulation.

Definition at line 468 of file fnic_fcs.c.

void fnic_flush_tx ( struct fnic fnic)

fnic_flush_tx() - send queued frames. : fnic device

Send frames that were waiting to go out in FC or Ethernet mode. Whenever changing modes we purge queued frames, so these frames should be queued for the stable mode that we're in, either FC or Ethernet.

Called without fnic_lock held.

Definition at line 615 of file fnic_fcs.c.

void fnic_free_rq_buf ( struct vnic_rq rq,
struct vnic_rq_buf buf 
)

Definition at line 451 of file fnic_fcs.c.

void fnic_free_wq_buf ( struct vnic_wq wq,
struct vnic_wq_buf buf 
)

Definition at line 710 of file fnic_fcs.c.

void fnic_handle_frame ( struct work_struct work)

Definition at line 97 of file fnic_fcs.c.

void fnic_handle_link ( struct work_struct work)

Definition at line 41 of file fnic_fcs.c.

int fnic_rq_cmpl_handler ( struct fnic fnic,
int  rq_work_to_do 
)

Definition at line 400 of file fnic_fcs.c.

int fnic_send ( struct fc_lport lp,
struct fc_frame fp 
)

Definition at line 580 of file fnic_fcs.c.

void fnic_set_port_id ( struct fc_lport lport,
u32  port_id,
struct fc_frame fp 
)

fnic_set_port_id() - set the port_ID after successful FLOGI. : local port. : assigned FC_ID. : received frame containing the FLOGI accept or NULL.

This is called from libfc when a new FC_ID has been assigned. This causes us to reset the firmware to FC_MODE and setup the new MAC address and FC_ID.

It is also called with FC_ID 0 when we're logged off.

If the FC_ID is due to point-to-point, fp may be NULL.

Definition at line 233 of file fnic_fcs.c.

void fnic_update_mac ( struct fc_lport lport,
u8 new 
)

fnic_update_mac() - set data MAC address and filters. : local port. : newly-assigned FCoE MAC address.

Definition at line 210 of file fnic_fcs.c.

void fnic_update_mac_locked ( struct fnic fnic,
u8 new 
)

fnic_update_mac_locked() - set data MAC address and filters. : fnic instance. : newly-assigned FCoE MAC address.

Called with the fnic lock held.

Definition at line 188 of file fnic_fcs.c.

int fnic_wq_cmpl_handler ( struct fnic fnic,
int  work_to_do 
)

Definition at line 694 of file fnic_fcs.c.

Variable Documentation

struct workqueue_struct* fnic_event_queue

Definition at line 37 of file fnic_fcs.c.