Skip to content

Multipart NMEA Assembly

iliyan85 edited this page Jul 5, 2026 · 2 revisions

Multipart NMEA Assembly

AISMixer extracts !AIVDM and !AIVDO sentences before multipart assembly. Assembly operates on NMEA sentences, not on decoded AIS payload objects.

Grouping

A stable ingress assembler identity separates independent sources. Multipart grouping uses that assembler identity together with NMEA fragment fields, including:

  • Total fragment count.
  • Current fragment number.
  • Sequential message ID.
  • Radio channel.

TAG g is not used as the assembler key. TAG g is metadata for input/output grouping, while assembly uses NMEA fragment fields plus the ingress assembler identity.

Completion

Fragments are buffered until a complete group is available. When all fragments arrive, AISMixer releases the complete ordered group for downstream output processing.

AISMixer does not decode and merge the AIS payload into one replacement NMEA sentence. The ordered NMEA fragment sentences are forwarded through the remaining output pipeline.

Malformed fragment-number fields are rejected. Incomplete groups are not forwarded as complete groups. Expired fragment state is cleaned by assembler timeout behavior.

Relevant TAG s context from earlier fragments may be retained for the completed group.

Routing Timing

forward_loop captures one routing snapshot and source match per IngressEvent.

When a multipart group completes across multiple IngressEvent objects, output uses the routing snapshot and matched target IDs captured for the event that supplies the completing fragment.

Downstream Order

multipart completion
  -> global or target-scoped deduplication
  -> TAG output
  -> UDP egress

See also Data Plane, TAG Handling, Deduplication, and Architecture.

Clone this wiki locally