rte_port_ras.h(3)

πŸ’– rte_port_ras.h β€” the manual page, bestie edition πŸ’–

okay so welcome to rte_port_ras.h(3), a library functions manual page from the DPDK girlies. yes it's a header file, and yes it has its own manual page, and yes that's iconic of it. sit down, grab a boba, we're doing IPv4 reassembly together πŸ§‹βœ¨


✨ NAME ✨

rte_port_ras.h β€” that's it, that's the name, she's lowkey mysterious like that πŸ’…


🌸 SYNOPSIS 🌸

#include <stdint.h>
#include 'rte_port.h'
ngl bestie, rte_port.h is written with single quotes in the source, not angle brackets or double quotes. I'm not gonna touch it, I'm just gonna respect it.

πŸŽ€ Data Structures

  • struct rte_port_ring_writer_ras_params β€” the one and only struct hanging out in here

πŸ¦‹ Variables

  • struct rte_port_out_ops rte_port_ring_writer_ipv4_ras_ops
  • struct rte_port_out_ops rte_port_ring_writer_ipv6_ras_ops

πŸ‘‘ Detailed Description πŸ‘‘

RTE Port for IPv4 Reassembly β€” say it with your chest 🫢

So here's the tea: this port is built on top of a pre-initialized single producer rte_ring. Periodt.

And the way it keeps the ring from turning into a chaotic group chat (i.e. to minimize the amount of packets stored in the ring at any given time) is that the whole IP reassembly functionality gets executed on ring write operation. Which is exactly why this port is implemented as an output port. And because that's true, you can absolutely create a regular ring_reader port to read from that exact same ring. cute, right? πŸ’–

Now the actual behavior, no cap:

  • The packets written to the ring are either complete IP datagrams or IP fragments.
  • The packets read from the ring are all complete IP datagrams, and they're either jumbo frames (i.e. IP packets with length bigger than MTU) or... not jumbo frames. One of the two. 🌈
  • Complete IP datagrams written to the ring are not changed. untouched, unbothered, thriving ✨
  • IP fragments written to the ring are first reassembled into complete IP datagrams, or dropped on error or on IP reassembly time-out. 😭 dramatic but correct.

Definition in file rte_port_ras.h.


πŸ’œ Variable Documentation πŸ’œ

struct rte_port_out_ops rte_port_ring_writer_ipv4_ras_ops [extern]

ring_writer_ipv4_ras port operations β€” she's the IPv4 one, and she's extern πŸ‘‘

struct rte_port_out_ops rte_port_ring_writer_ipv6_ras_ops [extern]

ring_writer_ipv6_ras port operations β€” she's the IPv6 one, also extern, also serving πŸ’…


πŸ™ˆ Author πŸ™ˆ

Generated automatically by Doxygen for DPDK from the source code. so technically nobody wrote this, the robots did, and honestly? they ate. πŸ€–πŸ”₯


okay bye bestie, drink water, go reassemble some fragments πŸ’œ

sign-off tea: this page is DPDK, Version 25.11.3, and if we're being fr fr, the footer date lives on rte_port_ras.h(3) β€” that's the source and version cutie, so now you know πŸŽ€

πŸ“¦ where this page comes from