Integrating Third-Party Endpoints in IoT FND through CSMP

The CoAP Simple Management Protocol (CSMP) stack is open sourced as Open CSMP which allows the Cisco partners to register their endpoint devices in IoT FND. The CSMP stack is a preferred lightweight communication protocol that encourages the community and vendors to use FND as their preferred NMS. While registering their devices, the partners can define their own set of metadata files for capturing metric, property, event, or issue types for the new device type.

In phase 1 of third-party generic endpoint integration, Cisco IoT FND 4.8.1 release supports only the registration process. Periodic notification handling, firmware upgrade, config push, mark down job, licensing, and other features will be developed in the upcoming releases.

Table 1. Feature History
Feature Name Release Information Description

Integrating Third-Party Endpoints in IoT FND through CSMP

IoT FND 4.8.1

The CSMP code is shared with the Cisco partners which helps the partners to register their endpoint devices in IoT FND. When registering their devices, they can define their own set of metadata files for capturing metric, property, event, or issue types for the new device type.

Registering Third-Party Devices in IoT FND

For each device type to be added, multiple separate metadata files are available as templates under the endpoint-meta-templates directory. This directory is available when you install or upgrade to the latest Cisco IoT FND 4.8.1 version.

Procedure


Step 1

In the opt/cgms/server/cgms/conf directory, you can view the list of required templates to create an endpoint.

  • defaultdeviceTypeTemplate.json.template

  • defaultdeviceTypeTemplateNoIPRoute.json.template

  • deviceTypeEventTypes.xml.template

  • deviceTypeIssueTypes.xml.template

  • deviceTypeMeta.json.xml.template

  • deviceTypeMetricTypes.xml.template

  • deviceTypePropertyTypes.xml.template

  • deviceTypeSystemRules.xml.template

Step 2

Run the addGenericEndpoints.sh script in opt/cgms/bin directory. The system prompts for the device type name.

Step 3

Provide the device type name. The script creates the endpoint-meta directory under opt/cgms/server/cgms/conf directory, if not present already. If the name of the new device type is provided as endpointdevice1, then the sub directory is created under endpoint-meta directory:

opt/cgms/server/cgms/conf/endpoint-meta/endpointdevice1

The addGenericEndpoints.sh script copies all the template files from endpoint-meta-templates directory, renames them as per the device type name provided and moves it under new device type directory. The below example shows how the files will be renamed when the device type name is provided as endpointdevice1:

  • defaultendpointdevice1Template.json

  • defaultendpointdevice1TemplateNoIPRoute.json

  • endpointdevice1EventTypes.xml

  • endpointdevice1IssueTypes.xml

  • endpointdevice1Meta.json.xml

  • endpointdevice1MetricTypes.xml

  • endpointdevice1PropertyTypes.xml

  • endpointdevice1SystemRules.xml

Note

 

Addition of new template files or removal of existing set of template files is not allowed.

Step 4

Edit the endpointdevice1Meta.json file for registration of new device by providing values in the required fields.

{
 “device_info”: {
 “device_type”: “ ”,
 “device_function”: “ “,
 “device_description”: “ “, 
 “display_string”: “ “,
 “pids”: [ ] ,
 
 “device_actions”: [
 “reboot”,
  “ping”,
 “traceroute”, 
 “inventory”,
     ]
   }
}

The description for each field is provided below.

Field Description

device_type

Enter alphanumeric characters for the name of the device type to be registered (for example, endpointdevice1).

device_function

Mention any of the existing mesh functions. The list of device functions currently supported in IoT FND are meter, extender, gateway, cge, root, controller, sensor, networknode, gasmeter.

device_description

Provide a brief information about the device type.

display_string

Enter only the display name for the endpoint device as it is displayed in the left side tree in Field Devices page under Endpoint category. The display string is in the format of <device function>-<display string> (for example, METER-ENDPOINTDEVICE1). The device function is obtained from the function entered by you.

pids

Enter the device pids as comma separated values (for example, “spid1”, “spid2”).

device_actions

The actions that can be performed on the Device Details page are Show on Map, Ping, Traceroute, Refresh Metrics, Reboot, Sync Config Membership.

Step 5

Start IoT FND after adding or updating the metadata files. IoT FND reads the endpoint-meta directory and creates the appropriate tables in IoT FND for each device type. In case of any issues during IoT FND start up, it logs the errors in server.log and continues with the startup process.

Step 6

Once IoT FND is restarted, you can add the devices to IoT FND by importing the csv file. For more information about adding endpoints, see Adding Routers, Head-End Routers, IC3000 Gateway, Endpoint and Extenders and IR500 in Bulk. On addition, the device gets listed under Endpoints Category in the Field Devices page.


Registering Devices in Cluster Environment

The devices are registered in IoT FND by executing the addGenericEndpoints.sh script and creating the endpoint-meta directory. You can edit the devicetypeMeta.json file in the endpoint-meta directory to add the device details and restart IoT FND. In a cluster,

  • Run the script and add the device types in various IoT FND instances.

  • Restart the service of all IoT FND instances that are part of the cluster.

On restart, IoT FND picks up the device types that are added in all the IoT FND instances.

Adding Property Types, Metric Types, and Issue Types

To add mesh property types, mesh metric types, event types, and issue types for the newly registered device:

Procedure


Step 1

Create a new device type using the script, if not done already.

Step 2

Edit the json or xml files present in the new device type directory for newer metric, property, event, or issue types.

For example, if you want to include other metric types apart from the available list, you can edit the existing template and include other metric types. The same applies for property types, event types, issue types, and system rules as well.

Note

 
Restart IoT FND after editing the metadata files.

Mesh Property Types

The following is a sample list of mesh property types for the end point device.

<?xml version="1.0" encoding="UTF-8" ?>
<cgms xmlns="http://www.w3schools.com"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://www.w3schools.com propertyTypes.xsd">
  <propertyTypes kind="cgmesh">
    <propertyType>
      <name>meshAddress</name>
      <displayName>Mesh Link IP Address</displayName>
      <description>The IP address of the mesh link. Assigned automatically by the NMS during registration</description>
    </propertyType>
    <propertyType>
      <name>meshLocalAddress</name>
      <displayName>Mesh Link Local Address</displayName>
      <description>The local WPAN address of the mesh link. Assigned automatically by the NMS during registration</description>
    </propertyType>
    <propertyType>
      <name>meshPrefix</name>
      <displayName>Mesh Link Prefix</displayName>
      <description>The subnet prefix address</description>
    </propertyType>
    <propertyType>
      <name>meshPrefixLength</name>
      <displayName>Mesh Link Prefix Length</displayName>
      <description>The subnet prefix address length</description>
    </propertyType>
    <propertyType>
      <name>meshSsid</name>
      <displayName>SSID</displayName>
      <description>The mesh SSID</description>
    </propertyType>
    <propertyType>
      <name>meshPanid</name>
      <displayName>PANID</displayName>
      <description>The subnet PAN ID</description>
    </propertyType>
    <propertyType>
      <name>meshTxPower</name>
      <displayName>Transmit Power</displayName>
      <description>The mesh transmit power</description>
    </propertyType>
    <propertyType>
      <name>meshSecMode</name>
      <displayName>Security Mode</displayName>
      <description>Mesh Security mode: 0 indicates none, 1 indicates 802.1x with 802.11i key management</description>
    </propertyType>
    <propertyType>
      <name>meterId</name>
      <displayName>Meter Id</displayName>
      <description>The Meter Id of comm module</description>
    </propertyType>
    <propertyType>
      <name>meterCert</name>
      <displayName>Meter Certificate</displayName>
      <description>The subject name of the meter certificate</description>
    </propertyType>
    <propertyType>
      <name>toneMapFwdModulation</name>
      <displayName>Mesh Tone Map Forward Modulation</displayName>
      <description>Mesh tone map forward modulation: 0 = 'Robo', 1 = 'DBPSK', 2 = 'DQPSK', 3 = 'D8PSK'</description>
    </propertyType>
    <propertyType>
      <name>toneMapFwdMap</name>
      <displayName>Mesh Tone Map Forward Map</displayName>
      <description>Mesh tone map forward map bit vector, e.g., "0011000011100111"</description>
    </propertyType>
    <propertyType>
      <name>toneMapRevModulation</name>
      <displayName>Mesh Tone Map Reverse Modulation</displayName>
      <description>Mesh tone map reverse modulation: 0 = 'Robo', 1 = 'DBPSK', 2 = 'DQPSK', 3 = 'D8PSK'</description>
    </propertyType>
    <propertyType>
      <name>toneMapRevMap</name>
      <displayName>Mesh Tone Map Reverse Map</displayName>
      <description>Mesh tone map reverse map bit vector, e.g., "0011000011100111"</description>
    </propertyType>
    <propertyType>
      <name>manufacturer</name>
      <displayName>Manufacturer of the Endpoints</displayName>
      <description>Manufacturer of the endpoint as reported through CSMP from the mesh</description>
    </propertyType>
    <propertyType>
      <name>physicalDescr</name>
      <displayName>Physical Description</displayName>
      <description>Description of the hardware</description>
    </propertyType>
    <propertyType>
   <name>bbuPresent</name>
      <displayName>BBU Present</displayName>
      <description>Battery Backup is present.</description>
    </propertyType>
    <propertyType>
      <name>bbuReady</name>
      <displayName>BBU Ready</displayName>
      <description>Battery Backup Unit is ready.</description>
    </propertyType>
    <propertyType>
      <name>powerSource</name>
      <displayName>Power Source</displayName>
      <description>The current power source of the device.</description>
    </propertyType>
    <propertyType>
      <name>batteryState</name>
      <displayName>Battery State</displayName>
      <description>The current battery state of the device.</description>
    </propertyType>
    <propertyType>
      <name>lastRegReason</name>
      <displayName>Last Registration Reason</displayName>
      <description>Reason for the most recent device registration</description>
      <propertyValueMap text="unknown" value="0"/>
      <propertyValueMap text="Cold boot" value="1"/>
      <propertyValueMap text="Manual re-registration" value="2"/>
      <propertyValueMap text="Rejoined with new IP" value="3"/>
      <propertyValueMap text="NMS address changed" value="4"/>
      <propertyValueMap text="Redirected NMS address" value="5"/>
      <propertyValueMap text="NMS error" value="6"/>
      <propertyValueMap text="Certificate changed" value="7"/>
      <propertyValueMap text="Power restoration" value="8"/>
      <propertyValueMap text="Parent node changed" value="9"/>
      <propertyValueMap text="Firmware updated" value="10"/>
    </propertyType>
    <propertyType>
      <name>previousMeshPanid</name>
      <displayName>Previous PANID</displayName>
      <description>The previous subnet PAN ID</description>
    </propertyType>
    <propertyType>
      <name>useCoap6</name>
      <displayName>Use CoAP Version 6</displayName>
      <description>Device is using CoAP version 6 for management messages</description>
    </propertyType>
    <propertyType>
      <name>meshProtocol</name>
      <displayName>Mesh Protocol</displayName>
      <description>Display the Mesh Protocol</description>
          <propertyValueMap text="Pre Wi-SUN" value="0"/>
          <propertyValueMap text="Wi-SUN 1.0" value="1"/>
    </propertyType>
    <propertyType>
      <name>sdkVersion</name>
      <displayName>SDK Version</displayName>
      <description>SDK version of the device</description>
    </propertyType>
    <propertyType>
      <name>patchCapability</name>
      <displayName>Patch Capability</displayName>
      <description>Patch Capability including patch support, version, window size and lookahead size</description>
    </propertyType>
    <propertyType>
      <name>patchChopSize</name>
      <displayName>Patch Chop Size</displayName>
      <description>Maximum Chop Size nodes can support</description>
    </propertyType>
    <propertyType>
      <name>patchVolumeSize</name>
      <displayName>Patch Volume Size</displayName>
      <description>Patch Volume size</description>
    </propertyType>
    <propertyType>
      <name>certAutoRenewSettings</name>
      <displayName>Certificate Auto Renew Settings</displayName>
      <description>Display the Certificate Renew Settings</description>
    </propertyType>
    <propertyType>
      <name>aclInterfaceNameLp</name>
      <displayName>Interface Name</displayName>
      <description>Interface Name for Low Pan Interface</description>
    </propertyType>
    <propertyType>
      <name>aclDroppedCounterLp</name>
      <displayName>Dropped Counter</displayName>
      <description>Dropped Counter for Low Pan Interface</description>
    </propertyType>
    <propertyType>
      <name>aclDroppedSrcIpLp</name>
      <displayName>Dropped Source IP</displayName>
      <description>Dropped Source IP for Low Pan Interface</description>
    </propertyType>
    <propertyType>
      <name>aclDroppedDstIpLp</name>
      <displayName>Dropped Destination IP</displayName>
      <description>Dropped Destination IP for Low Pan Interface</description>
    </propertyType>
    <propertyType>
      <name>aclProtocolLp</name>
      <displayName>Protocol</displayName>
      <description>Protocol for Low Pan Interface</description>
    </propertyType>
    <propertyType>
      <name>aclDirectionLp</name>
      <displayName>Direction</displayName>
      <description>Direction for Low Pan Interface</description>
    </propertyType>
    <propertyType>
      <name>aclSrcPortLp</name>
      <displayName>Source Port</displayName>
      <description>Source Port for Low Pan Interface</description>
    </propertyType>
    <propertyType>
      <name>aclDstPortLp</name>
      <displayName>Destination Port</displayName>
      <description>Destination Port for Low Pan Interface</description>
    </propertyType>
    <propertyType>
      <name>aclMaxRateLimit</name>
      <displayName>ACL Max Rate Limit (kb/s)</displayName>
      <description>ACL Max Rate Limit used for Rate Limit validation</description>
    </propertyType>
  </propertyTypes>
