fcoe_ctlr_els_send(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… fcoe_ctlr_els_send ✨

okay so welcome to the Kernel API Manual, bestie β€” today's main character is fcoe_ctlr_els_send, and she's literally the one deciding whether your ELS frame gets the FIP treatment or not πŸŽ€


🌸 NAME 🌸

fcoe_ctlr_els_send β€” send an ELS frame encapsulated by FIP if appropriate πŸ’Œ


✨ SYNOPSIS ✨

int fcoe_ctlr_els_send (struct fcoe_ctlr *fip , struct fc_lport *lport ,
       struct sk_buff *skb );

πŸ¦‹ ARGUMENTS πŸ¦‹

  • fip β€” the FCoE controller, aka the vibe coordinator of this whole operation πŸ‘‘
  • lport β€” the libfc fc_lport you're sending from, her home base fr fr
  • skb β€” the FCoE ELS frame, which has the FC header already but no FCoE headers β€” those come later, iykyk

πŸ’– DESCRIPTION πŸ’–

So here's the tea, bestie: this function returns a non-zero error code if the frame should not be sent. It returns zero if the caller should go ahead and send the frame with FCoE encapsulation. Zero = slay, go off. Non-zero = nope, not today πŸ’€

Now the part you cannot skip, no cap:

  • The caller must check that the length is a multiple of 4. Like, non-negotiable.
  • The SKB must have enough headroom (28 bytes) and tailroom (8 bytes). Both. Not one. Both 🫢
  • The skb must also be an fc_frame.
and one more thing β€” this gets called from the lower-level driver with spinlocks held, so we must not take a mutex here. Like, absolutely not. Do not do it. That's the rule πŸ™ˆ

🧚 SEE ALSO 🧚

the whole friend group, in the kernel file ./drivers/scsi/fcoe/fcoe_ctlr.c 🌈


okay that's the whole page, you ate that πŸ’…βœ¨

this little love letter came from ./drivers/scsi/fcoe, dated October 2026, and it's signed fcoe_ctlr_els_send(9) β€” mwah, bye bestie πŸ“πŸ«Ά

πŸ“¦ where this page comes from