Networked Media Open Specifications

NMOS Control Feature Sets: Monitoring

Includes models for control classes and datatypes used for monitoring.

Datatypes

NcOverallStatus

// Overall status enum data type
enum NcOverallStatus {
    "Inactive",          // 0 Inactive
    "Healthy",           // 1 The overall status is healthy
    "PartiallyHealthy",  // 2 The overall status is partially healthy
    "Unhealthy"          // 3 The overall status is unhealthy
};

NcLinkStatus

// Link status enum data type
enum NcLinkStatus {
    "AllUp",        // 1 All the associated network interfaces are up
    "SomeDown",     // 2 Some of the associated network interfaces are down
    "AllDown"       // 3 All the associated network interfaces are down
};

NcConnectionStatus

// Connection status enum data type
enum NcConnectionStatus {
    "Inactive",          // 0 Inactive
    "Healthy",           // 1 Active and healthy
    "PartiallyHealthy",  // 2 Active and partially healthy
    "Unhealthy"          // 3 Active and unhealthy
};

NcTransmissionStatus

// Transmission status enum data type
enum NcTransmissionStatus {
    "Inactive",          // 0 Inactive
    "Healthy",           // 1 Active and healthy
    "PartiallyHealthy",  // 2 Active and partially healthy
    "Unhealthy"          // 3 Active and unhealthy
};

NcSynchronizationStatus

// Synchronization status enum data type
enum NcSynchronizationStatus {
    "NotUsed",                  // 0 Feature not in use
    "Healthy",                  // 1 Locked to a synchronization source
    "PartiallyHealthy",         // 2 Partially locked to a synchronization source
    "Unhealthy"                 // 3 Not locked to a synchronization source
};

NcStreamStatus

// Stream status enum data type
enum NcStreamStatus {
    "Inactive",          // 0 Inactive
    "Healthy",           // 1 Active and healthy
    "PartiallyHealthy",  // 2 Active and partially healthy
    "Unhealthy"          // 3 Active and unhealthy
};

NcEssenceStatus

// Essence status enum data type
enum NcEssenceStatus {
    "Inactive",          // 0 Inactive
    "Healthy",           // 1 Active and healthy
    "PartiallyHealthy",  // 2 Active and partially healthy
    "Unhealthy"          // 3 Active and unhealthy
};

NcCounter

// Counter data type
interface NcCounter {
    attribute NcString     name; // Counter name
    attribute NcUint64     value; // Counter value
    attribute NcString?    description; // Optional counter description
};

NcMethodResultCounters

// Counters method result
interface NcMethodResultCounters: NcMethodResult {
    attribute sequence<NcCounter>    value; // Counters
};

Control classes

NcStatusMonitor

This is the base class for all feature status monitors. This class makes it easy for clients to determine the high level overallStatus of a monitor. All status monitors in a device model can be easily found by searching for NcStatusMonitors classes using the FindMembersByClassId method found in block classes.

// Baseline status monitoring class
[control-class("1.2.2")] interface NcStatusMonitor: NcWorker {
    [element("3p1")]    readonly    attribute    NcOverallStatus    overallStatus;      // Overall status property
    [element("3p2")]    readonly    attribute    NcString?    overallStatusMessage;     // Overall status message property
    [element("3p3")]                attribute    NcUint32    statusReportingDelay;      // Status reporting delay property (in seconds, default is 3s and 0 means no delay)
};

NcReceiverMonitor

Receiver monitoring class required for expressing statuses of different domains (connectivity, synchronization, stream validation).

Because it derives from the NcStatusMonitor base class it will also expose an overallStatus property.

It uses the Touchpoint mechanism inherited from NcObject to identify the NMOS receiver resource being monitored.

Receiver monitors MUST maintain a 1 to 1 relationship between their role and the touchpoint receiver entity they monitor as long as the receiver entity hasn’t been disposed by the device.