</cgms>

Mesh Metric Types

The following is a sample list of mesh metric types for the end point device.

<?xml version="1.0" encoding="UTF-8" ?>
<cgms xmlns="http://www.w3.org"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <metricTypes kind="cgmesh">
    <metricType>
      <name>uptime</name>
      <valueType>gauge</valueType>
      <displayName>Uptime</displayName>
      <unit>sec</unit>
      <description>The amount of time in seconds that the element has been running since last boot</description>
      <lowerBound>0</lowerBound>
      <upperBound>31536000</upperBound>
      <displayFormat>secondsToTime</displayFormat>
    </metricType>
    <metricType>
      <name>meshTxSpeed</name>
      <valueType>gauge</valueType>
      <displayName>Mesh Link Transmit Speed</displayName>
      <unit>bits/sec</unit>
      <description>The current speed of data transmission over the uplink network interface, measured in bits per second, averaged over a short element-specific time period (e.g. an hour)</description>
      <lowerBound>0</lowerBound>
      <upperBound>76800</upperBound>
      <displayFormat>###,###</displayFormat>
    </metricType>
    <metricType>
      <name>meshTxDrops</name>
      <valueType>gauge</valueType>
      <displayName>Mesh Link Transmit Packet Drops</displayName>
      <unit>drops/sec</unit>
      <description>The rate of packets that were dropped while trying to transmit on the uplink interface because the outbound queue was full</description>
      <lowerBound>0</lowerBound>
      <upperBound>1</upperBound>
      <displayFormat>###,###</displayFormat>
    </metricType>
    <metricType>
      <name>meshRxSpeed</name>
      <valueType>gauge</valueType>
      <displayName>Mesh Link Receive Speed</displayName>
      <unit>bits/sec</unit>
      <description>The rate of data that has been received by the uplink network interface, measured in bits per second, averaged over a short element-specific time period (e.g. an hour)</description>
      <lowerBound>0</lowerBound>
      <upperBound>76800</upperBound>
      <displayFormat>###,###</displayFormat>
    </metricType>
    <metricType>
      <name>meshRxReassemblyDrops</name>
      <valueType>gauge</valueType>
      <displayName>Mesh Link Receive Packet Reassembly Drops</displayName>
      <unit>drops/sec</unit>
      <description>The rate of incoming packet fragments that were dropped because there was no space in the reassembly buffer</description>
      <lowerBound>0</lowerBound>
      <upperBound>1</upperBound>
    </metricType>
    <metricType>
      <name>meshHops</name>
      <valueType>gauge</valueType>
      <displayName>Mesh Route RPL Hops</displayName>
      <unit>hops</unit>
      <description>The number of hops that the element is from the root of its RPL routing tree</description>
      <lowerBound>1</lowerBound>
      <upperBound>8</upperBound>
      <displayFormat>###</displayFormat>
    </metricType>
    <metricType>
      <name>meshLinkCost</name>
      <valueType>gauge</valueType>
      <displayName>Mesh Route RPL Link Cost</displayName>
      <unit></unit>
      <description>The RPL cost value for the link between the element and its uplink neighbor</description>
      <lowerBound>1</lowerBound>
      <upperBound>3</upperBound>
      <invalidValue>65535</invalidValue>
      <displayFormat>###.##</displayFormat>
    </metricType>
    <metricType>
      <name>meshAbsolutePhase</name>
      <valueType>gauge</valueType>
      <displayName>Mesh absolute phase of power</displayName>
      <unit></unit>
      <description>Relative position of current and voltage waveforms for a PLC Node</description>
      <lowerBound>0</lowerBound>
      <upperBound>76800</upperBound>
    </metricType>
    <metricType>
      <name>meshPathCost</name>
      <valueType>gauge</valueType>
      <displayName>Mesh Route RPL Path Cost</displayName>
      <unit></unit>
      <description>The RPL path cost value between the element and the root of the routing tree</description>
      <lowerBound>1</lowerBound>
      <upperBound>24</upperBound>
      <invalidValue>65535</invalidValue>
      <displayFormat>###.##</displayFormat>
    </metricType>
    <metricType>
      <name>meshRssi</name>
      <valueType>gauge</valueType>
      <displayName>Mesh Route RSSI</displayName>
      <unit>dBm</unit>
      <description>The measured RSSI value of the primary mesh RF uplink</description>
      <lowerBound>-80</lowerBound>
      <upperBound>20</upperBound>
      <invalidValue>-128</invalidValue>
    </metricType>
    <metricType>
      <name>meshReverseRssi</name>
      <valueType>gauge</valueType>
      <displayName>Mesh Route Reverse RSSI</displayName>
      <unit>dBm</unit>
      <description>The RSSI value measured by the element's mesh uplink neighbor</description>
      <lowerBound>-80</lowerBound>
      <upperBound>20</upperBound>
      <invalidValue>-128</invalidValue>
    </metricType>
    <metricType>
      <name>toneMapFwdTxResRaw</name>
      <valueType>gauge</valueType>
      <displayName>Mesh Tone Map Forward Tx Res Raw</displayName>
      <unit></unit>
      <description>The txres field integer value in tone map forward message</description>
      <lowerBound>-1000</lowerBound>
      <upperBound>1000</upperBound>
    </metricType>
    <metricType>
      <name>toneMapFwdTxGainRaw</name>
      <valueType>gauge</valueType>
      <displayName>Mesh Tone Map Forward Tx Gain Raw</displayName>
      <unit></unit>
      <description>The txres gain integer value in tone map forward message</description>
      <lowerBound>-1000</lowerBound>
      <upperBound>1000</upperBound>
    </metricType>
    <metricType>
      <name>toneMapFwdTxGain</name>
      <valueType>gauge</valueType>
      <displayName>Mesh Tone Map Forward Tx Gain</displayName>
      <unit></unit>
      <description>Equals to txResRaw * txResGain</description>
      <lowerBound>-1000000</lowerBound>
      <upperBound>1000000</upperBound>
    </metricType>
    <metricType>
      <name>toneMapFwdToneQuality</name>
      <valueType>gauge</valueType>
      <displayName>Mesh Tone Map Forward Tone Quality</displayName>
      <unit></unit>
      <description>The number of bits set in the tone map forward vector</description>
      <lowerBound>0</lowerBound>
      <upperBound>24</upperBound>
    </metricType>
    <metricType>
      <name>toneMapRevTxResRaw</name>
      <valueType>gauge</valueType>
      <displayName>Mesh Tone Map Reverse Tx Res Raw</displayName>
      <unit></unit>
      <description>The txres field integer value in tone map reverse message</description>
      <lowerBound>-1000</lowerBound>
      <upperBound>1000</upperBound>
    </metricType>
    <metricType>
      <name>toneMapRevTxGainRaw</name>
      <valueType>gauge</valueType>
      <displayName>Mesh Tone Map Reverse Tx Gain Raw</displayName>
      <unit></unit>
      <description>The txres gain integer value in tone map reverse message</description>
      <lowerBound>-1000</lowerBound>
      <upperBound>1000</upperBound>
    </metricType>
    <metricType>
      <name>toneMapRevTxGain</name>
      <valueType>gauge</valueType>
      <displayName>Mesh Tone Map Reverse Tx Gain</displayName>
      <unit></unit>
      <description>Equals to txResRaw * txResGain</description>
      <lowerBound>-1000000</lowerBound>
      <upperBound>1000000</upperBound>
    </metricType>
    <metricType>
      <name>toneMapRevToneQuality</name>
      <valueType>gauge</valueType>
      <displayName>Mesh Tone Map Reverse Tone Quality</displayName>
      <unit></unit>
      <description>The number of bits set in the tone map reverse vector</description>
      <lowerBound>0</lowerBound>
      <upperBound>24</upperBound>
    </metricType>
    <metricType>
      <name>meshRank</name>
      <valueType>gauge</valueType>
      <displayName>Mesh Route RPL Rank</displayName>
      <unit></unit>
      <description>Rank is a representation of the location of the node within the RPL tree</description>
      <lowerBound>0</lowerBound>
      <upperBound>100</upperBound>
    </metricType>
    <metricType>
      <name>meshActiveLinkType</name>
      <valueType>gauge</valueType>
      <displayName>Mesh Active Link Type</displayName>
      <unit></unit>
      <description>Most recent device link type.
      Metric is populated only when RPL info is pulled from the associated router.
      </description>
      <lowerBound>0</lowerBound>
      <upperBound>4</upperBound>
      <displayFormat>valueToEnum</displayFormat>
    </metricType>
    <metricType>
      <name>meshRfPhyRxSpeed</name>
      <valueType>gauge</valueType>
      <displayName>Mesh Receive Speed (RF)</displayName>
      <unit>bits/sec</unit>
      <description>The rate of data that has been received by the network interface over RF, measured in bits per second, averaged over a short element-specific time period (e.g. an hour)</description>
      <lowerBound>0</lowerBound>
      <upperBound>76800</upperBound>
      <displayFormat>###,###</displayFormat>
    </metricType>
    <metricType>
      <name>meshRfPhyTxSpeed</name>
      <valueType>gauge</valueType>
      <displayName>Mesh Transmit Speed (RF)</displayName>
      <unit>bits/sec</unit>
      <description>The rate of data that has been transmitted by the network interface over RF, measured in bits per second, averaged over a short element-specific time period (e.g. an hour)</description>
      <lowerBound>0</lowerBound>
      <upperBound>76800</upperBound>
      <displayFormat>###,###</displayFormat>
