RDMAP(3)
π RDMAP π
okay bestie, so this is packet.transport.rdmap β the RDMAP module from the rdmap 1.0 manual, section 3. it's giving network-nerd royalty, no cap. π
β¨ NAME β¨
packet.transport.rdmap β the RDMAP module, periodt. π
π¦ DESCRIPTION π¦
so basically? it decodes the RDMAP layer. that's the whole vibe. π₯
and if you wanna know what RDMAP even is, it's the RFC 5040 Remote Direct Memory Access Protocol Specification β go read it, it's iconic, iykyk. πβ¨
π CLASSES π
π class OpCode(packet.utils.Enum)
an enum OpCode. short, sweet, main character energy. literally just an enum, and honestly? she's serving. β
πΈ class RDMAP(baseobj.BaseObj)
the RDMAP object itself. the moment. the icon. π«Ά
π Usage
like, here's how you actually use her:
from packet.transport.rdmap import RDMAP
x = RDMAP(pktt, pinfo)
boom. two lines. slay. π
π Object definition
okay so this is what the object looks like on the inside β every field, exactly as it is:
RDMAP(
version = int, # RDMA Protocol version
opcode = int, # RDMA OpCode
psize = int, # Payload Size
[ # Only valid for Send with Invalidate and Send with Solicited Event
# and Invalidate Messages
istag = int, # Invalidate STag
]
[ # RDMA Read Request Header
sinkstag = int, # Data Sink STag
sinksto = int, # Data Sink Tagged Offset
dma_len = int, # RDMA Read Message Size
srcstag = int, # Data Source STag
srcsto = int, # Data Source Tagged Offset
]
)
quick breakdown so you're not lost in the sauce:
versionβ anint, the RDMA Protocol version. πΈopcodeβ anint, the RDMA OpCode. what is she doing rn. πpsizeβ anint, the Payload Size. how much is she carrying. πistagβ anint, the Invalidate STag. β οΈ and bestie, listen: this one is only valid for Send with Invalidate and Send with Solicited Event and Invalidate Messages. not for everything else. don't be out here using it wrong. π- the RDMA Read Request Header block β this whole little squad only shows up for that header:
sinkstagβ anint, the Data Sink STag. π¦sinkstoβ anint, the Data Sink Tagged Offset. π¦dma_lenβ anint, the RDMA Read Message Size. πsrcstagβ anint, the Data Source STag. β¨srcstoβ anint, the Data Source Tagged Offset. β¨
π§ Methods defined here
π __init__(self, pktt, pinfo)
the constructor. the birth of the object. main character origin story fr fr. π«Ά
what she does: Initialize object's private data. that's it, that's the job, and she does it flawlessly. π
and here's what you're handing her:
pkttβ the Packet trace object (packet.pktt.Pktt), so this layer can actually reach up and see the parent layers. it's giving "i need to know where i came from". πpinfoβ a list of two integers:[RDMAP control, Invalidate STag]. two. exactly two. don't try to be cute with it. π
π SEE ALSO π
go read these next, bestie, they're all part of the friend group:
baseobj(3)packet.application.rpc(3)packet.application.rpcordma(3)packet.application.rpcordma_const(3)packet.unpack(3)packet.utils(3)
π BUGS π
No known bugs. not a single one. she's flawless. we love a bug-free queen. πβ¨
π AUTHOR π
Jorge Mora (mora@netapp.com) β the legend, the blueprint, the moment. π«Ά
okay that's the whole page, bestie!! and for the cute sign-off: this gorgeous thing came out of NFStest 3.2, dated 21 March 2023 β old enough to be iconic, fresh enough to still slay. bye mwah π πππ¦πΈ
π¦ where this page comes from
- debian trixie: nfstest 3.2-3
- fedora 43: NFStest 3.2-14.fc43 Β· GPL-2.0-or-later
- fedora 44: NFStest 3.2-16.fc44 Β· GPL-2.0-or-later
- ubuntu noble: nfstest 3.2-2
- ubuntu questing: nfstest 3.2-3
- ubuntu resolute: nfstest 3.2-3build1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms