drivers/scsi/fnic/fip.h

Source file repositories/reference/linux-study-clean/drivers/scsi/fnic/fip.h

File Facts

System
Linux kernel
Corpus path
drivers/scsi/fnic/fip.h
Extension
.h
Size
3873 bytes
Lines
160
Domain
Driver Families
Bucket
drivers/scsi
Inferred role
Driver Families: implementation source
Status
source implementation candidate

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

struct fcoe_vlan {
	struct list_head list;
	uint16_t vid;		/* vlan ID */
	uint16_t sol_count;	/* no. of sols sent */
	uint16_t state;		/* state */
};

struct fip_vlan_req {
	struct ethhdr eth;
	struct fip_header fip;
	struct fip_mac_desc mac_desc;
} __packed;

struct fip_vlan_notif {
	struct fip_header fip;
	struct fip_vlan_desc vlans_desc[];
} __packed;

struct fip_vn_port_ka {
	struct ethhdr eth;
	struct fip_header fip;
	struct fip_mac_desc mac_desc;
	struct fip_vn_desc vn_port_desc;
} __packed;

struct fip_enode_ka {
	struct ethhdr eth;
	struct fip_header fip;
	struct fip_mac_desc mac_desc;
} __packed;

struct fip_cvl {
	struct fip_header fip;
	struct fip_mac_desc fcf_mac_desc;
	struct fip_wwn_desc name_desc;
	struct fip_vn_desc vn_ports_desc[];
} __packed;

struct fip_flogi_desc {
	struct fip_desc fd_desc;
	uint16_t rsvd;
	struct fc_std_flogi flogi;
} __packed;

struct fip_flogi_rsp_desc {
	struct fip_desc fd_desc;
	uint16_t rsvd;
	struct fc_std_flogi flogi;
} __packed;

struct fip_flogi {
	struct ethhdr eth;
	struct fip_header fip;
	struct fip_flogi_desc flogi_desc;
	struct fip_mac_desc mac_desc;
} __packed;

struct fip_flogi_rsp {
	struct fip_header fip;
	struct fip_flogi_rsp_desc rsp_desc;
	struct fip_mac_desc mac_desc;
} __packed;

struct fip_discovery {
	struct ethhdr eth;
	struct fip_header fip;
	struct fip_mac_desc mac_desc;
	struct fip_wwn_desc name_desc;
	struct fip_size_desc fcoe_desc;
} __packed;

struct fip_disc_adv {
	struct fip_header fip;
	struct fip_pri_desc prio_desc;
	struct fip_mac_desc mac_desc;
	struct fip_wwn_desc name_desc;
	struct fip_fab_desc fabric_desc;
	struct fip_fka_desc fka_adv_desc;
} __packed;

void fnic_fcoe_process_vlan_resp(struct fnic *fnic, struct fip_header *fiph);
void fnic_fcoe_fip_discovery_resp(struct fnic *fnic, struct fip_header *fiph);
void fnic_fcoe_process_flogi_resp(struct fnic *fnic, struct fip_header *fiph);
void fnic_work_on_fip_timer(struct work_struct *work);
void fnic_work_on_fcs_ka_timer(struct work_struct *work);
void fnic_fcoe_send_vlan_req(struct fnic *fnic);
void fnic_fcoe_start_fcf_discovery(struct fnic *fnic);
void fnic_fcoe_start_flogi(struct fnic *fnic);
void fnic_fcoe_process_cvl(struct fnic *fnic, struct fip_header *fiph);
void fnic_vlan_discovery_timeout(struct fnic *fnic);

Annotation

Implementation Notes