decode_rdma_ctx(9)
π decode_rdma_ctx(9) π
okay so bestie, we're in the Kernel API Manual today and this is genuinely such a niche little icon of a function. like, it's serving "one job, does it well" energy and honestly? we love that for it. let's get into it π«Ά
β¨ NAME β¨
decode_rdma_ctx β decode an RDMA transform negotiate request context
like. that's literally her whole personality. she decodes an RDMA transform negotiate request context. no notes. π
π SYNOPSIS π
__le32 decode_rdma_ctx (struct ksmbd_conn *conn , struct
smb2_neg_context *ctxt , int ctxt_len );
here's the signature, character for character, because we do not paraphrase code in this house:
- return type is
__le32, yes bestie, little-endian 32-bit, we're being specific π - takes a
struct ksmbd_conn *conn - takes a
struct smb2_neg_context *ctxt - takes an
int ctxt_len
three args, one vibe. slay.
πΈ ARGUMENTS πΈ
connβ the connection being negotiated. that's the whole context of the context, ykwim? she's the main character of the mount πctxtβ the request context header we're about to decode. it's giving "here's the header, do your thing β¨"ctxt_lenβ total context length, including the negotiate context header. so like, header included, no sneaky subtraction, don't try to be clever π
π¦ DESCRIPTION π¦
record transforms supported by both peers only for SMB Direct connections.
that's it. that's the whole thing. and the "only for SMB Direct connections" part is doing so much heavy lifting β like, if it's not SMB Direct, this is literally not the moment, bestie. not the vibe. not the girl. π
β RETURN β
returns an NT status describing the decode result. so like, you get a status back telling you how the decode went. read it. respect it. don't ignore it. π₯
π SEE ALSO π
okay this list is long long. like she brought her entire friend group to the function. every single one, no cap, keeping them all exactly as written because dropping a (9) reference is a crime and i would simply never:
Kernel file ./fs/smb/server/smb2pdu.c smb2_get_ksmbd_tcon(9), smb2_set_err_rsp(9), is_smb2_neg_cmd(9), is_smb2_rsp(9), get_smb2_cmd_val(9), set_smb2_rsp_status(9), init_smb2_neg_rsp(9), smb2_set_rsp_credits(9), init_chained_smb2_rsp(9), is_chained_smb2_message(9), init_smb2_rsp_hdr(9), smb2_allocate_rsp_buf(9), smb2_check_user_session(9), smb2_get_name(9), smb2_get_dos_mode(9), build_rdma_ctx(9), smb3_encryption_negotiated(9), smb2_handle_negotiate(9), smb2_tree_connect(9), smb2_create_open_flags(9), smb2_tree_disconnect(9), smb2_session_logoff(9), create_smb2_pipe(9), smb2_set_ea(9), smb2_open(9), smb2_populate_readdir_entry(9), buffer_check_err(9), smb2_get_ea(9), smb2_query_info(9), smb2_close_pipe(9), smb2_close(9), smb2_echo(9), smb2_set_info_file(9), smb2_set_info(9), smb2_read_pipe(9), smb2_set_rdma_key(9), smb2_prep_rdma_read(9), smb2_current_req_len(9), check_rdma_desc(9), smb2_parse_rdma_write_transform(9), smb2_read_rdma(9), smb2_read(9), smb2_write_pipe(9), smb2_write_rdma(9), smb2_write(9), smb2_flush(9), smb2_cancel(9), smb2_lock(9), smb2_ioctl(9), smb20_oplock_break_ack(9), smb21_lease_break_ack(9), smb2_oplock_break(9), smb2_notify(9), smb2_is_sign_req(9), smb2_check_sign_req(9), smb2_get_sign_rsp_iov(9), smb2_set_sign_rsp(9), smb3_check_sign_req(9), smb3_set_sign_rsp(9), smb3_preauth_hash_rsp(9)
ngl the build_rdma_ctx(9) link right there in the middle is her sister btw π₯Ί decode and build, matching set, we stan a family unit.
and that's the page!! if you made it through that SEE ALSO list you are officially built different π this little cutie lives in ./fs/smb/server and this rendering is dated October 2026 β go off, king, and remember: SMB Direct only, periodt. π
β¨π
π¦ 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