Information Model for Large-Scale Measurement Platforms (LMAPs)
Extracted elements (31)
An MA may report a Group-ID in place of the MA-ID so that the MA remains anonymous, which is especially useful to prevent tracking of mobile MA devices while still allowing aggregate analysis by group.
Instruction Information is split into four independent elements (Task Configurations, Report Channels, Schedules, Suppressions) so each can be updated independently without affecting the others, reducing data overhead and supporting different update cycles.
Suppression is a separate object distinct from Instruction Schedules so that measurements can be temporarily halted and then automatically resumed without removing or modifying the underlying Schedule, and can be delivered on a different timing or protocol than the Schedule itself.
The default Schedule execution mode is pipelined so that data produced by one Action flows directly into the subsequent Action; sequential and parallel modes are alternatives to accommodate non-pipeline Task chaining patterns.
A YANG data model implementing this Information Model is defined in RFC 8194; implementors seeking a concrete protocol-level binding for the Control and Report Protocols should refer to that companion document.
A Measurement Agent is controlled by exactly one Controller at a time. If the MA-ID is not provided during preconfiguration, it MUST be provided by the Controller during the Configuration phase.
A specific Schedule can only be active once; attempts to start a Schedule while the same Schedule is still running will fail (effectively MUST NOT overlap).
For Event objects specifying a series of Events, it is generally a good idea to configure an end time and refresh it as needed, so that MAs that lose connectivity to their Controller do not continue executing Schedules forever.
It is RECOMMENDED that MA implementations by default retain old measurement data and stop executing new Measurement Tasks when the MA runs out of storage capacity.
Suppression has no effect on Controller Tasks or Controller Schedules; Control Schedules and Tasks cannot be suppressed, as evidenced by the absence of Suppression information in the Configuration object.
The datetime type used throughout the LMAP Information Model MUST conform to RFC 3339.
The ma-action-obj associates a named configured Task with schedule-specific options (appended to Task Configuration options), an optional set of Destination Schedule names that receive the Action's output, and optional tags and suppression-tags.
The ma-capability-obj advertises MA hardware, firmware, and version information along with an optional list of supported Task capabilities (ma-capability-task-obj), each carrying the task name, version, and registry function entries it implements.
The ma-channel-obj defines a bidirectional communication endpoint (Controller or Collector), holding the remote location, security credentials, and optionally the certificate of the Controller or its CA for use with TLS.
The ma-config-obj carries Configuration Information from the Controller, including a mandatory MA UUID (ma-config-agent-id), updated control tasks/channels/schedules, credentials, optional group-id, measurement-point identifier, boolean report flags, and a controller-timeout in seconds.
The ma-event-obj and its subtypes (periodic, calendar, one-off, immediate, startup, controller-lost, controller-connected) define the triggers for Schedule execution; each Schedule references exactly one Event object.
The ma-instruction-obj carries the complete set of Instruction Information from the Controller: unordered sets of Task objects, Channel objects, Schedule objects, and an optional set of Suppression objects.
The ma-log-obj models generic logging information transmitted from the MA to the Controller, containing the MA UUID, an event datetime, a machine-readable code, and a human-readable description.
The ma-preconfig-obj describes the minimal information preconfigured on the MA before any Controller contact, comprising at least one control Task, one or more Channels (including Controller URL and certificate), one or more Schedules, optional device-id URI, and security credentials.
The ma-report-conflict-obj records the schedule name, action name, and task name of a concurrent Action that may have impacted a reported measurement result, enabling post-hoc data quality assessment.
The ma-report-obj is the top-level report transmitted to a Collector, containing a mandatory generation timestamp (ma-report-date), optional MA UUID, group-id, measurement-point identifier, and an unordered set of per-action result objects.
The ma-report-result-obj carries per-action result metadata: schedule/action/task names, joined options and tags, event/start/end times, an optional cycle-number in YYYYMMDD.HHMMSS UTC format, a status code, conflict references, and tabular result data.
The ma-schedule-obj is the primary scheduling object containing a unique name, a mandatory start Event, optional end Event and duration in seconds, an ordered list of Actions, an execution mode (sequential/parallel/pipelined), and optional tags and suppression-tags.
The ma-status-interface-obj exposes per-network-interface status including name, type, optional speed in bps, optional link-layer address, and ordered lists of IP addresses, gateways, and DNS servers.
The ma-suppression-obj controls temporary suppression of Schedules or Actions; it carries a unique name, optional start/end Events, a glob-pattern match list (POSIX fnmatch style without path semantics), and an optional boolean to stop currently running matching tasks.
The ma-task-obj and ma-option-obj define a Task Configuration with registry entries identifying the executable, plus ordered name-value option pairs; Action options are appended to Task Configuration options in report output.
Each Channel carries security credentials for mutual authentication between the MA and Controller/Collector; the Channel may hold the Controller's TLS certificate or the certificate of the issuing CA, allowing certificate validation before communication begins.
The ma-config-controller-timeout field implements a fail-safe: when the controller-timeout interval elapses without a successful Controller contact, a controller-lost Event is raised that can trigger suspension of Instruction Schedules, preventing stale instructions from executing indefinitely.
A Schedule has four states reported in ma-status-schedule-obj: 'enabled' (waiting), 'running' (currently executing), 'suppressed' (suppression active), and 'disabled'. Counters track invocations, suppressions, overlaps, and failures.
A Suppression object has three states in ma-status-suppression-obj: 'enabled' (configured but start Event not yet reached), 'active' (currently suppressing matched Schedules/Actions), and 'disabled'.
An Action mirrors Schedule states with four values in ma-status-action-obj: 'enabled', 'running', 'suppressed', and 'disabled'. Additional fields record last-invocation, last-completion, last-status, last-message, last-failed-completion, last-failed-status, and last-failed-message.