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_v4mit 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 mitMAX_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 parallelesbind_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§
- UdpTransport
Error - 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).