udmi

UDMI / Docs / Specs / Discovery / Generation

Discovery Generation

The generation field is a core mechanism in UDMI discovery and enumeration processes. It is used to trigger, track, and correlate discovery scans and self-enumeration requests. The generation value is an RFC 3339 formatted date-time string.

Depending on the context (e.g., self-enumeration vs. family scanning, sporadic vs. periodic), the generation field behaves differently. This document summarizes these different use cases and expectations.

1. Passive Scanning

A passive scan monitors the network without actively sending out probes. It operates continuously or based on network activity.

2. Active Scanning (Sporadic / One-Time)

A sporadic scan is an explicit, one-off request for a device to actively scan a network family for other devices.

3. Active Scanning (Periodic / Recurring)

A periodic scan is an active scan that repeats automatically at defined intervals, eliminating the need to update the configuration for every scan.

4. Self Enumeration

Self-enumeration is an explicit request for a single, already-registered device to describe its own capabilities (points, features, etc.), rather than scanning the network for other devices.

Summary Matrix

Mode Location in config Trigger / Role state Behavior events Behavior
Passive Scan N/A None required. No generation. No generation.
Active Sporadic families.<family>.generation Explicit timestamp triggers a one-off scan. Matches config.generation. Retained after stop. Matches config.generation.
Active Periodic families.<family>.generation + scan_interval_sec Base timestamp for calculating the schedule. Updates every loop to a new, unique timestamp ≥ config.generation. Matches the current loop’s updated generation.
Self Enumeration discovery.generation Explicit timestamp triggers self-reporting. Matches config.generation. Matches config.generation.