</metricType>
    <metricType>
      <name>meshPlcPhyRxSpeed</name>
      <valueType>gauge</valueType>
      <displayName>Mesh Receive Speed (PLC)</displayName>
      <unit>bits/sec</unit>
      <description>The rate of data that has been received by the network interface over PLC, measured in bits per second, averaged over a short element-specific time period (e.g. an hour)</description>
      <lowerBound>0</lowerBound>
      <upperBound>76800</upperBound>
      <displayFormat>###,###</displayFormat>
    </metricType>
    <metricType>
      <name>meshPlcPhyTxSpeed</name>
      <valueType>gauge</valueType>
      <displayName>Mesh Transmit Speed (PLC)</displayName>
      <unit>bits/sec</unit>
      <description>The rate of data that has been transmitted by the network interface over PLC, measured in bits per second, averaged over a short element-specific time period (e.g. an hour)</description>
      <lowerBound>0</lowerBound>
      <upperBound>76800</upperBound>
      <displayFormat>###,###</displayFormat>
    </metricType>
    <metricType>
      <name>meshPlcRoboLinkUsage</name>
      <valueType>gauge</valueType>
      <displayName>Modulation Robo link usage</displayName>
      <unit></unit>
      <description>Cumulative link usage of modulation Robo</description>
      <lowerBound>0</lowerBound>
    </metricType>
    <metricType>
      <name>meshPlcBpskLinkUsage</name>
      <valueType>gauge</valueType>
      <displayName>Modulation Bpsk link usage</displayName>
      <unit></unit>
      <description>Cumulative link usage of modulation Bpsk</description>
      <lowerBound>0</lowerBound>
    </metricType>
    <metricType>
      <name>meshPlcQpskLinkUsage</name>
      <valueType>gauge</valueType>
      <displayName>Modulation Qpsk link usage</displayName>
      <unit></unit>
      <description>Cumulative link usage of modulation Qpsk</description>
      <lowerBound>0</lowerBound>
    </metricType>
    <metricType>
      <name>meshPlcPsk8LinkUsage</name>
      <valueType>gauge</valueType>
      <displayName>Modulation 8PSK link usage</displayName>
      <unit></unit>
      <description>Cumulative link usage of modulation 8PSK</description>
      <lowerBound>0</lowerBound>
    </metricType>
    <metricType>
      <name>meshPlcOpskLinkUsage</name>
      <valueType>gauge</valueType>
      <displayName>Modulation Opsk link usage</displayName>
      <unit></unit>
      <description>Cumulative link usage of modulation Opsk</description>
      <lowerBound>0</lowerBound>
    </metricType>
    <metricType>
      <name>meshRfFsk2C150WFecLU</name>
      <valueType>gauge</valueType>
      <displayName>Modulation Classic 2FSK 150 with FEC link usage</displayName>
      <unit></unit>
      <description>Cumulative link usage of modulation Classic 2FSK 150 with FEC</description>
      <lowerBound>0</lowerBound>
    </metricType>
    <metricType>
      <name>meshRfFsk2C150WtFecLU</name>
      <valueType>gauge</valueType>
      <displayName>Modulation Classic 2FSK 150 without FEC link usage</displayName>
      <unit></unit>
      <description>Cumulative link usage of modulation Classic 2FSK 150 without FEC</description>
      <lowerBound>0</lowerBound>
    </metricType> 
    <metricType>
      <name>meshRfFsk2Dr50WtFecLU</name>
      <valueType>gauge</valueType>
      <displayName>Modulation 2FSK 50 without FEC link usage</displayName>
      <unit></unit>
      <description>Cumulative link usage of modulation 2FSK 50 without FEC</description>
      <lowerBound>0</lowerBound>
    </metricType>    
    <metricType>
      <name>meshRfFsk2Dr150WtFecLU</name>
      <valueType>gauge</valueType>
      <displayName>Modulation 2FSK 150 without FEC link usage</displayName>
      <unit></unit>
      <description>Cumulative link usage of modulation 2FSK 150 without FEC</description>
      <lowerBound>0</lowerBound>
    </metricType>
    <metricType>
      <name>meshRfFsk2Dr150WFecLU</name>
      <valueType>gauge</valueType>
      <displayName>Modulation 2FSK 150 with FEC link usage</displayName>
      <unit></unit>
      <description>Cumulative link usage of modulation 2FSK 150 with FEC</description>
      <lowerBound>0</lowerBound>
    </metricType>
    <metricType>
      <name>meshLowpanTxSpeed</name>
      <valueType>gauge</valueType>
      <displayName>Mesh Link Transmit Speed for Lowpan</displayName>
      <unit>bits/sec</unit>
      <description>The current speed of data transmission over the uplink network interface, measured in bits per second, averaged over a short element-specific time period (e.g. an hour)</description>
      <lowerBound>0</lowerBound>
      <upperBound>76800</upperBound>
      <displayFormat>###,###.##</displayFormat>
    </metricType>
    <metricType>
      <name>meshLowpanTxDrops</name>
      <valueType>gauge</valueType>
      <displayName>Mesh Link Transmit Packet Drops for Lowpan</displayName>
      <unit>drops/sec</unit>
      <description>The rate of packets that were dropped while trying to transmit on the uplink interface because the outbound queue was full</description>
      <lowerBound>0</lowerBound>
      <upperBound>1</upperBound>
      <displayFormat>###,###.##</displayFormat>
    </metricType>
    <metricType>
      <name>meshLowpanRxSpeed</name>
      <valueType>gauge</valueType>
      <displayName>Mesh Link Receive Speed for Lowpan</displayName>
      <unit>bits/sec</unit>
      <description>The rate of data that has been received by the uplink network interface, measured in bits per second, averaged over a short element-specific time period (e.g. an hour)</description>
      <lowerBound>0</lowerBound>
      <upperBound>76800</upperBound>
      <displayFormat>###,###.##</displayFormat>
    </metricType>
    <metricType>
      <name>meshLowpanPhyTxSpeed</name>
      <valueType>gauge</valueType>
      <displayName>Physical Mesh Link Transmit Speed</displayName>
      <unit>bits/sec</unit>
      <description>The current speed of data transmission over the physical layer, measured in bits per second, averaged over a short element-specific time period (e.g. an hour)</description>
      <lowerBound>0</lowerBound>
      <upperBound>76800</upperBound>
      <displayFormat>###,###.##</displayFormat>
    </metricType>
    <metricType>
      <name>meshLowpanPhyRxSpeed</name>
      <valueType>gauge</valueType>
      <displayName>Physical Mesh Link Receive Speed</displayName>
      <unit>bits/sec</unit>
      <description>The rate of data that has been received by the phyical layer, measured in bits per second, averaged over a short element-specific time period (e.g. an hour)</description>
      <lowerBound>0</lowerBound>
      <upperBound>76800</upperBound>
      <displayFormat>###,###.##</displayFormat>
    </metricType>  
    <metricType>
      <deviceType>loopback</deviceType>
      <name>txSpeed</name>
      <valueType>counter</valueType>
      <displayName>Transmit Speed</displayName>
      <unit>bits/sec</unit>
      <description>The current speed of data transmission over the interface, measured in bits per second, averaged over a short element-specific time period (e.g. an hour)</description>
      <lowerBound>0</lowerBound>
      <upperBound>76800</upperBound>
    </metricType>
    <metricType>
      <deviceType>loopback</deviceType>
      <name>txDrops</name>
      <valueType>counter</valueType>
      <displayName>Transmit Packet Drops</displayName>
      <unit>drops/sec</unit>
      <description>The rate of packets that were dropped while trying to transmit on the interface because the outbound queue was full</description>
      <lowerBound>0</lowerBound>
      <upperBound>1</upperBound>
    </metricType>
    <metricType>
      <deviceType>loopback</deviceType>
      <name>rxSpeed</name>
      <valueType>counter</valueType>
      <displayName>Receive Speed</displayName>
      <unit>bits/sec</unit>
      <description>The rate of data that has been received by the network interface, measured in bits per second, averaged over a short element-specific time period (e.g. an hour)</description>
      <lowerBound>0</lowerBound>
      <upperBound>76800</upperBound>
    </metricType>
    <metricType>
      <deviceType>loopback</deviceType>
      <name>txUnicastPackets</name>
      <valueType>counter</valueType>
      <displayName>Transmit Unicast Packets</displayName>
      <unit>packets/sec</unit>
      <description>The current packet send rate over the interface, measured in packets per second, averaged over a short element-specific time period (e.g. an hour)</description>
      <lowerBound>0</lowerBound>
      <upperBound>76800</upperBound>
    </metricType>
    <metricType>
      <deviceType>loopback</deviceType>
      <name>rxUnicastPackets</name>
      <valueType>counter</valueType>
      <displayName>Receive Unicast Packets</displayName>
      <unit>packets/sec</unit>
      <description>The current packet receive rate over the interface, measured in packets per second, averaged over a short element-specific time period (e.g. an hour)</description>
      <lowerBound>0</lowerBound>
      <upperBound>76800</upperBound>
    </metricType>
    <metricType>
      <deviceType>wpan</deviceType>
      <name>txSpeed</name>
      <valueType>counter</valueType>
      <displayName>Transmit Speed</displayName>
      <unit>bits/sec</unit>
      <description>The current speed of data transmission over the interface, measured in bits per second, averaged over a short element-specific time period (e.g. an hour)</description>
      <lowerBound>0</lowerBound>
      <upperBound>76800</upperBound>
    </metricType>
    <metricType>
      <deviceType>wpan</deviceType>
        <name>queueJumpRate</name>
        <valueType>counter</valueType>
        <displayName>Rate of queue jump</displayName>
        <unit>packets/sec</unit>
        <description>The rate at which the packets were dropped from the queue due to higher priority network traffic</description>
        <lowerBound>0</lowerBound>
        <upperBound>1000000000</upperBound>
        <displayFormat>###,###</displayFormat>
    </metricType>
    <metricType>
        <deviceType>wpan</deviceType>
        <name>queueEvictionRate</name>
        <valueType>counter</valueType>
        <displayName>Rate of queue evictions</displayName>
        <unit>packets/sec</unit>
        <description>The rate at which the packets were enqueued due to lower priority network traffic</description>
        <lowerBound>0</lowerBound>
        <upperBound>1000000000</upperBound>
        <displayFormat>###,###</displayFormat>
    </metricType>
    <metricType>
      <deviceType>wpan</deviceType>
      <name>txDrops</name>
      <valueType>counter</valueType>
      <displayName>Transmit Packet Drops</displayName>
      <unit>drops/sec</unit>
      <description>The rate of packets that were dropped while trying to transmit on the interface because the outbound queue was full</description>
      <lowerBound>0</lowerBound>
      <upperBound>1</upperBound>
    </metricType>
    <metricType>
      <deviceType>wpan</deviceType>
      <name>rxSpeed</name>
      <valueType>counter</valueType>
      <displayName>Receive Speed</displayName>
      <unit>bits/sec</unit>
      <description>The rate of data that has been received by the network interface, measured in bits per second, averaged over a short element-specific time period (e.g. an hour)</description>
      <lowerBound>0</lowerBound>
      <upperBound>76800</upperBound>
    </metricType>
    <metricType>
      <deviceType>wpan</deviceType>
      <name>txUnicastPackets</name>
      <valueType>counter</valueType>
      <displayName>Transmit Unicast Packets</displayName>
      <unit>packets/sec</unit>
      <description>The current packet send rate over the interface, measured in packets per second, averaged over a short element-specific time period (e.g. an hour)</description>
      <lowerBound>0</lowerBound>
      <upperBound>76800</upperBound>
    </metricType>
    <metricType>
      <deviceType>wpan</deviceType>
      <name>rxUnicastPackets</name>
      <valueType>counter</valueType>
      <displayName>Receive Unicast Packets</displayName>
      <unit>packets/sec</unit>
      <description>The current packet receive rate over the interface, measured in packets per second, averaged over a short element-specific time period (e.g. an hour)</description>
      <lowerBound>0</lowerBound>
      <upperBound>76800</upperBound>
    </metricType>
    <metricType>
      <deviceType>wpan</deviceType>
      <name>rfPhyRxSpeed</name>
      <valueType>counter</valueType>
      <displayName>Receive Speed on RF link</displayName>
      <unit>bits/sec</unit>
      <description>The rate of data that has been received by the network interface over RF, measured in bits per second, averaged over a short element-specific time period (e.g. an hour)</description>
      <lowerBound>0</lowerBound>
      <upperBound>76800</upperBound>
    </metricType>
    <metricType>
      <deviceType>wpan</deviceType>
      <name>rfPhyTxSpeed</name>
      <valueType>counter</valueType>
      <displayName>Transmit Speed on RF link</displayName>
      <unit>bits/sec</unit>
      <description>The rate of data that has been transmitted by the network interface over RF, measured in bits per second, averaged over a short element-specific time period (e.g. an hour)</description>
      <lowerBound>0</lowerBound>
      <upperBound>76800</upperBound>
