RDMAP(3)

πŸ“¦
version 3.2 Β· 2 versions
  • 3.2 Β· debian trixie, fedora 43, fedora 44, ubuntu noble, ubuntu questing, ubuntu resolute (latest)
  • 3.2 Β· ubuntu stonking
, in debian trixie, fedora 43, fedora 44, ubuntu noble, ubuntu questing, ubuntu resolute

πŸ’– 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 β€” an int, the RDMA Protocol version. 🌸
  • opcode β€” an int, the RDMA OpCode. what is she doing rn. πŸ’…
  • psize β€” an int, the Payload Size. how much is she carrying. πŸŽ€
  • istag β€” an int, 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 β€” an int, the Data Sink STag. πŸ¦‹
    • sinksto β€” an int, the Data Sink Tagged Offset. πŸ¦‹
    • dma_len β€” an int, the RDMA Read Message Size. πŸ“
    • srcstag β€” an int, the Data Source STag. ✨
    • srcsto β€” an int, 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:


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