STRUCT FC_LPORT(9)
π NAME π
Welcome to the Kernel API Manual, bestie π β this page is struct fc_lport(9), aka the Local port. Short name section, maximum main-character energy π.
β¨ SYNOPSIS β¨
Okay so here's the exact struct, no cap β every field stays exactly as written:
struct fc_lport {
struct Scsi_Host *host;
struct list_head ema_list;
struct fc_rport_priv *dns_rdata;
struct fc_rport_priv *ms_rdata;
struct fc_rport_priv *ptp_rdata;
void *scsi_priv;
struct fc_disc disc;
struct list_head vports;
struct fc_vport *vport;
struct libfc_function_template tt;
u8 link_up;
u8 qfull;
u16 vlan;
enum fc_lport_state state;
unsigned long boot_time;
struct fc_host_statistics host_stats;
struct fc_stats __percpu *stats;
u8 retry_count;
u32 port_id;
u64 wwpn;
u64 wwnn;
unsigned int service_params;
unsigned int e_d_tov;
unsigned int r_a_tov;
struct fc_els_rnid_gen rnid_gen;
u32 sg_supp:1;
u32 seq_offload:1;
u32 crc_offload:1;
u32 lro_enabled:1;
u32 does_npiv:1;
u32 npiv_enabled:1;
u32 point_to_multipoint:1;
u32 fdmi_enabled:1;
u32 mfs;
u8 max_retry_count;
u8 max_rport_retry_count;
u16 rport_priv_size;
u16 link_speed;
u16 link_supported_speeds;
u16 lro_xid;
unsigned int lso_max;
struct fc_ns_fts fcts;
struct mutex lp_mutex;
struct list_head list;
struct delayed_work retry_work;
void *prov[FC_FC4_PROV_SIZE];
struct list_head lport_list;
};
π«Ά Members π«Ά
Now let's go member by member, bestie. These field names are literal, so keep them exactly as shown πΈ.
hostβ the SCSI host associated with a local port.ema_listβ the exchange manager anchor list.dns_rdataβ the directory server remote port.ms_rdataβ the management server remote port.ptp_rdataβ point to point remote port.scsi_privβ FCP layer internal data.discβ discovery context.vportsβ child vports if N_Port.vportβ parent vport if VN_Port.ttβ Libfc function template.link_upβ link state:1= link up,0= link down. Periodt.qfullβ queue state:1queue is full,0queue is not full.stateβ identifies the state.boot_timeβ timestamp indicating when the local port came online. β°host_statsβ SCSI host statistics.statsβ FC local port stats (the page literally has aTODOabout separating libfc LLD stats).retry_countβ number of retries in the current state.port_idβ FC Port ID.wwpnβ World Wide Port Name.wwnnβ World Wide Node Name.service_paramsβ common service parameters.e_d_tovβ error detection timeout value.r_a_tovβ resource allocation timeout value.rnid_genβ RNID information.sg_suppβ indicates if scatter gather is supported. β¨seq_offloadβ indicates if sequence offload is supported.crc_offloadβ indicates if CRC offload is supported.lro_enabledβ indicates if large receive offload is supported.does_npivβ supports multiple vports.npiv_enabledβ switch/fabric allows NPIV.mfsβ the maximum Fibre Channel payload size.max_retry_countβ the maximum retry attempts.max_rport_retry_countβ the maximum remote port retry attempts.rport_priv_sizeβ size needed by driver afterstruct fc_rport_priv.lro_xidβ the maximum XID for LRO.lso_maxβ the maximum large offload send size.fctsβ FC-4 type mask.lp_mutexβ mutex to protect the local port.listβ linkage on list of vport peers.retry_workβ handle to local port for delayed retry context.provβ pointers available for use by passive FC-4 providers.lport_listβ linkage on module-wide list of local ports.
Tiny side note, bestie π«Ά: the struct code above also has vlan, point_to_multipoint, fdmi_enabled, link_speed, and link_supported_speeds fields. This page's Members list doesn't give those individual blurbs, so I'm not inventing any tea β the code block is the receipts π
.
π SEE ALSO π
The Kernel file is ./include/scsi/libfc.h β yes, that exact path β and here are all the cross-reference besties:
enum fc_lport_state(9)enum fc_rport_state(9)struct fc_disc_port(9)enum fc_rport_event(9)struct fc_rport_operations(9)struct fc_rport_libfc_priv(9)struct fc_rport_priv(9)struct fc_stats(9)struct fc_seq_els_data(9)struct fc_fcp_pkt(9)struct fc_seq(9)struct fc_exch(9)struct fc_disc(9)struct fc4_prov(9)fc_lport_test_ready(9)fc_set_wwnn(9)fc_set_wwpn(9)fc_lport_state_enter(9)fc_lport_init_stats(9)fc_lport_free_stats(9)lport_priv(9)libfc_host_alloc(9)
That's the whole manual page, bestie π β source/version ./include/scsi, date October 2026, and the page is struct fc_lport(9). Mwah π
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms