include/scsi/libfcoe.h
Source file repositories/reference/linux-study-clean/include/scsi/libfcoe.h
File Facts
- System
- Linux kernel
- Corpus path
include/scsi/libfcoe.h- Extension
.h- Size
- 14159 bytes
- Lines
- 417
- Domain
- Repository Root And Misc
- Bucket
- include
- Inferred role
- Repository Root And Misc: implementation source
- Status
- source implementation candidate
Why This File Exists
Top-level or miscellaneous repository surface. Use this as map coverage unless a later manual pass promotes the file into a deeper subsystem dossier.
- Top-level or miscellaneous repository surface. Use this as map coverage unless a later manual pass promotes the file into a deeper subsystem dossier.
- Touches IRQ or DMA behavior; this matters for the representative real-device path.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/etherdevice.hlinux/if_ether.hlinux/netdevice.hlinux/skbuff.hlinux/workqueue.hlinux/local_lock.hlinux/prandom.hscsi/fc/fc_fcoe.hscsi/libfc.hscsi/fcoe_sysfs.h
Detected Declarations
struct fcoe_ctlrstruct fcoe_fcfstruct fcoe_rportstruct fcoe_transportstruct fcoe_percpu_sstruct fcoe_portstruct fcoe_netdev_mappingenum fip_stateenum fip_modefunction fcoe_ctlr_privfunction is_fip_modefunction fcoe_get_netdev
Annotated Snippet
struct fcoe_ctlr {
enum fip_state state;
enum fip_mode mode;
struct fc_lport *lp;
struct fcoe_fcf *sel_fcf;
struct list_head fcfs;
struct fcoe_ctlr_device *cdev;
u16 fcf_count;
unsigned long sol_time;
unsigned long sel_time;
unsigned long port_ka_time;
unsigned long ctlr_ka_time;
struct timer_list timer;
struct work_struct timer_work;
struct work_struct recv_work;
struct sk_buff_head fip_recv_list;
struct sk_buff *flogi_req;
struct rnd_state rnd_state;
u32 port_id;
u16 user_mfs;
u16 flogi_oxid;
u8 flogi_req_send;
u8 flogi_count;
bool map_dest;
bool fip_resp;
u8 spma;
u8 probe_tries;
u8 priority;
u8 dest_addr[ETH_ALEN];
u8 ctl_src_addr[ETH_ALEN];
void (*send)(struct fcoe_ctlr *, struct sk_buff *);
void (*update_mac)(struct fc_lport *, u8 *addr);
u8 * (*get_src_addr)(struct fc_lport *);
struct mutex ctlr_mutex;
spinlock_t ctlr_lock;
};
/**
* fcoe_ctlr_priv() - Return the private data from a fcoe_ctlr
* @ctlr: The fcoe_ctlr whose private data will be returned
*
* Returns: pointer to the private data
*/
static inline void *fcoe_ctlr_priv(const struct fcoe_ctlr *ctlr)
{
return (void *)(ctlr + 1);
}
/*
* This assumes that the fcoe_ctlr (x) is allocated with the fcoe_ctlr_device.
*/
#define fcoe_ctlr_to_ctlr_dev(x) \
(x)->cdev
/**
* struct fcoe_fcf - Fibre-Channel Forwarder
* @list: list linkage
* @event_work: Work for FC Transport actions queue
* @fip: The controller that the FCF was discovered on
* @fcf_dev: The associated fcoe_fcf_device instance
* @time: system time (jiffies) when an advertisement was last received
* @switch_name: WWN of switch from advertisement
* @fabric_name: WWN of fabric from advertisement
* @fc_map: FC_MAP value from advertisement
* @fcf_mac: Ethernet address of the FCF for FIP traffic
* @fcoe_mac: Ethernet address of the FCF for FCoE traffic
* @vfid: virtual fabric ID
* @pri: selection priority, smaller values are better
* @flogi_sent: current FLOGI sent to this FCF
* @flags: flags received from advertisement
* @fka_period: keep-alive period, in jiffies
* @fd_flags: no need for FKA from ENode
*
* A Fibre-Channel Forwarder (FCF) is the entity on the Ethernet that
* passes FCoE frames on to an FC fabric. This structure represents
* one FCF from which advertisements have been received.
*
* When looking up an FCF, @switch_name, @fabric_name, @fc_map, @vfid, and
* @fcf_mac together form the lookup key.
*/
struct fcoe_fcf {
struct list_head list;
struct work_struct event_work;
struct fcoe_ctlr *fip;
struct fcoe_fcf_device *fcf_dev;
unsigned long time;
Annotation
- Immediate include surface: `linux/etherdevice.h`, `linux/if_ether.h`, `linux/netdevice.h`, `linux/skbuff.h`, `linux/workqueue.h`, `linux/local_lock.h`, `linux/prandom.h`, `scsi/fc/fc_fcoe.h`.
- Detected declarations: `struct fcoe_ctlr`, `struct fcoe_fcf`, `struct fcoe_rport`, `struct fcoe_transport`, `struct fcoe_percpu_s`, `struct fcoe_port`, `struct fcoe_netdev_mapping`, `enum fip_state`, `enum fip_mode`, `function fcoe_ctlr_priv`.
- Atlas domain: Repository Root And Misc / include.
- Implementation status: source implementation candidate.
- IRQ or DMA behavior appears here, which is relevant to the selected PCIe/NVMe device path.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.