{"id":"nato-interop-link16-tadil-j","slug":"nato-interop-link16-tadil-j","title":"NATO Interoperability: Link-16 / TADIL-J Integration","description":"During a maritime strike coordination exercise off the Norwegian coast, a combined NATO air-defence cell needs to track every airborne contact across three nations, four platform types, and two separate C2 networks, all ","category":"modules","tags":["modules","ai","real-time","compliance"],"lastModified":"2026-03-18","source_ref":"content/modules/nato-interop-link16-tadil-j.md","url":"/developers/nato-interop-link16-tadil-j","htmlPath":"/developers/nato-interop-link16-tadil-j","jsonPath":"/api/docs/modules/nato-interop-link16-tadil-j","markdownPath":"/api/docs/modules/nato-interop-link16-tadil-j?format=markdown","checksum":"f446cbace0cedb8fe8a64f97f7213719010aa208f735ef57faf1113b513f6cb6","headings":[{"id":"overview","text":"Overview","level":2},{"id":"key-features","text":"Key Features","level":2},{"id":"simple-compatible-message-decoding","text":"SIMPLE-Compatible Message Decoding","level":3},{"id":"track-inventory","text":"Track Inventory","level":3},{"id":"simple-standard-alignment","text":"SIMPLE Standard Alignment","level":3},{"id":"secrecylevel-controlled-track-access","text":"SecrecyLevel-Controlled Track Access","level":3},{"id":"edf-audit-trail","text":"EDF Audit Trail","level":3},{"id":"use-cases","text":"Use Cases","level":2},{"id":"integration","text":"Integration","level":2}],"markdown":"# NATO Interoperability: Link-16 / TADIL-J Integration\n\n## Overview\n\nDuring a maritime strike coordination exercise off the Norwegian coast, a combined NATO air-defence cell needs to track every airborne contact across three nations, four platform types, and two separate C2 networks, all in real time. Link-16, formally standardised as TADIL-J (Tactical Digital Information Link J), is what makes that possible. It is the primary secure tactical data link across NATO and allied forces, carrying real-time track data, targeting information, and status messages between fighter aircraft, naval vessels, AWACS platforms, and ground-based air-defence systems. The link operates in the J-series message format over a TDMA radio network, giving every participating unit the same recognised air picture without relying on voice coordination.\n\nArgus integrates Link-16 via a SIMPLE-compatible message decoder. Decoded track data is persisted to PostgreSQL and made immediately available for fusion with other data sources on the common operational picture, including ATAK ground positions, GMTI radar tracks, and acoustic detections.\n\n```mermaid\ngraph LR\n    A[Link-16 Terminal] -->|J-series PDU| B[SIMPLE Gateway]\n    B -->|Base64 encoded| C[Argus ingestLink16Message]\n    C --> D[decode_link16_message]\n    D --> E[PostgreSQL Track Store]\n    E --> F[link16Tracks Query]\n    E --> G[Operational Picture Fusion]\n    G --> H[ATAK CoT Layer]\n    G --> I[GMTI Track Fusion]\n    G --> J[Effector Matching Engine]\n```\n\n**Last Reviewed:** 2026-03-18\n**Last Updated:** 2026-04-14\n\n## Key Features\n\n### SIMPLE-Compatible Message Decoding\n\nIngest Link-16 messages encoded in base64 via the `ingestLink16Message` mutation. The `decode_link16_message` adapter parses the binary J-series message format, extracting message type (J2.0 Track report, J3.0 Reference point, J7.0 Electronic combat), track number, platform type, position (latitude, longitude, altitude), velocity, heading, and identity (friend/unknown/assumed friend/hostile). Decoded track data is persisted to PostgreSQL immediately on ingestion.\n\n### Track Inventory\n\nQuery the ingested track database via `link16Tracks` with filtering by track number, platform type, or classification level. Tracks are returned in chronological order with full decoded field sets. The `link16Stats` query returns counts by J-series message type and platform category: air, surface, subsurface, and land.\n\n### SIMPLE Standard Alignment\n\nThe integration is built against the LINK16_SIMPLE standard designation, aligning with NATO information exchange requirements for coalition Link-16 data sharing. Decoded track data carries correct source tagging for EDF audit trail compliance, and all ingested records reference their originating standard.\n\n### SecrecyLevel-Controlled Track Access\n\nTrack records carry `secrecy_level` tags. Operational track data from a live tactical network segment is typically classified NATO CONFIDENTIAL or above. Row-level secrecy filtering prevents lower-clearance users from accessing operational track data, satisfying multi-level security requirements for combined joint task force environments.\n\n### EDF Audit Trail\n\nEvery Link-16 message ingestion generates an interop ingest audit record with source standard `LINK16_SIMPLE`, timestamp, decoded track count, and the acting user and organisation identifiers.\n\n## Use Cases\n\n- **Air Defence Common Operational Picture**: Fuse Link-16 air track data with Argus surveillance zone definitions and geofencing alerts to trigger automated notifications when tracks enter or exit defined airspace boundaries.\n- **Joint Task Force Coordination**: Aggregate Link-16 tracks from multiple participating units into a single Argus operational picture, giving command-level staff without direct Link-16 terminal access the full tactical air picture.\n- **Exercise Data Recording and Replay**: Record all ingested Link-16 tracks during a coalition exercise for post-exercise analysis, timeline reconstruction, and lessons-learned reporting.\n- **Cross-Domain Track Fusion**: Correlate Link-16 air tracks with maritime AIS data, ATAK ground unit positions, and sensor-fused detections to build a comprehensive multi-domain operational picture.\n\n## Integration\n\nAvailable via GraphQL: `link16Tracks`, `link16Stats` (queries); `ingestLink16Message` (mutation). All operations require authentication and organisation scoping.\n\nStandard: LINK16_SIMPLE / TADIL-J. Works alongside DIS (ground unit simulation fusion), HLA-RTI (coalition exercise environment), ATAK (ground force positions), and the Operational Picture domain.\n"}