</metricType>
    <metricType>
      <deviceType>wpan</deviceType>
      <name>plcPhyRxSpeed</name>
      <valueType>counter</valueType>
      <displayName>Receive Speed on PLC link</displayName>
      <unit>bits/sec</unit>
      <description>The rate of data that has been received by the network interface over PLC, measured in bits per second, averaged over a short element-specific time period (e.g. an hour)</description>
      <lowerBound>0</lowerBound>
      <upperBound>76800</upperBound>
    </metricType>
    <metricType>
      <deviceType>wpan</deviceType>
      <name>plcPhyTxSpeed</name>
      <valueType>counter</valueType>
      <displayName>Transmit Speed on PLC link</displayName>
      <unit>bits/sec</unit>
      <description>The rate of data that has been transmitted by the network interface over PLC, measured in bits per second, averaged over a short element-specific time period (e.g. an hour)</description>
      <lowerBound>0</lowerBound>
      <upperBound>76800</upperBound>
</metricType>
    <metricType>
      <deviceType>wpan</deviceType>
      <name>rfFsk150LinkUsage</name>
      <valueType>cumulative</valueType>
      <displayName>Modulation Fsk150 link usage</displayName>
      <unit></unit>
      <description>Cumulative link usage of modulation fsk150</description>
      <lowerBound>0</lowerBound>
    </metricType>
    <metricType>
      <deviceType>wpan</deviceType>
      <name>plcRoboLinkUsage</name>
      <valueType>cumulative</valueType>
      <displayName>Modulation Robo link usage</displayName>
      <unit></unit>
      <description>Cumulative link usage of modulation Robo</description>
      <lowerBound>0</lowerBound>
    </metricType>
    <metricType>
      <deviceType>wpan</deviceType>
      <name>plcBpskLinkUsage</name>
      <valueType>cumulative</valueType>
      <displayName>Modulation Bpsk link usage</displayName>
      <unit></unit>
      <description>Cumulative link usage of modulation Bpsk</description>
      <lowerBound>0</lowerBound>
    </metricType>
    <metricType>
      <deviceType>wpan</deviceType>
      <name>plcQpskLinkUsage</name>
      <valueType>cumulative</valueType>
      <displayName>Modulation Qpsk link usage</displayName>
      <unit></unit>
      <description>Cumulative link usage of modulation Qpsk</description>
      <lowerBound>0</lowerBound>
    </metricType>
    <metricType>
      <deviceType>wpan</deviceType>
      <name>plcOpskLinkUsage</name>
      <valueType>cumulative</valueType>
      <displayName>Modulation Opsk link usage</displayName>
      <unit></unit>
      <description>Cumulative link usage of modulation Opsk</description>
      <lowerBound>0</lowerBound>
    </metricType>
    <metricType>
      <deviceType>wpan</deviceType>
      <name>rfFsk2C150WFecLU</name>
      <valueType>cumulative</valueType>
      <displayName>Modulation Classic 2FSK 150 with FEC link usage</displayName>
      <unit></unit>
      <description>Cumulative link usage of modulation Classic 2FSK 150 with FEC</description>
      <lowerBound>0</lowerBound>
    </metricType>
    <metricType>
      <deviceType>wpan</deviceType>
      <name>rfFsk2C150WtFecLU</name>
      <valueType>cumulative</valueType>
      <displayName>Modulation Classic 2FSK 150 without FEC link usage</displayName>
      <unit></unit>
      <description>Cumulative link usage of modulation Classic 2FSK 150 without FEC</description>
      <lowerBound>0</lowerBound>
    </metricType> 
    <metricType>
      <deviceType>wpan</deviceType>
      <name>rfFsk2Dr50WtFecLU</name>
      <valueType>cumulative</valueType>
      <displayName>Modulation 2FSK 50 without FEC link usage</displayName>
      <unit></unit>
      <description>Cumulative link usage of modulation 2FSK 50 without FEC</description>
      <lowerBound>0</lowerBound>
    </metricType>    
    <metricType>
      <deviceType>wpan</deviceType>
      <name>rfFsk2Dr150WtFecLU</name>
      <valueType>cumulative</valueType>
      <displayName>Modulation 2FSK 150 without FEC link usage</displayName>
      <unit></unit>
      <description>Cumulative link usage of modulation 2FSK 150 without FEC</description>
      <lowerBound>0</lowerBound>
    </metricType>
    <metricType>
      <deviceType>wpan</deviceType>
      <name>rfFsk2Dr150WFecLU</name>
      <valueType>cumulative</valueType>
      <displayName>Modulation 2FSK 150 with FEC link usage</displayName>
      <unit></unit>
      <description>Cumulative link usage of modulation 2FSK 150 with FEC</description>
      <lowerBound>0</lowerBound>
    </metricType>
    <metricType>
      <deviceType>wpan</deviceType>
      <name>phyTxSpeed</name>
      <valueType>counter</valueType>
      <displayName>Transmit Speed on PHY layer(PLC and RF combined)</displayName>
      <unit>bits/sec</unit>
      <description>The rate of data that has been transmitted by the network interface over physical layer, measured in bits per second, averaged over a short element-specific time period (e.g. an hour)</description>
      <lowerBound>0</lowerBound>
      <upperBound>76800</upperBound>
    </metricType>
    <metricType>
      <deviceType>wpan</deviceType>
      <name>phyRxSpeed</name>
      <valueType>counter</valueType>
      <displayName>Receive Speed on PHY layer(PLC and RF combined)</displayName>
      <unit>bits/sec</unit>
      <description>The rate of data that has been received by the network interface over physical layer, measured in bits per second, averaged over a short element-specific time period (e.g. an hour)</description>
      <lowerBound>0</lowerBound>
      <upperBound>76800</upperBound>
    </metricType>
    <metricType>
      <deviceType>ppp</deviceType>
      <name>txSpeed</name>
      <valueType>counter</valueType>
      <displayName>Transmit Speed</displayName>
      <unit>bits/sec</unit>
      <description>The current speed of data transmission over the interface, measured in bits per second, averaged over a short element-specific time period (e.g. an hour)</description>
      <lowerBound>0</lowerBound>
      <upperBound>76800</upperBound>
    </metricType>
    <metricType>
      <deviceType>ppp</deviceType>
      <name>txDrops</name>
      <valueType>counter</valueType>
      <displayName>Transmit Packet Drops</displayName>
      <unit>drops/sec</unit>
      <description>The rate of packets that were dropped while trying to transmit on the interface because the outbound queue was full</description>
      <lowerBound>0</lowerBound>
      <upperBound>1</upperBound>
    </metricType>
    <metricType>
      <deviceType>ppp</deviceType>
      <name>rxSpeed</name>
      <valueType>counter</valueType>
      <displayName>Receive Speed</displayName>
      <unit>bits/sec</unit>
      <description>The rate of data that has been received by the network interface, measured in bits per second, averaged over a short element-specific time period (e.g. an hour)</description>
      <lowerBound>0</lowerBound>
      <upperBound>76800</upperBound>
    </metricType>
    <metricType>
      <deviceType>ppp</deviceType>
      <name>txUnicastPackets</name>
      <valueType>counter</valueType>
      <displayName>Transmit Unicast Packets</displayName>
      <unit>packets/sec</unit>
      <description>The current packet send rate over the interface, measured in packets per second, averaged over a short element-specific time period (e.g. an hour)</description>
      <lowerBound>0</lowerBound>
      <upperBound>76800</upperBound>
    </metricType>
    <metricType>
      <deviceType>ppp</deviceType>
      <name>rxUnicastPackets</name>
      <valueType>counter</valueType>
      <displayName>Receive Unicast Packets</displayName>
      <unit>packets/sec</unit>
      <description>The current packet receive rate over the interface, measured in packets per second, averaged over a short element-specific time period (e.g. an hour)</description>
      <lowerBound>0</lowerBound>
      <upperBound>76800</upperBound>
    </metricType>
    <metricType>
      <deviceType>RPL</deviceType>
      <name>hops</name>
      <valueType>gauge</valueType>
      <displayName>Hops</displayName>
      <unit>hops</unit>
      <description>The number of hops that the element is from the root of its RPL routing tree</description>
      <lowerBound>1</lowerBound>
      <upperBound>8</upperBound>
      <displayFormat>###</displayFormat>
    </metricType>
    <metricType>
      <deviceType>RPL</deviceType>
      <name>linkCost</name>
      <valueType>gauge</valueType>
      <displayName>Link Cost</displayName>
      <unit></unit>
      <description>The RPL cost value for the link between the element and its uplink neighbor</description>
      <lowerBound>1</lowerBound>
      <upperBound>3</upperBound>
      <invalidValue>65535</invalidValue>
      <displayFormat>###</displayFormat>
    </metricType>
    <metricType>
      <deviceType>RPL</deviceType>
      <name>pathCost</name>
      <valueType>gauge</valueType>
      <displayName>Path Cost</displayName>
      <unit></unit>
      <description>The RPL path cost value between the element and the root of the routing tree</description>
      <lowerBound>1</lowerBound>
      <upperBound>24</upperBound>    
      <invalidValue>65535</invalidValue>
    </metricType>
    <metricType>
      <deviceType>RPL</deviceType>
      <name>rssi</name>
      <valueType>gauge</valueType>
      <displayName>RSSI</displayName>
      <unit>dBm</unit>
      <description>The measured RSSI value of the primary mesh RF uplink</description>
      <lowerBound>-80</lowerBound>
      <upperBound>20</upperBound>
      <invalidValue>-128</invalidValue>
    </metricType>
    <metricType>
      <deviceType>RPL</deviceType>
      <name>reverseRssi</name>
      <valueType>gauge</valueType>
      <displayName>Reverse RSSI</displayName>
      <unit>dBm</unit>
      <description>The RSSI value measured by the element's mesh uplink neighbor</description>
      <lowerBound>-80</lowerBound>
      <upperBound>20</upperBound>
      <invalidValue>-128</invalidValue>
    </metricType>
    <metricType>
      <deviceType>RPL</deviceType>
      <name>tmFwdTxResRaw</name>
      <valueType>gauge</valueType>
      <displayName>Mesh Tone Map Forward Tx Res Raw</displayName>
      <unit></unit>
      <description>The txres field integer value in tone map forward message</description>
      <lowerBound>-1000</lowerBound>
      <upperBound>1000</upperBound>
    </metricType>
    <metricType>
      <deviceType>RPL</deviceType>
      <name>tmFwdTxGainRaw</name>
      <valueType>gauge</valueType>
      <displayName>Mesh Tone Map Forward Tx Gain Raw</displayName>
      <unit></unit>
      <description>The txres gain integer value in tone map forward message</description>
      <lowerBound>-1000</lowerBound>
      <upperBound>1000</upperBound>
    </metricType>
    <metricType>
      <deviceType>RPL</deviceType>
      <name>tmFwdTxGain</name>
      <valueType>gauge</valueType>
      <displayName>Mesh Tone Map Forward Tx Gain</displayName>
      <unit></unit>
      <description>Equals to txResRaw * txResGain</description>
      <lowerBound>-1000000</lowerBound>
      <upperBound>1000000</upperBound>
    </metricType>
    <metricType>
      <deviceType>RPL</deviceType>
      <name>tmFwdToneQuality</name>
      <valueType>gauge</valueType>
      <displayName>Mesh Tone Map Forward Tone Quality</displayName>
      <unit></unit>
      <description>The number of bits set in the tone map vector</description>
      <lowerBound>0</lowerBound>
      <upperBound>24</upperBound>
    </metricType>
    <metricType>
      <deviceType>RPL</deviceType>
      <name>tmRevTxResRaw</name>
      <valueType>gauge</valueType>
      <displayName>Mesh Tone Map Reverse Tx Res Raw</displayName>
      <unit></unit>
      <description>The txres field integer value in tone map reverse message</description>
      <lowerBound>-1000</lowerBound>
      <upperBound>1000</upperBound>
    </metricType>
    <metricType>
      <deviceType>RPL</deviceType>
      <name>tmRevTxGainRaw</name>
      <valueType>gauge</valueType>
      <displayName>Mesh Tone Map Reverse Tx Gain Raw</displayName>
      <unit></unit>
      <description>The txres gain integer value in tone map reverse message</description>
      <lowerBound>-1000</lowerBound>
      <upperBound>1000</upperBound>
    </metricType>
    <metricType>
      <deviceType>RPL</deviceType>
      <name>tmRevTxGain</name>
      <valueType>gauge</valueType>
      <displayName>Mesh Tone Map Reverse Tx Gain</displayName>
      <unit></unit>
      <description>Equals to txResRaw * txResGain</description>
      <lowerBound>-1000000</lowerBound>
      <upperBound>1000000</upperBound>
    </metricType>
    <metricType>
      <deviceType>RPL</deviceType>
      <name>tmRevToneQuality</name>
      <valueType>gauge</valueType>
      <displayName>Mesh Tone Map Reverse Tone Quality</displayName>
      <unit></unit>
      <description>The number of bits set in the tone map reverse vector</description>
      <lowerBound>0</lowerBound>
      <upperBound>24</upperBound>
    </metricType>
    <metricType>
      <deviceType>RPL</deviceType>
      <name>absolutePhase</name>
      <valueType>gauge</valueType>
      <displayName>Mesh absolute phase of power</displayName>
      <unit></unit>
      <description>Relative position of current and voltage waveforms for a PLC Node</description>
      <lowerBound>0</lowerBound>
      <upperBound>76800</upperBound>
    </metricType>
    <metricType>
      <deviceType>RPL</deviceType>
      <name>rank</name>
      <valueType>gauge</valueType>
      <displayName>Mesh Route RPL Rank</displayName>
      <unit></unit>
      <description>Rank is a representation of the location of the node within the RPL tree</description>
      <lowerBound>0</lowerBound>
      <upperBound>100</upperBound>
    </metricType>
    <metricType>
      <name>nodeLocalTime</name>
      <valueType>gauge</valueType>
      <displayName>NodeTime</displayName>
      <unit>sec</unit>
      <description>UTC time as reported by the device</description>
      <lowerBound>0</lowerBound>
      <upperBound>4294967296</upperBound>
    </metricType>
    <metricType>
      <name>batteryLevel</name>
      <valueType>gauge</valueType>
      <displayName>Battery Level</displayName>
      <unit>percent</unit>
      <description>The percentage of charge remaining in battery</description>
      <lowerBound>0</lowerBound>
      <upperBound>101</upperBound>
    </metricType>
    <metricType>
      <name>batteryRuntime</name>
      <valueType>gauge</valueType>
      <displayName>Battery Remaining Time</displayName>
      <unit>minutes</unit>
      <description>The runtime remaining on battery</description>
      <lowerBound>0</lowerBound>
      <upperBound>65535</upperBound>
    </metricType>
    <metricType>
      <name>batteryChargeTime</name>
      <valueType>gauge</valueType>
      <displayName>Battery Charging Time</displayName>
      <unit>minutes</unit>
      <description>The time required to charge battery</description>
      <lowerBound>0</lowerBound>
      <upperBound>65535</upperBound>
    </metricType>
    <metricType>
        <name>totalQueueJumpCnt</name>
        <valueType>gauge</valueType>
        <displayName>Mesh Link Queue Jump Count</displayName>
        <unit>packets</unit>
        <description>Total count of jump packets or number of dequeue packets</description>
        <lowerBound>0</lowerBound>
        <upperBound>1000000000</upperBound>
        <displayFormat>###,###</displayFormat>
    </metricType>
    <metricType>
        <name>totalQueueEvictionCnt</name>
        <valueType>gauge</valueType>
        <displayName>Mesh Link Queue Eviction Count</displayName>
        <unit>packets</unit>
        <description>Total count of eviction packets or number of enqueue packets</description>
        <lowerBound>0</lowerBound>
        <upperBound>1000000000</upperBound>
        <displayFormat>###,###</displayFormat>
    </metricType>
    <metricType>
        <name>meshQueueJumpRate</name>
        <valueType>gauge</valueType>
        <displayName>Mesh Link Queue Jump Rate</displayName>
        <unit>packets/sec</unit>
        <description>Rate at which the packets were dropped from the queue due to higher priority network traffic</description>
        <lowerBound>0</lowerBound>
        <upperBound>1000000000</upperBound>
        <displayFormat>###,###</displayFormat>
    </metricType>
    <metricType>
        <name>meshQueueEvictionRate</name>
        <valueType>gauge</valueType>
        <displayName>Mesh Link Queue Eviction Rate</displayName>
        <unit>packets/sec</unit>
        <description>Rate at which the packets were enqueued due to lower priority network traffic</description>
        <lowerBound>0</lowerBound>
        <upperBound>1000000000</upperBound>
        <displayFormat>###,###</displayFormat>
    </metricType>
    <metricType>
        <name>interPanMigration</name>
        <valueType>gauge</valueType>
        <displayName>Inter Pan Migrations</displayName>
        <unit>count</unit>
        <description>Count of inter pan migrations</description>
        <lowerBound>0</lowerBound>
        <upperBound>1000000000</upperBound>
        <displayFormat>###,###</displayFormat>
    </metricType>
    <metricType>
        <name>intraPanMigration</name>
        <valueType>gauge</valueType>
        <displayName>Intra Pan Migrations</displayName>
        <unit>count</unit>
        <description>Count of intra pan migrations</description>
        <lowerBound>0</lowerBound>
        <upperBound>1000000000</upperBound>
        <displayFormat>###,###</displayFormat>
    </metricType>
    <metricType>
        <name>missedPeriodicInventory</name>
        <valueType>gauge</valueType>
        <displayName>Missed Periodic Inventory Collections</displayName>
        <unit>count</unit>
        <description>Count of Missed Periodic Inventory Collections</description>
        <lowerBound>0</lowerBound>
        <upperBound>1000000000</upperBound>
        <displayFormat>###,###</displayFormat>
    </metricType>
  </metricTypes>
