Skip to main content

Module fragment_assembler

Module fragment_assembler 

Source
Expand description

Fragment-Reassembly fuer DDSI-RTPS 2.5 §8.4.14 auf Reader-Seite.

Fuehrt pro in-flight Sample-SN einen FragmentBuffer, in den DATA_FRAG- Submessages eingespielt werden. Sobald alle Fragmente da sind, faellt ein vollstaendiger Sample heraus, den der ReliableReader wie ein regulaeres DATA behandelt.

§DoS-Haltung

Der Assembler muss Input von ungetrusteten Writers robust verarbeiten. Drei Caps schuetzen gegen pathologische Inputs:

  • max_pending_sns: Hoechstzahl gleichzeitig in Arbeit befindlicher SNs. Ueberlauf verwirft die aelteste (kleinste) unvollstaendige SN.
  • max_sample_bytes: Obergrenze fuer sample_size. DATA_FRAGs mit sample_size > cap werden verworfen ohne Allokation — Schutz gegen “ich behaupte 4 GB sample und hoffe, dass du allokierst”.
  • max_fragment_size: Obergrenze fuer fragment_size-Angaben vom Writer. Uebliche MTU ist < 1500; wir akzeptieren bis 65535.

Verworfene Fragmente werden in drop_count gezaehlt (Diagnose).

Structs§

AssemblerCaps
Konfiguration fuer den Assembler.
CompletedSample
Ein vollstaendig reassemblierter Sample.
FragmentAssembler
State eines Reassemblers.

Enums§

DropReason
Zurueckgewiesenes-Fragment-Kategorie — nur fuer Diagnostik.

Constants§

DEFAULT_MAX_FRAGMENT_SIZE
Default-Cap fuer fragment_size (u16-Maximum gemaess Spec).
DEFAULT_MAX_PENDING_SNS
Default-Cap fuer Anzahl gleichzeitig in-flight SNs.
DEFAULT_MAX_SAMPLE_BYTES
Default-Cap fuer maximale Sample-Groesse (1 MiB). Groessere Samples sind in Phase 1 kein Use-Case; DDS-Security/Fragmentation auf grossen Images wartet auf Phase 2+.