Skip to main content

Crate zerodds_transport_udp

Crate zerodds_transport_udp 

Source
Expand description

Crate zerodds-transport-udp. Safety classification: SAFE (std-only).

UDP/IP PSM-Implementation des zerodds-transport::Transport-Traits.

§Spec

  • DDSI-RTPS 2.5 §9.6.1 — UDP/IP PSM Wire-Mapping.
  • DDSI-RTPS 2.5 §8.3.2 — Locator (Re-Export aus zerodds-transport).

§Implementiert (RC1)

  • UDPv4 Unicast Bind + Send + Recv via std::net::UdpSocket
  • UDPv4 Multicast: bind_multicast_v4 mit Group-Join + SO_REUSEADDR/SO_REUSEPORT + set_multicast_ttl_v4 (DDSI-RTPS §9.6.1.4 SPDP/SEDP-Discovery-Pfad)
  • Read-Timeout konfigurierbar via with_timeout
  • Bind-Retry-Loop für CI-EADDRINUSE-Race (3× Backoff)
  • Anwendungs-Layer-Fragmentation in zerodds-rtps (DATA_FRAG/NACK_FRAG, WP 1.2) übernimmt MTU-Handling — Transport selbst sendet Datagramme atomar mit MAX_DATAGRAM_SIZE-Cap.

§Bewusst nicht im Crate

  • UDPv6: Locator-Wire-Format unterstützt v6, aber Bind-API ist v4-spezifisch (bind_v4). v6 würde ein paralleles bind_v6 + Ipv6Addr-Codepfad erfordern. Erweiterungspunkt — kein Layer-Break.
  • Async/Non-blocking: Sync-Architektur ist gewählter Stil — DCPS nutzt eigene Tick-Scheduler, kein Tokio-Stack.
  • Pfad-MTU-Discovery: Fragmentation läuft auf RTPS-Layer (WP 1.2).

Structs§

UdpTransport
UDP-basierter Transport.

Enums§

UdpTransportError
Konstruktions-Fehler.

Constants§

MAX_DATAGRAM_SIZE
Maximale Datagram-Groesse fuer einen UDP-recv. Begrenzt auf den klassischen IP-Datagram-Limit ohne Fragmentation (sicher fuer Phase 0).