</cgms>

Event Types

The following is a sample list of event types for the end point device.

<?xml version="1.0" encoding="UTF-8" ?>
<event xmlns="http://www.w3schools.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3schools.com cmEvent.xsd">
<eventTypes kind="cgmesh">
<eventType>
<eventTypeName>UNKNOWN</eventTypeName>
<eventCategory>unknown</eventCategory>
<eventSearchName>unknown</eventSearchName>
<eventTypeDisplayString>Unknown Event</eventTypeDisplayString>
<eventSeverity>INFO</eventSeverity>
<eventTypeDefaultMessage>Unknown event.</eventTypeDefaultMessage>
</eventType>
<eventType>
<eventTypeName>restoration</eventTypeName>
<eventCategory>restoration</eventCategory>
<eventSearchName>restoration</eventSearchName>
<eventTypeDisplayString>Restoration</eventTypeDisplayString>
<eventSeverity>INFO</eventSeverity>
<eventTypeDefaultMessage>Device restored from outage.</eventTypeDefaultMessage>
</eventType>
<eventType>
<eventTypeName>up</eventTypeName>
<eventCategory>up</eventCategory>
<eventSearchName>up</eventSearchName>
<eventTypeDisplayString>Up</eventTypeDisplayString>
<eventSeverity>INFO</eventSeverity>
<eventTypeDefaultMessage>Device is up.</eventTypeDefaultMessage>
</eventType>
<eventType>
<eventTypeName>down</eventTypeName>
<eventCategory>down</eventCategory>
<eventSearchName>down</eventSearchName>
<eventTypeDisplayString>Down</eventTypeDisplayString>
<eventSeverity>MAJOR</eventSeverity>
<eventTypeDefaultMessage>Device is down.</eventTypeDefaultMessage>
</eventType>
<eventType>
<eventTypeName>outage</eventTypeName>
<eventCategory>outage</eventCategory>
<eventSearchName>outage</eventSearchName>
<eventTypeDisplayString>Outage</eventTypeDisplayString>
<eventSeverity>CRITICAL</eventSeverity>
<eventTypeDefaultMessage>Outage detected on device.</eventTypeDefaultMessage>
</eventType>
<eventType>
<eventTypeName>UserEventType</eventTypeName>
<eventCategory>rule</eventCategory>
<eventSearchName>ruleEvent</eventSearchName>
<eventTypeDisplayString>Rule Event</eventTypeDisplayString>
<eventSeverity>INFO</eventSeverity>
<eventTypeDefaultMessage>Event generated by rule.</eventTypeDefaultMessage>
</eventType>
<eventType>
<eventTypeName>timeMismatch</eventTypeName>
<eventCategory>timeMismatch</eventCategory>
<eventSearchName>timeMismatch</eventSearchName>
<eventTypeDisplayString>Time Mismatch</eventTypeDisplayString>
<eventSeverity>MAJOR</eventSeverity>
<eventTypeDefaultMessage>NMS server time mismatches with the device local time.</eventTypeDefaultMessage>
</eventType>
<eventType>
<eventTypeName>timeMismatchResolved</eventTypeName>
<eventCategory>timeMismatchResolved</eventCategory>
<eventSearchName>timeMismatchResolved</eventSearchName>
<eventTypeDisplayString>Time Mismatch Resolved</eventTypeDisplayString>
<eventSeverity>INFO</eventSeverity>
<eventTypeDefaultMessage>NMS server time matches with the device local time.</eventTypeDefaultMessage>
</eventType>
<eventType>
<eventTypeName>manualCloseEvent</eventTypeName>
<eventCategory>Operation</eventCategory>
<eventSearchName>manualCloseEvent</eventSearchName>
<eventTypeDisplayString>Manual Close(Issue)</eventTypeDisplayString>
<eventSeverity>INFO</eventSeverity>
<eventTypeDefaultMessage>Admin changed issue state to closed.</eventTypeDefaultMessage>
</eventType>
<eventType>
<eventTypeName>unknownRegReason</eventTypeName>
<eventCategory>Registration</eventCategory>
<eventSearchName>unknownRegReason</eventSearchName>
<eventTypeDisplayString>Unknown Registration Reason</eventTypeDisplayString>
<eventSeverity>INFO</eventSeverity>
<eventTypeDefaultMessage>Mesh node registered for unknown reason.</eventTypeDefaultMessage>
</eventType>
<eventType>
<eventTypeName>coldBoot</eventTypeName>
<eventCategory>Registration</eventCategory>
<eventSearchName>coldBoot</eventSearchName>
<eventTypeDisplayString>Cold Boot</eventTypeDisplayString>
<eventSeverity>INFO</eventSeverity>
<eventTypeDefaultMessage>Mesh node registered due to cold boot.</eventTypeDefaultMessage>
</eventType>
<eventType>
<eventTypeName>manualReRegistration</eventTypeName>
<eventCategory>Registration</eventCategory>
<eventSearchName>manualReRegistration</eventSearchName>
<eventTypeDisplayString>Manual Re-Registration</eventTypeDisplayString>
<eventSeverity>INFO</eventSeverity>
<eventTypeDefaultMessage>Mesh node registered due to manual registration.</eventTypeDefaultMessage>
</eventType>
<eventType>
<eventTypeName>rejoinedWithNewIP</eventTypeName>
<eventCategory>Registration</eventCategory>
<eventSearchName>rejoinedWithNewIP</eventSearchName>
<eventTypeDisplayString>Rejoined with New IP Address</eventTypeDisplayString>
<eventSeverity>INFO</eventSeverity>
<eventTypeDefaultMessage>Mesh node registered with new IP address.</eventTypeDefaultMessage>
</eventType>
<eventType>
<eventTypeName>nmsAddrChange</eventTypeName>
<eventCategory>Registration</eventCategory>
<eventSearchName>nmsAddrChange</eventSearchName>
<eventTypeDisplayString>NMS Address Change</eventTypeDisplayString>
<eventSeverity>INFO</eventSeverity>
<eventTypeDefaultMessage>Mesh node registered due to NMS address change.</eventTypeDefaultMessage>
</eventType>
<eventType>
<eventTypeName>manualNMSAddrChange</eventTypeName>
<eventCategory>Registration</eventCategory>
<eventSearchName>manualNMSAddrChange</eventSearchName>
<eventTypeDisplayString>Manual NMS Address Change</eventTypeDisplayString>
<eventSeverity>INFO</eventSeverity>
<eventTypeDefaultMessage>Mesh node registered due to manual NMS address change.</eventTypeDefaultMessage>
</eventType>
<eventType>
<eventTypeName>nmsError</eventTypeName>
<eventCategory>Registration</eventCategory>
<eventSearchName>nmsError</eventSearchName>
<eventTypeDisplayString>NMS Returned Error</eventTypeDisplayString>
<eventSeverity>INFO</eventSeverity>
<eventTypeDefaultMessage>Mesh node registered due to NMS error.</eventTypeDefaultMessage>
</eventType>
<eventType>
<eventTypeName>meterCertChange</eventTypeName>
<eventCategory>Registration</eventCategory>
<eventSearchName>meterCertChange</eventSearchName>
<eventTypeDisplayString>Mesh Certificate Change</eventTypeDisplayString>
<eventSeverity>INFO</eventSeverity>
<eventTypeDefaultMessage>Mesh node registered due to certificate change.</eventTypeDefaultMessage>
</eventType>
<eventType>
<eventTypeName>unknownWPANChange</eventTypeName>
<eventCategory>WPAN Change</eventCategory>
<eventSearchName>unknownWPANChange</eventSearchName>
<eventTypeDisplayString>Unknown WPAN Change</eventTypeDisplayString>
<eventSeverity>MAJOR</eventSeverity>
<eventTypeDefaultMessage>Mesh node changed PAN for unknown reason.</eventTypeDefaultMessage>
</eventType>
<eventType>
<eventTypeName>meshConnectivityLost</eventTypeName>
<eventCategory>WPAN Change</eventCategory>
<eventSearchName>meshConnectivityLost</eventSearchName>
<eventTypeDisplayString>Mesh Connectivity Lost</eventTypeDisplayString>
<eventSeverity>MAJOR</eventSeverity>
<eventTypeDefaultMessage>Mesh node lost all connectivity.</eventTypeDefaultMessage>
</eventType>
<eventType>
<eventTypeName>meshLinkKeyTimeout</eventTypeName>
<eventCategory>WPAN Change</eventCategory>
<eventSearchName>meshLinkKeyTimeout</eventSearchName>
<eventTypeDisplayString>Mesh Link Key Timeout</eventTypeDisplayString>
<eventSeverity>MAJOR</eventSeverity>
<eventTypeDefaultMessage>Mesh node link key timed out.</eventTypeDefaultMessage>
</eventType>
<eventType>
<eventTypeName>defaultRouteLost</eventTypeName>
<eventCategory>WPAN Change</eventCategory>
<eventSearchName>defaultRouteLost</eventSearchName>
<eventTypeDisplayString>Default Route Lost</eventTypeDisplayString>
<eventSeverity>MAJOR</eventSeverity>
<eventTypeDefaultMessage>Mesh node lost default route.</eventTypeDefaultMessage>
</eventType>
<eventType>
<eventTypeName>migratedToBetterPAN</eventTypeName>
<eventCategory>WPAN Change</eventCategory>
<eventSearchName>migratedToBetterPAN</eventSearchName>
<eventTypeDisplayString>Migrated to Better PAN</eventTypeDisplayString>
<eventSeverity>INFO</eventSeverity>
<eventTypeDefaultMessage>Mesh node migrated to better PAN.</eventTypeDefaultMessage>
</eventType>
<eventType>
<eventTypeName>METER_REAUTHENTICATION</eventTypeName>
<eventCategory>Authentication</eventCategory>
<eventSearchName>dot1xReauth</eventSearchName>
<eventTypeDisplayString>Dot1x Reauthentication</eventTypeDisplayString>
<eventSeverity>MINOR</eventSeverity>
<eventTypeDefaultMessage>Multiple attempts to send the mesh-key to the meter failed. Reauthenticating.</eventTypeDefaultMessage>
</eventType>
<eventType>
<eventTypeName>AUTHENTICATION_FAILED</eventTypeName>
<eventCategory>Authentication</eventCategory>
<eventSearchName>dot1xAuthFailure</eventSearchName>
<eventTypeDisplayString>Dot1x Authentication Failure</eventTypeDisplayString>
<eventSeverity>MAJOR</eventSeverity>
<eventTypeDefaultMessage>Dot1x authentication failed for meter.</eventTypeDefaultMessage>
</eventType>
<eventType>
<eventTypeName>restorationRegistration</eventTypeName>
<eventCategory>Registration</eventCategory>
<eventSearchName>restorationRegistration</eventSearchName>
<eventTypeDisplayString>Restoration Registration</eventTypeDisplayString>
<eventSeverity>INFO</eventSeverity>
<eventTypeDefaultMessage>Mesh node registered after an outage.</eventTypeDefaultMessage>
</eventType>
<eventType>
<eventTypeName>signatureFailure</eventTypeName>
<eventCategory>Security</eventCategory>
<eventSearchName>signatureFailure</eventSearchName>
<eventTypeDisplayString>Invalid CSMP Signature</eventTypeDisplayString>
<eventSeverity>CRITICAL</eventSeverity>
<eventTypeDefaultMessage>Invalid signature reported by mesh node</eventTypeDefaultMessage>
</eventType>
<eventType>
<eventTypeName>deviceAdded</eventTypeName>
<eventCategory>DeviceLifecycle</eventCategory>
<eventSearchName>deviceAdded</eventSearchName>
<eventTypeDisplayString>Device Added</eventTypeDisplayString>
<eventSeverity>INFO</eventSeverity>
<eventTypeDefaultMessage>New device is added</eventTypeDefaultMessage>
</eventType>
<eventType>
<eventTypeName>deviceRemoved</eventTypeName>
<eventCategory>DeviceLifecycle</eventCategory>
<eventSearchName>deviceRemoved</eventSearchName>
<eventTypeDisplayString>Device Removed</eventTypeDisplayString>
<eventSeverity>INFO</eventSeverity>
<eventTypeDefaultMessage>Device is removed</eventTypeDefaultMessage>
</eventType>
<eventType>
<eventTypeName>registrationFailed</eventTypeName>
<eventCategory>Registration</eventCategory>
<eventSearchName>registrationFailed</eventSearchName>
<eventTypeDisplayString>Device Registration Failed</eventTypeDisplayString>
<eventSeverity>MAJOR</eventSeverity>
<eventTypeDefaultMessage>FND receive CGMSNotification with code = 3 during device registration</eventTypeDefaultMessage>
</eventType>
<eventType>
<eventTypeName>registering</eventTypeName>
<eventCategory>registering</eventCategory>
<eventSearchName>registering</eventSearchName>
<eventTypeDisplayString>Registering</eventTypeDisplayString>
<eventSeverity>INFO</eventSeverity>
<eventTypeDefaultMessage>Device is registering</eventTypeDefaultMessage>
</eventType>
<eventType>
<eventTypeName>blocked</eventTypeName>
<eventCategory>blocked</eventCategory>
<eventSearchName>blocked</eventSearchName>
<eventTypeDisplayString>Blocked</eventTypeDisplayString>
<eventSeverity>INFO</eventSeverity>
<eventTypeDefaultMessage>Device is blocked</eventTypeDefaultMessage>
</eventType>
<eventType>
<eventTypeName>blockMeshDeviceFailed</eventTypeName>
<eventCategory>Security</eventCategory>
<eventSearchName>blockMeshDeviceFailed</eventSearchName>
<eventTypeDisplayString>Block Mesh Device Failure</eventTypeDisplayString>
<eventSeverity>MAJOR</eventSeverity>
<eventTypeDefaultMessage>Block mesh device operation failed.</eventTypeDefaultMessage>
</eventType>
<eventType>
<eventTypeName>estError</eventTypeName>
<eventCategory>EST</eventCategory>
<eventSearchName>estError</eventSearchName>
<eventTypeDisplayString>EST Error</eventTypeDisplayString>
<eventSeverity>INFO</eventSeverity>
<eventTypeDefaultMessage>Error occurred processing EST request from the device</eventTypeDefaultMessage>
</eventType>
<eventType>
<eventTypeName>sslError</eventTypeName>
<eventCategory>EST</eventCategory>
<eventSearchName>sslError</eventSearchName>
<eventTypeDisplayString>SSL Error</eventTypeDisplayString>
<eventSeverity>INFO</eventSeverity>
<eventTypeDefaultMessage>SSL Error occurred processing EST request from the device</eventTypeDefaultMessage>
</eventType>
<eventType>
<eventTypeName>cacertRequest</eventTypeName>
<eventCategory>EST</eventCategory>
<eventSearchName>cacertRequest</eventSearchName>
<eventTypeDisplayString>CACert Request</eventTypeDisplayString>
<eventSeverity>INFO</eventSeverity>
<eventTypeDefaultMessage>Received EST CACert request from the device</eventTypeDefaultMessage>
</eventType>
<eventType>
<eventTypeName>cacertResponse</eventTypeName>
<eventCategory>EST</eventCategory>
<eventSearchName>cacertResponse</eventSearchName>
<eventTypeDisplayString>CACert Response</eventTypeDisplayString>
<eventSeverity>INFO</eventSeverity>
<eventTypeDefaultMessage>Sent EST CACert response to the device</eventTypeDefaultMessage>
</eventType>
<eventType>
<eventTypeName>enrollRequest</eventTypeName>
<eventCategory>EST</eventCategory>
<eventSearchName>enrollRequest</eventSearchName>
<eventTypeDisplayString>Enroll Request</eventTypeDisplayString>
<eventSeverity>INFO</eventSeverity>
<eventTypeDefaultMessage>Received EST Enroll request from the device</eventTypeDefaultMessage>
</eventType>
<eventType>
<eventTypeName>reenrollRequest</eventTypeName>
<eventCategory>EST</eventCategory>
<eventSearchName>reenrollRequest</eventSearchName>
<eventTypeDisplayString>Re-Enroll Request</eventTypeDisplayString>
<eventSeverity>INFO</eventSeverity>
<eventTypeDefaultMessage>Received EST Re-Enroll request from the device</eventTypeDefaultMessage>
</eventType>
<eventType>
<eventTypeName>enrollSuccess</eventTypeName>
<eventCategory>EST</eventCategory>
<eventSearchName>enrollSuccess</eventSearchName>
<eventTypeDisplayString>Enroll Success</eventTypeDisplayString>
<eventSeverity>INFO</eventSeverity>
<eventTypeDefaultMessage>Device EST Enrollment succeeded</eventTypeDefaultMessage>
</eventType>
<eventType>
<eventTypeName>reenrollSuccess</eventTypeName>
<eventCategory>EST</eventCategory>
<eventSearchName>reenrollSuccess</eventSearchName>
<eventTypeDisplayString>Re-Enroll Success</eventTypeDisplayString>
<eventSeverity>INFO</eventSeverity>
<eventTypeDefaultMessage>Device EST Re-Enrollment succeeded</eventTypeDefaultMessage>
</eventType>
<eventType>
<eventTypeName>enrollFailure</eventTypeName>
<eventCategory>EST</eventCategory>
<eventSearchName>enrollFailure</eventSearchName>
<eventTypeDisplayString>Enroll Failure</eventTypeDisplayString>
<eventSeverity>CRITICAL</eventSeverity>
<eventTypeDefaultMessage>Device EST Enrollment failed</eventTypeDefaultMessage>
</eventType>
<eventType>
<eventTypeName>reenrollFailure</eventTypeName>
<eventCategory>EST</eventCategory>
<eventSearchName>reenrollFailure</eventSearchName>
<eventTypeDisplayString>Re-Enroll Failure</eventTypeDisplayString>
<eventSeverity>CRITICAL</eventSeverity>
<eventTypeDefaultMessage>Device EST Re-Enrollment failed</eventTypeDefaultMessage>
</eventType>
<eventType>
<eventTypeName>authenticationSuccess</eventTypeName>
<eventCategory>EST</eventCategory>
<eventSearchName>authenticationSuccess</eventSearchName>
<eventTypeDisplayString>Authentication Success</eventTypeDisplayString>
<eventSeverity>INFO</eventSeverity>
<eventTypeDefaultMessage>Device EST authentication succeeded</eventTypeDefaultMessage>
</eventType>
<eventType>
<eventTypeName>authenticationFailure</eventTypeName>
<eventCategory>EST</eventCategory>
<eventSearchName>authenticationFailure</eventSearchName>
<eventTypeDisplayString>Authentication Failure</eventTypeDisplayString>
<eventSeverity>MAJOR</eventSeverity>
<eventTypeDefaultMessage>Device EST authentication failed</eventTypeDefaultMessage>
</eventType>
</eventTypes>
</event>

