fcoe_ctlr_encaps(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– fcoe_ctlr_encaps(9) πŸ’–

okay so first of all, this is from the Kernel API Manual, section 9 β€” yes we are literally reading kernel docs for fun now, this is who we've become, and honestly? slay.


πŸŽ€ NAME πŸŽ€

fcoe_ctlr_encaps β€” Encapsulate an ELS frame for FIP, without sending it.

like, it wraps the thing up all cute and then just… doesn't send it. it's giving "i wrote the text and never hit send" energy 😭


✨ SYNOPSIS ✨

int fcoe_ctlr_encaps (struct fcoe_ctlr *fip , struct fc_lport *lport ,
u8 dtype , struct sk_buff *skb , u32 d_id );

πŸ¦‹ ARGUMENTS πŸ¦‹

  • fip β€” The FCoE controller for the ELS frame. this is the main character of the whole operation πŸ’…
  • lport β€” The local port.
  • dtype β€” The FIP descriptor type for the frame.
  • skb β€” The FCoE ELS frame including FC header but no FCoE headers. heads up, bestie: the FC header is already in there, the FCoE headers are not.
  • d_id β€” The destination port ID.

🌸 DESCRIPTION 🌸

Returns non-zero error code on failure. so like, check the return value, don't just assume it ate 🫢

The caller must check that the length is a multiple of 4. fr fr, do the check, nobody else is gonna do it for you.

The skb must have enough headroom (28 bytes) and tailroom (8 bytes). not optional, not a suggestion β€” the space has to be there.

Headroom includes the FIP encapsulation description, FIP header, and Ethernet header. The tailroom is for the FIP MAC descriptor. so that's 28 out front, 8 out back, and that's just how it is πŸ’€


πŸ”₯ SEE ALSO πŸ”₯

Kernel file ./drivers/scsi/fcoe/fcoe_ctlr.c β€” and then the entire extended friend group, no cap:

fcoe_ctlr_set_state(9), fcoe_ctlr_mtu_valid(9), fcoe_ctlr_fcf_usable(9), fcoe_ctlr_map_dest(9), fcoe_ctlr_init(9), fcoe_sysfs_fcf_add(9), fcoe_sysfs_fcf_del(9), fcoe_ctlr_reset_fcfs(9), fcoe_ctlr_destroy(9), fcoe_ctlr_announce(9), fcoe_ctlr_fcoe_size(9), fcoe_ctlr_solicit(9), fcoe_ctlr_link_up(9), fcoe_ctlr_reset(9), fcoe_ctlr_link_down(9), fcoe_ctlr_send_keep_alive(9), fcoe_ctlr_els_send(9), fcoe_ctlr_age_fcfs(9), fcoe_ctlr_parse_adv(9), fcoe_ctlr_recv_adv(9), fcoe_ctlr_recv_els(9), fcoe_ctlr_recv_clr_vlink(9), fcoe_ctlr_recv(9), fcoe_ctlr_recv_handler(9), fcoe_ctlr_select(9), fcoe_ctlr_flogi_send_locked(9), fcoe_ctlr_flogi_retry(9), fcoe_ctlr_flogi_send(9), fcoe_ctlr_timeout(9), fcoe_ctlr_timer_work(9), fcoe_ctlr_recv_work(9), fcoe_ctlr_recv_flogi(9), fcoe_wwn_from_mac(9), fcoe_ctlr_rport(9), fcoe_ctlr_vn_send(9), fcoe_ctlr_vn_rport_callback(9), fcoe_ctlr_disc_stop_locked(9), fcoe_ctlr_disc_stop(9), fcoe_ctlr_disc_stop_final(9), fcoe_ctlr_vn_restart(9), fcoe_ctlr_vn_start(9), fcoe_ctlr_vn_parse(9), fcoe_ctlr_vn_send_claim(9), fcoe_ctlr_vn_probe_req(9), fcoe_ctlr_vn_probe_reply(9), fcoe_ctlr_vn_add(9), fcoe_ctlr_vn_lookup(9), fcoe_ctlr_vn_claim_notify(9), fcoe_ctlr_vn_claim_resp(9), fcoe_ctlr_vn_beacon(9), fcoe_ctlr_vn_age(9), fcoe_ctlr_vn_recv(9), fcoe_ctlr_vlan_parse(9), fcoe_ctlr_vlan_send(9), fcoe_ctlr_vlan_disc_reply(9), fcoe_ctlr_vlan_recv(9), fcoe_ctlr_disc_recv(9), fcoe_ctlr_vn_disc(9), fcoe_ctlr_vn_timeout(9), fcoe_ctlr_mode_set(9), fcoe_libfc_config(9)

like i said. whole friend group. πŸ’œ


ngl the headroom/tailroom numbers are the whole vibe check here β€” get those wrong and it's not a slay, it's a crash 😭

and that's the page!! sourced from ./drivers/scsi/fcoe, dated October 2026, brought to you by the fcoe_ctlr_encaps(9) girlies πŸ§šβ€β™€οΈ mwah, go read the source, ily bye bestie πŸ’–βœ¨

πŸ“¦ where this page comes from