// Receiver monitor class descriptor
[control-class("1.2.2.1")] interface NcReceiverMonitor: NcStatusMonitor {
    [element("4p1")]     readonly    attribute    NcLinkStatus    linkStatus;    // Link status property
    [element("4p2")]     readonly    attribute    NcString?    linkStatusMessage;    // Link status message property
    [element("4p3")]     readonly    attribute    NcUint64    linkStatusTransitionCounter;    // Link status transition counter property
    [element("4p4")]     readonly    attribute    NcConnectionStatus    connectionStatus;    // Connection status property
    [element("4p5")]     readonly    attribute    NcString?    connectionStatusMessage;    // Connection status message property
    [element("4p6")]     readonly    attribute    NcUint64    connectionStatusTransitionCounter;    // Connection status transition counter property
    [element("4p7")]     readonly    attribute    NcSynchronizationStatus    externalSynchronizationStatus;    // External synchronization status property
    [element("4p8")]     readonly    attribute    NcString?    externalSynchronizationStatusMessage;    // External synchronization status message property
    [element("4p9")]     readonly    attribute    NcUint64    externalSynchronizationStatusTransitionCounter;    // External synchronization status transition counter property
    [element("4p10")]    readonly    attribute    NcString?    synchronizationSourceId;    // Synchronization source id property
    [element("4p11")]    readonly    attribute    NcStreamStatus    streamStatus;    // Stream status property
    [element("4p12")]    readonly    attribute    NcString?    streamStatusMessage;    // Stream status message property
    [element("4p13")]    readonly    attribute    NcUint64    streamStatusTransitionCounter;    // Stream status transition counter property
    [element("4p14")]                attribute    NcBoolean    autoResetCounters;    // Automatic reset counters property (default: true)

    // Gets the lost packet counters
    [element("4m1")]    NcMethodResultCounters GetLostPacketCounters();

    // Gets the late packet counters
    [element("4m2")]    NcMethodResultCounters GetLatePacketCounters();

    // Resets ALL counters
    [element("4m3")]    NcMethodResult ResetCounters();
};

NcSenderMonitor

Sender monitoring class required for expressing statuses of different domains (connectivity, synchronization, essence validation).

Because it derives from the NcStatusMonitor base class it will also expose an overallStatus property.

It uses the Touchpoint mechanism inherited from NcObject to attach to the correct sender identity.

Sender monitors MUST maintain a 1 to 1 relationship between their role and the touchpoint sender entity they monitor as long as the sender entity hasn’t been disposed by the device.

// Sender monitor class descriptor
[control-class("1.2.2.2")] interface NcSenderMonitor: NcStatusMonitor {
    [element("4p1")]     readonly    attribute    NcLinkStatus    linkStatus;    // Link status property
    [element("4p2")]     readonly    attribute    NcString?    linkStatusMessage;    // Link status message property
    [element("4p3")]     readonly    attribute    NcUint64    linkStatusTransitionCounter;    // Link status transition counter property
    [element("4p4")]     readonly    attribute    NcTransmissionStatus    transmissionStatus;    // Transmission status property
    [element("4p5")]     readonly    attribute    NcString?    transmissionStatusMessage;    // Transmission status message property
    [element("4p6")]     readonly    attribute    NcUint64    transmissionStatusTransitionCounter;    // Transmission status transition counter property
    [element("4p7")]     readonly    attribute    NcSynchronizationStatus    externalSynchronizationStatus;    // External synchronization status property
    [element("4p8")]     readonly    attribute    NcString?    externalSynchronizationStatusMessage;    // External synchronization status message property
    [element("4p9")]     readonly    attribute    NcUint64    externalSynchronizationStatusTransitionCounter;    // External synchronization status transition counter property
    [element("4p10")]    readonly    attribute    NcString?    synchronizationSourceId;    // Synchronization source id property
    [element("4p11")]    readonly    attribute    NcEssenceStatus    essenceStatus;    // Essence status property
    [element("4p12")]    readonly    attribute    NcString?    essenceStatusMessage;    // Essence status message property
    [element("4p13")]    readonly    attribute    NcUint64    essenceStatusTransitionCounter;    // Essence status transition counter property
    [element("4p14")]                attribute    NcBoolean    autoResetCounters;    // Automatic reset counters property (default: true)

    // Gets the transmission error counters
    [element("4m1")]    NcMethodResultCounters GetTransmissionErrorCounters();

    // Resets ALL counters
    [element("4m2")]    NcMethodResult ResetCounters();
};