Issue Types

The following is a sample list of issue types for the end point device.

<?xml version="1.0" encoding="UTF-8" ?>
<issue xmlns="http://www.w3schools.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3schools.com cgrEvent.xsd">
<issueTypes kind="cgmesh">
<issueType>
<issueTypeName>UNKNOWN</issueTypeName>
<issueCategory>unknown</issueCategory>
<issueSearchName>unknown</issueSearchName>
<issueTypeDisplayString>Unknown Issue</issueTypeDisplayString>
<issueSeverity>INFO</issueSeverity>
<issueTypeDefaultMessage>The issue raised/closed does not have a defined issue type.</issueTypeDefaultMessage>
</issueType>
<issueType>
<issueTypeName>deviceDown</issueTypeName>
<issueCategory>Device</issueCategory>
<issueSearchName>down</issueSearchName>
<issueTypeDisplayString>Down</issueTypeDisplayString>
<issueSeverity>MAJOR</issueSeverity>
<issueTypeDefaultMessage>Device is down.</issueTypeDefaultMessage>
</issueType>
<issueType>
<issueTypeName>registrationFailed</issueTypeName>
<issueCategory>Device</issueCategory>
<issueSearchName>registrationFailed</issueSearchName>
<issueTypeDisplayString>Device Registration Failed</issueTypeDisplayString>
<issueSeverity>MAJOR</issueSeverity>
<issueTypeDefaultMessage>Device Registration failed due to configuration error</issueTypeDefaultMessage>
</issueType>
<issueType>
<issueTypeName>deviceOutage</issueTypeName>
<issueCategory>Device</issueCategory>
<issueSearchName>Outage</issueSearchName>
<issueTypeDisplayString>Outage</issueTypeDisplayString>
<issueSeverity>CRITICAL</issueSeverity>
<issueTypeDefaultMessage>Device is in outage.</issueTypeDefaultMessage>
</issueType>
<issueType>
<issueTypeName>deviceTimeMismatch</issueTypeName>
<issueCategory>Device</issueCategory>
<issueSearchName>deviceTimeMismatch</issueSearchName>
<issueTypeDisplayString>Device-NMS Time Mismatch</issueTypeDisplayString>
<issueSeverity>MAJOR</issueSeverity>
<issueTypeDefaultMessage>Device time and NMS time are not in sync.</issueTypeDefaultMessage>
</issueType>
<issueType>
<issueTypeName>signatureFailure</issueTypeName>
<issueCategory>Security</issueCategory>
<issueSearchName>signatureFailure</issueSearchName>
<issueTypeDisplayString>Invalid CSMP Signature</issueTypeDisplayString>
<issueSeverity>CRITICAL</issueSeverity>
<issueTypeDefaultMessage>Verify certificate setup. Also verify that mesh node and IoT-FND are time synchronized.</issueTypeDefaultMessage>
</issueType>
<issueType>
<issueTypeName>enrollFailure</issueTypeName>
<issueCategory>EST</issueCategory>
<issueSearchName>enrollFailure</issueSearchName>
<issueTypeDisplayString>Enroll Failure</issueTypeDisplayString>
<issueSeverity>CRITICAL</issueSeverity>
<issueTypeDefaultMessage>Device EST Enrollment failed.</issueTypeDefaultMessage>
</issueType>
<issueType>
<issueTypeName>reenrollFailure</issueTypeName>
<issueCategory>EST</issueCategory>
<issueSearchName>reenrollFailure</issueSearchName>
<issueTypeDisplayString>Re-Enroll Failure</issueTypeDisplayString>
<issueSeverity>CRITICAL</issueSeverity>
<issueTypeDefaultMessage>Device EST Re-Enrollment failed.</issueTypeDefaultMessage>
</issueType>
<issueType>
<issueTypeName>authenticationFailure</issueTypeName>
<issueCategory>EST</issueCategory>
<issueSearchName>authenticationFailure</issueSearchName>
<issueTypeDisplayString>Authentication Failure</issueTypeDisplayString>
<issueSeverity>CRITICAL</issueSeverity>
<issueTypeDefaultMessage>Device EST authentication failed.</issueTypeDefaultMessage>
</issueType>
</issueTypes>
</issue>

