decode_rdma_ctx(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… 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