# Board-level queries and unsolicited events

The MSPP service supports a set of queries and unsolicited events associated with board resources rather than with specific MSPP endpoint filters. These allow applications to use mspSendQuery to monitor the status of board-level CPU resources and Ethernet connections while the application is running.

The MSPP service supports the following board-level queries:

Query | Description
MSP_QRY_ETHERNET_LINK_STATUS | Returns information about the board's Ethernet link connections.
MSP_QRY_CPU_USAGE | Returns information about the board's current and average CPU utilization.

When an application uses either of these queries, it can specify any valid MSPP handle (endpoint or channel) associated with the board. However, when using mspBuildQuery to build the query, the application must specify the constant MSP_SYSTEM as the filter ID for the query. The following example shows how to build an Ethernet link status board query using the MSP_SYSTEM constant as the filter ID:

ret = mspSendQuery(pVoiceChannelDbase[0]->hDs0MspHd,
mspBuildQuery(MSP_SYSTEM, MSP_QRY_ETHERNET_LINK_STATUS) );
if ( ret == FAILURE)
{
printf("Mspp Send Query failed \n");
}

In addition to using MSPP service queries, applications can use route availability events to monitor state transitions of CG board Ethernet interfaces.