System Rules

The following is a sample list of system rules for the end point device.

<?xml version="1.0" encoding="UTF-8" ?>
<cgms xmlns="http://www.w3schools.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <rules kind="">
    <rule>
      <name>Down Rule</name>
      <username>system</username>
      <query>deviceType:{0} eventName:down</query>
      <action type="manage_issue" parameter="issueTypeName:deviceDown issueStatus:OPEN" />
    </rule>
    <rule>
      <name>Up from Down Rule</name>
      <username>system</username>
      <query>deviceType:{0} eventName:up</query>
      <action type="manage_issue" parameter="issueTypeName:deviceDown issueStatus:CLOSED" />
    </rule>

    <rule>
      <name>Registration Failed Rule</name>
      <username>system</username>
      <query>deviceType:{0} eventName:registrationFailed</query>
      <action type="manage_issue" parameter="issueTypeName:registrationFailed issueStatus:OPEN" />
    </rule>
    <rule>
      <name>Up from Registration Failed Rule</name>
      <username>system</username>
      <query>deviceType:{0} eventName:up</query>
      <action type="manage_issue" parameter="issueTypeName:registrationFailed issueStatus:CLOSED" />
    </rule>

    <rule>
      <name>Outage Rule</name>
      <username>system</username>
      <query>deviceType:{0} eventName:outage</query>
      <action type="manage_issue" parameter="issueTypeName:deviceOutage issueStatus:OPEN" />
    </rule>
    <rule>
      <name>Up from Outage Rule</name>
      <username>system</username>
      <query>deviceType:{0} eventName:up</query>
      <action type="manage_issue" parameter="issueTypeName:deviceOutage issueStatus:CLOSED" />
    </rule>
    <rule>
      <name>Restored from Outage Rule</name>
      <username>system</username>
      <query>deviceType:{0} eventName:restoration</query>
      <action type="manage_issue" parameter="issueTypeName:deviceOutage issueStatus:CLOSED" />
    </rule>

    <rule>
      <name>Time Mismatch Rule</name>
      <username>system</username>
      <query>deviceType:{0} eventName:timeMismatch</query>
      <action type="manage_issue" parameter="issueTypeName:deviceTimeMismatch issueStatus:OPEN" />
    </rule>
    <rule>
      <name>Time Mismatch Resolved Rule</name>
      <username>system</username>
      <query>deviceType:{0} eventName:timeMismatchResolved</query>
      <action type="manage_issue" parameter="issueTypeName:deviceTimeMismatch issueStatus:CLOSED" />
    </rule>
    <rule>
      <name>Signature Validation Failure</name>
      <username>system</username>
      <query>deviceType:{0} eventName:signatureFailure</query>
      <action type="manage_issue" parameter="issueTypeName:signatureFailure issueStatus:OPEN" />
    </rule>
  </rules>
</cgms>