Skip to content

Add MQTT convergence layer adapter with TLS and auth support - #99

Open
zebastian wants to merge 3 commits into
nasa-jpl:integrationfrom
zebastian:mqtt-conv-layer-ducts
Open

Add MQTT convergence layer adapter with TLS and auth support#99
zebastian wants to merge 3 commits into
nasa-jpl:integrationfrom
zebastian:mqtt-conv-layer-ducts

Conversation

@zebastian

Copy link
Copy Markdown
Contributor

Implement a new CLA pair (mqttcli/mqttclo) that uses an MQTT broker
for direct or store-and-forward bundle delivery.

see also #75

this uses the Eclipse Paho MQTT C synchronous client (libpaho-mqtt3cs)
mqtt specifics:

  • Persistent sessions (cleansession=0) for offline queuing
  • Topic scheme: ion/bundles/<duct_suffix>
  • Optional username/password auth (-u/-p flags)
  • Optional TLS with server and mutual authentication (-t/-c/-C/-k/-K)

New files:

  • bpv7/mqtt/mqttcla.h — shared constants, duct parser, config helpers
  • bpv7/mqtt/mqttclo.c — output daemon (MQTT publisher)
  • bpv7/mqtt/mqttcli.c — input daemon (MQTT subscriber)
  • bpv7/doc/pod1/mqttcli.pod — man page
  • bpv7/doc/pod1/mqttclo.pod — man page

Build system:

  • configure.ac: --with-paho-mqtt option, prefers libpaho-mqtt3cs (TLS),
    falls back to libpaho-mqtt3c with warning
  • Makefile.am: conditional ENABLE_MQTT build rules

Tests (both marked .optional, require mosquitto broker):

  • tests/loopback-mqtt — basic loopback send/receive
  • tests/mqtt-store-forward — offline subscriber queuing and redelivery

Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

zebastian and others added 3 commits March 21, 2026 00:48
Implement a new CLA pair (mqttcli/mqttclo) that uses an MQTT broker
for direct or store-and-forward bundle delivery.

this uses the Eclipse Paho MQTT C synchronous client (libpaho-mqtt3cs)
mqtt specifics:
  - Persistent sessions (cleansession=0) for offline queuing
  - Topic scheme: ion/bundles/<duct_suffix>
  - Optional username/password auth (-u/-p flags)
  - Optional TLS with server and mutual authentication (-t/-c/-C/-k/-K)

  New files:
  - bpv7/mqtt/mqttcla.h       — shared constants, duct parser, config helpers
  - bpv7/mqtt/mqttclo.c       — output daemon (MQTT publisher)
  - bpv7/mqtt/mqttcli.c       — input daemon (MQTT subscriber)
  - bpv7/doc/pod1/mqttcli.pod — man page
  - bpv7/doc/pod1/mqttclo.pod — man page

  Build system:
  - configure.ac: --with-paho-mqtt option, prefers libpaho-mqtt3cs (TLS),
    falls back to libpaho-mqtt3c with warning
  - Makefile.am: conditional ENABLE_MQTT build rules

  Tests (both marked .optional, require mosquitto broker):
  - tests/loopback-mqtt        — basic loopback send/receive
  - tests/mqtt-store-forward   — offline subscriber queuing and redelivery

  Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@iondev33
iondev33 requested review from 250MHz and iondev33 as code owners July 30, 2026 21:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant