Module svs_gossip

Module svs_gossip 

Source
Expand description

SvsServiceDiscovery — SVS-backed push service-record notifications.

Joins the SVS sync group at /ndn/local/sd/updates/ so that service record changes are pushed to all group members rather than requiring periodic pulls. Nodes that only need occasional browsability continue to use ServiceDiscoveryProtocol via /ndn/local/sd/services/.

§Architecture

The SVS background task is fully async (join_svs_group), but DiscoveryProtocol hooks are synchronous. The bridge uses two tokio::sync::mpsc channels:

 on_inbound ──►  incoming_tx ──► SVS task (merge, detect gaps)
 SVS task ──► outgoing_tx ──► on_tick drain ──► ctx.send_on (all neighbor faces)
 SVS updates ──► update_rx ──► on_tick drain ──► express fetch Interests

on_tick performs non-blocking draining of both channels using try_recv(). This keeps the synchronous discovery hooks from blocking while still processing all pending work in bounded time.

§Packet routing

All SVS Sync Interests arrive under /ndn/local/sd/updates/svs/…. This protocol claims /ndn/local/sd/updates/, so CompositeDiscovery routes these packets here before the forwarding pipeline sees them. Service record Data packets arrive under /ndn/local/sd/services/ and are handled by ServiceDiscoveryProtocol; this protocol only handles the sync control plane.

Structs§

SvsServiceDiscovery
SVS-backed push service-record discovery.