fcoe_ctlr_encaps(9)
π 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
- 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