Sensors

Reference Documentation

Platform
Intel® PAC
Napatech SmartNIC
Content Type
Reference Information
Capture Software Version
Link™ Capture Software 12.10
Napatech Software Suite: Sensors

Each adapter type is equipped with a number of adapter sensors and port sensors.
The number of sensors is different for each adapter type.
The sensors are divided into 3 groups:

  • Public sensors
    These sensors can be read using the monitor tool and the diagnostic tool. They are important for the health of the adapter and will trigger a sensor event and log a message if they are out of range. The sensors can also be read using the info stream NT_InfoRead (described later).
  • Level 1 sensors
    These sensors can be read using the monitor tool and the diagnostic tool. They are information sensors and will not trigger events or log messages. The sensors can also be read using the info stream NT_InfoRead (described later).
  • Level 2 sensors
    These sensors are Napatech internal sensors and are used for debugging and troubleshooting. They are included in a support info dump.
    Reading the Sensors using Tools
    The sensors can be read by the following tools:
  • monitoring (public and level 1 sensors)
  • diagnostic (public and level 1 sensors)
  • support info (all sensors)

    Reading the Sensors using Info Stream
    The sensors can also be read by using the info stream NT_InfoRead. Only public sensors and
    level 1 sensors can be read by the info stream. This chapter will only explain how to set up
    the NtInfo_s info structure. How to access the stream will not be handled here.

    Reading Multiple Sensors

Reading the Number of Adapter Sensors

NtInfo_t infoAdapter;
int sensorCounter0;
int sensorCounter1;
infoAdapter.cmd = NT_INFO_CMD_READ_ADAPTER;
infoAdapter.u.adapter.adapterNo = 0;
if ((status = NT_InfoRead(hInfo, &infoAdapter)) != NT_SUCCESS) {
NT_ExplainError(status, errBuf, sizeof(errBuf));
fprintf(stderr, ">>> Error: NT_InfoRead failed. Code %d = %s\n", status, errBuf);
goto ErrorExit;
}
sensorCounter0 = infoAdapter.u.adapter.data.numSensors;
sensorCounter1 = infoAdapter.u.adapter.data.numLevel1Sensors;

Reading the Public Adapter Sensors

int teller;
int32_t value;
NtInfo_t infoSensor;
for (teller = 0; teller < sensorCounter; teller++)
{
infoSensor.u.sensor.sourceIndex = 0; // get sensors from adapter 0
infoSensor.u.sensor.sensorIndex = teller;
status = NT_InfoRead(hInfo, &infoSensor);
if (status == NT_SUCCESS) {
value = infoSensor.u.sensor.data.value; // Sensor data is returned in the infoSensor.u.sensor.data struct
}
else {
NT_ExplainError(status, errBuf, sizeof(errBuf));
fprintf(stderr, ">>> Error: NT_InfoRead failed. Code %d = %s\n", status, errBuf);
goto ErrorExit;
}
}

Reading the Number of Port Sensors

NtInfo_t infoPort;
int sensorCounter0;
int sensorCounter1;
infoPort.cmd = NT_INFO_CMD_READ_PORT;
infoPort.u.port.portNo = 2; // Read info from port 2
if ((status = NT_InfoRead(hInfo, &infoPort)) != NT_SUCCESS) {
NT_ExplainError(status, errBuf, sizeof(errBuf));
fprintf(stderr, ">>> Error: NT_InfoRead failed. Code %d = %s\n", status, errBuf);
goto ErrorExit;
}
sensorCounter0 = infoPort.u.port.data.numSensors;
sensorCounter1 = infoPort.u.port.data.numLevel1Sensors;

Reading the Public Port Sensors

int teller;
int32_t value;
NtInfo_t infoSensor;
for (teller = 0; teller < sensorCounter; teller++)
{
infoSensor.u.sensor.sourceIndex = 2; // get sensors from port 2
infoSensor.u.sensor.sensorIndex = teller;
status = NT_InfoRead(hInfo, &infoSensor);
if (status == NT_SUCCESS) {
value = infoSensor.u.sensor.data.value; // Sensor data is returned in the infoSensor.u.sensor.data struct
}
else {
NT_ExplainError(status, errBuf, sizeof(errBuf));
fprintf(stderr, ">>> Error: NT_InfoRead failed. Code %d = %s\n", status, errBuf);
goto ErrorExit;
}
}

Reading a Single Sensor

The sensors are divided into groups. Each adapter type has an adapter sensor group and
a port sensor group. The sensor group is different for each adapter type. When reading a sensor,
the sensor source, source index (the adapter number or port number) and the sensor index in
the sensor group must be selected.

Sensor Source NtSensorSource_e :

Sensor source
Enum Description
NT_SENSOR_SOURCE_PORT Sensors located in network interface modules
NT_SENSOR_SOURCE_LEVEL1_PORT Level 1 sensors located in network interface modules
NT_SENSOR_SOURCE_ADAPTER Sensors mounted on the adapter
NT_SENSOR_SOURCE_LEVEL1_ADAPTER Level 1 sensors mounted on the adapter

Adapters:

Sensor Groups:

NT40E2-1 Sensor Groups
Adapter Sensor Source Enum Group Enum Description
NT40E2_1 NT_SENSOR_SOURCE_ADAPTER NtSensorsAdapterNT40E2_e NT_SENSOR_NT40E2_FPGA FPGA temperature sensor
NT_SENSOR_NT40E2_FAN FAN speed sensor
NT_SENSOR_NT40E2_MAIN_EXAR1_TEMP Main board power supply 1 temperature sensor
NT_SENSOR_NT40E2_MAIN_EXAR2_TEMP Main board power supply 2 temperature sensor
NT_SENSOR_NT40E2_FRONT_EXAR_TEMP Front board power supply temperature sensor
NT_SENSOR_NT40E2_FRONT_TEMP_PBA Front board PBA temperature sensor
NT_SENSOR_SOURCE_LEVEL1_ADAPTER NtSensorsAdapterNT40E2_e NT_SENSOR_NT40E2_NT40E2_POWER Total power consumption.
Virtual sensor - does not generate alarms.
Calculated from voltage and current sensors.
NT_SENSOR_NT40E2_FPGA_POWER FPGA power consumption.
Virtual sensor - does not generate alarms.
Calculated from voltage and current sensors.
NT_SENSOR_NT40E2_DDR3_POWER DDR3 ram power consumption.
Virtual sensor - does not generate alarms.
Calculated from voltage and current sensors.
NT_SENSOR_NT40E2_PHY_POWER Phy power consumption.
Virtual sensor - does not generate alarms.
Calculated from voltage and current sensors.
NT_SENSOR_NT40E2_QSFP_POWER QSFP power consumption.
Virtual sensor - does not generate alarms.
Calculated from voltage and current sensors.
NT_SENSOR_SOURCE_PORT NtSensorsPortNT40E2_e NT_SENSOR_NT40E2_NIM QSFP temperature sensor
NT_SENSOR_SOURCE_LEVEL1_PORT NtSensorsPortNT40E2_e NT_SENSOR_NT40E2_SUPPLY QSFP supply voltage sensor - does not generate alarms
NT_SENSOR_NT40E2_TX_BIAS1 QSFP TX bias current sensor - does not generate alarms
NT_SENSOR_NT40E2_TX_BIAS2 QSFP TX bias current sensor - does not generate alarms
NT_SENSOR_NT40E2_TX_BIAS3 QSFP TX bias current sensor - does not generate alarms
NT_SENSOR_NT40E2_TX_BIAS4 QSFP TX bias current sensor - does not generate alarms
NT_SENSOR_NT40E2_RX1 QSFP RX power sensor - does not generate alarms
NT_SENSOR_NT40E2_RX2 QSFP RX power sensor - does not generate alarms
NT_SENSOR_NT40E2_RX3 QSFP RX power sensor - does not generate alarms
NT_SENSOR_NT40E2_RX4 QSFP RX power sensor - does not generate alarms
NT_SENSOR_NT40E2_TX1 QSFP TX power sensor - does not generate alarms
NT_SENSOR_NT40E2_TX2 QSFP TX power sensor - does not generate alarms
NT_SENSOR_NT40E2_TX3 QSFP TX power sensor - does not generate alarms
NT_SENSOR_NT40E2_TX4 QSFP TX power sensor - does not generate alarms


NT20E2 Sensor Groups
Adapter Sensor Source Enum Group Enum Description
NT20E2 NT_SENSOR_SOURCE_ADAPTER NtSensorsAdapterNT20E2_e NT_SENSOR_NT20E2_FPGA FPGA temperature sensor
NT_SENSOR_NT20E2_FAN FAN speed sensor
NT_SENSOR_NT20E2_MAIN_EXAR1_TEMP Main board power supply 1 temperature sensor
NT_SENSOR_NT20E2_MAIN_EXAR2_TEMP Main board power supply 2 temperature sensor
NT_SENSOR_NT20E2_FRONT_EXAR_TEMP Front board power supply temperature sensor
NT_SENSOR_NT20E2_FRONT_TEMP_PBA Front board PBA temperature sensor
NT_SENSOR_SOURCE_LEVEL1_ADAPTER NtSensorsAdapterNT20E2_e NT_SENSOR_NT20E2_NT20E2_POWER Total power consumption.
Virtual sensor - does not generate alarms.
Calculated from voltage and current sensors.
NT_SENSOR_NT20E2_FPGA_POWER FPGA power consumption.
Virtual sensor - does not generate alarms.
Calculated from voltage and current sensors.
NT_SENSOR_NT20E2_DDR3_POWER DDR3 ram power consumption.
Virtual sensor - does not generate alarms.
Calculated from voltage and current sensors.
NT_SENSOR_NT20E2_PHY_POWER Phy power consumption.
Virtual sensor - does not generate alarms.
Calculated from voltage and current sensors.
NT_SENSOR_NT20E2_SFP_0_POWER SFP 0 power consumption.
Virtual sensor - does not generate alarms.
Calculated from voltage and current sensors.
NT_SENSOR_NT20E2_SFP_1_POWER SFP 1 power consumption.
Virtual sensor - does not generate alarms.
Calculated from voltage and current sensors.
NT_SENSOR_SOURCE_PORT NtSensorsPortNT20E2_e NT_SENSOR_NT20E2_NIM SFP temperature sensor
NT_SENSOR_SOURCE_LEVEL1_PORT NtSensorsPortNT20E2_e NT_SENSOR_NT20E2_SUPPLY SFP supply voltage sensor - does not generate alarms
NT_SENSOR_NT20E2_TX_BIAS SFP TX bias current sensor - does not generate alarms
NT_SENSOR_NT20E2_TX SFP TX power sensor - does not generate alarms
NT_SENSOR_NT20E2_RX SFP RX power sensor - does not generate alarms


NT20E3 Sensor Groups
Adapter Sensor Source Enum Group Enum Description
NT20E3 NT_SENSOR_SOURCE_ADAPTER NtSensorsAdapterNT20E3_2_e NT_SENSOR_NT20E3_2_FPGA_TEMP FPGA temperature sensor
NT_SENSOR_NT20E3_2_FAN_SPEED FAN speed sensor
NT_SENSOR_NT20E3_2_MCU_TEMP MCU (Micro Controller Unit) temperature sensor located inside enclosure below FAN
NT_SENSOR_NT20E3_2_PSU0_TEMP Power supply 0 temperature sensor
NT_SENSOR_NT20E3_2_PSU1_TEMP Power supply 1 temperature sensor
NT_SENSOR_NT20E3_2_OSC_TEMP Clock oscillator temperature sensor
NT_SENSOR_NT20E3_2_EXT_TEMP External temperature sensor located at board corner outside enclosure
NT_SENSOR_NT20E3_2_PCB_TEMP PCB temperature sensor
NT_SENSOR_SOURCE_LEVEL1_ADAPTER NtSensorsAdapterNT20E3_2_e NT_SENSOR_NT20E3_2_NT20E3_2_POWER Total power consumption.
Virtual sensor - does not generate alarms.
Calculated from voltage and current sensors.
NT_SENSOR_NT20E3_2_FPGA_POWER FPGA power consumption.
Virtual sensor - does not generate alarms.
Calculated from voltage and current sensors.
NT_SENSOR_NT20E3_2_DDR3_POWER DDR3 RAM power consumption.
Virtual sensor - does not generate alarms.
Calculated from voltage and current sensors.
NT_SENSOR_NT20E3_2_NIM_POWER Power supply 0 temperature sensor.
Virtual sensor - does not generate alarms.
Calculated from voltage and current sensors.
NT_SENSOR_SOURCE_PORT NtSensorsPortNT20E3_2_e NT_SENSOR_NT20E3_2_NIM SFP temperature sensor
NT_SENSOR_SOURCE_LEVEL1_PORT NtSensorsPortNT20E3_2_e NT_SENSOR_NT20E3_2_SUPPLY SFP supply voltage sensor - does not generate alarms
NT_SENSOR_NT20E3_2_TX_BIAS SFP TX bias current sensor - does not generate alarms
NT_SENSOR_NT20E3_2_TX SFP TX power sensor - does not generate alarms
NT_SENSOR_NT20E3_2_RX SFP RX power sensor - does not generate alarms


NT40E2-4 Sensor Groups
Adapter Sensor Source Enum Group Enum Description
NT40E2_4 NT_SENSOR_SOURCE_ADAPTER NtSensorsAdapterNT40E2_4_e NT_SENSOR_NT40E2_4_FPGA FPGA temperature sensor
NT_SENSOR_NT40E2_4_FAN FAN speed sensor
NT_SENSOR_NT40E2_4_MAIN_EXAR1_TEMP Main board power supply 1 temperature sensor
NT_SENSOR_NT40E2_4_MAIN_EXAR2_TEMP Main board power supply 2 temperature sensor
NT_SENSOR_NT40E2_4_FRONT_EXAR_TEMP Front board power supply temperature sensor
NT_SENSOR_NT40E2_4_FRONT_TEMP_PBA Front board PBA temperature sensor
NT_SENSOR_SOURCE_LEVEL1_ADAPTER NtSensorsAdapterNT40E2_4_e NT_SENSOR_NT40E2_4_NT40E2_4_POWER Total power consumption.
Virtual sensor - does not generate alarms.
Calculated from voltage and current sensors.
NT_SENSOR_NT40E2_4_FPGA_POWER FPGA power consumption.
Virtual sensor - does not generate alarms.
Calculated from voltage and current sensors.
NT_SENSOR_NT40E2_4_DDR3_POWER DDR3 ram power consumption.
Virtual sensor - does not generate alarms.
Calculated from voltage and current sensors.
NT_SENSOR_NT40E2_4_PHY_POWER Phy power consumption.
Virtual sensor - does not generate alarms.
Calculated from voltage and current sensors.
NT_SENSOR_NT40E2_4_SFP_0_POWER SFP 0 power consumption.
Virtual sensor - does not generate alarms.
Calculated from voltage and current sensors.
NT_SENSOR_NT40E2_4_SFP_1_POWER SFP 1 power consumption.
Virtual sensor - does not generate alarms.
Calculated from voltage and current sensors.
NT_SENSOR_SOURCE_PORT NtSensorsPortNT40E2_4_e NT_SENSOR_NT40E2_4_NIM SFP temperature sensor
NT_SENSOR_SOURCE_LEVEL1_PORT NtSensorsPortNT40E2_4_e NT_SENSOR_NT40E2_4_SUPPLY SFP supply voltage sensor - does not generate alarms
NT_SENSOR_NT40E2_4_TX_BIAS SFP TX bias current sensor - does not generate alarms
NT_SENSOR_NT40E2_4_TX SFP TX power sensor - does not generate alarms
NT_SENSOR_NT40E2_4_RX SFP RX power sensor - does not generate alarms


NT20E Sensor Groups
Adapter Sensor Source Enum Group Enum Description
NT20E NT_SENSOR_SOURCE_ADAPTER NtSensorsAdapterNT20E_e NT_SENSOR_NT20E_FPGA FPGA temperature sensor (junction temperature)
NT_SENSOR_NT20E_PBA PBA temperature sensor (PCB temperature)
NT_SENSOR_SOURCE_PORT NtSensorsPortNT20E_e NT_SENSOR_NT20E_XFP XFP temperature sensor
NT_SENSOR_SOURCE_LEVEL1_PORT NtSensorsPortNT20E_e NT_SENSOR_NT20E_TX_BIAS XFP TX bias current sensor.
Does not generate alarms
NT_SENSOR_NT20E_TX XFP TX power sensor - does not generate alarms
NT_SENSOR_NT20E_RX XFP RX power sensor - does not generate alarms


NT4E2-PTP Sensor Groups
Adapter Sensor Source Enum Group Enum Description
NT4E2_PTP NT_SENSOR_SOURCE_ADAPTER NtSensorsAdapterNT4E2_PTP_e NT_SENSOR_NT4E2_PTP_FPGA FPGA temperature sensor
NT_SENSOR_NT4E2_PTP_FAN FAN speed sensor
NT_SENSOR_NT4E2_PTP_MAIN_EXAR1_TEMP Main board power supply 1 temperature sensor
NT_SENSOR_NT4E2_PTP_MAIN_EXAR2_TEMP Main board power supply 2 temperature sensor
NT_SENSOR_NT4E2_PTP_FRONT_EXAR_TEMP Front board power supply temperature sensor
NT_SENSOR_NT4E2_PTP_FRONT_TEMP_PBA Front board PBA temperature sensor
NT_SENSOR_SOURCE_LEVEL1_ADAPTER NtSensorsAdapterNT4E2_PTP_e NT_SENSOR_NT4E2_PTP_NT4E2_POWER Total power consumption.
Virtual sensor - does not generate alarms.
Calculated from voltage and current sensors.
NT_SENSOR_NT4E2_PTP_FPGA_POWER FPGA power consumption.
Virtual sensor - does not generate alarms.
Calculated from voltage and current sensors.
NT_SENSOR_NT4E2_PTP_DDR3_POWER DDR3 ram power consumption.
Virtual sensor - does not generate alarms.
Calculated from voltage and current sensors.
NT_SENSOR_NT4E2_PTP_FRONT_POWER Phy power consumption.
Virtual sensor - does not generate alarms.
Calculated from voltage and current sensors.
NT_SENSOR_NT4E2_PTP_SFP_0_POWER SFP 0 power consumption.
Virtual sensor - does not generate alarms.
Calculated from voltage and current sensors.
NT_SENSOR_NT4E2_PTP_SFP_1_POWER SFP 1 power consumption.
Virtual sensor - does not generate alarms.
Calculated from voltage and current sensors.
NT_SENSOR_SOURCE_PORT NtSensorsPortNT4E2_PTP_e NT_SENSOR_NT4E2_PTP_SFP SFP temperature sensor
NT_SENSOR_SOURCE_LEVEL1_PORT NtSensorsPortNT4E2_PTP_e NT_SENSOR_NT4E2_PTP_SUPPLY SFP supply voltage sensor - does not generate alarms
NT_SENSOR_NT4E2_PTP_TX_BIAS SFP TX bias current sensor - does not generate alarms
NT_SENSOR_NT4E2_PTP_TX SFP TX power sensor - does not generate alarms
NT_SENSOR_NT4E2_PTP_RX SFP RX power sensor - does not generate alarms


NT4E2-BP Sensor Groups
Adapter Sensor Source Enum Group Enum Description
NT4E2_BP NT_SENSOR_SOURCE_ADAPTER NtSensorsAdapterNT4E2_e NT_SENSOR_NT4E2_FPGA FPGA temperature sensor
NT_SENSOR_NT4E2_FAN FAN speed sensor
NT_SENSOR_NT4E2_MAIN_EXAR1_TEMP Main board power supply 1 temperature sensor
NT_SENSOR_NT4E2_MAIN_EXAR2_TEMP Main board power supply 2 temperature sensor
NT_SENSOR_NT4E2_FRONT_EXAR_TEMP Front board power supply temperature sensor
NT_SENSOR_NT4E2_FRONT_TEMP_PBA Front board PBA temperature sensor
NT_SENSOR_NT4E2_FRONT_TEMP_PHY Front board PBA temperature sensor
NT_SENSOR_SOURCE_LEVEL1_ADAPTER NtSensorsAdapterNT4E2_e NT_SENSOR_NT4E2_NT4E2_POWER Total power consumption.
Virtual sensor - does not generate alarms.
Calculated from voltage and current sensors.
NT_SENSOR_NT4E2_FPGA_POWER FPGA power consumption.
Virtual sensor - does not generate alarms.
Calculated from voltage and current sensors.
NT_SENSOR_NT4E2_DDR3_POWER DDR3 ram power consumption.
Virtual sensor - does not generate alarms.
Calculated from voltage and current sensors.
NT_SENSOR_NT4E2_FRONT_POWER Phy power consumption.
Virtual sensor - does not generate alarms.
Calculated from voltage and current sensors.


NT4E Sensor Groups
Adapter Sensor Source Enum Group Enum Description
NT4E NT_SENSOR_SOURCE_ADAPTER NtSensorsAdapterNT4E_e NT_SENSOR_NT4E_FPGA FPGA temperature sensor (junction temperature)
NT_SENSOR_NT4E_PBA PBA temperature sensor (PCB temperature)
NT_SENSOR_SOURCE_PORT NtSensorsPortNT4E_e NT_SENSOR_NT4E_SFP SFP temperature sensor
NT_SENSOR_SOURCE_LEVEL1_PORT NtSensorsPortNT4E_e NT_SENSOR_NT4E_SUPPLY SFP supply voltage sensor - does not generate alarms
NT_SENSOR_NT4E_TX_BIAS SFP TX bias current sensor - does not generate alarms
NT_SENSOR_NT4E_TX SFP TX power sensor - does not generate alarms
NT_SENSOR_NT4E_RX SFP RX power sensor - does not generate alarms


NT40E3 Sensor Groups
Adapter Sensor Source Enum Group Enum Description
NT40E3 NT_SENSOR_SOURCE_ADAPTER NtSensorsAdapterNT40E3_4_e NT_SENSOR_NT40E3_4_FPGA_TEMP FPGA temperature sensor
NT_SENSOR_NT40E3_4_FAN_SPEED FAN speed sensor
NT_SENSOR_NT40E3_4_MCU_TEMP MCU (Micro Controller Unit) temperature sensor located inside enclosure below FAN
NT_SENSOR_NT40E3_4_PSU0_TEMP Power supply 0 temperature sensor
NT_SENSOR_NT40E3_4_PSU1_TEMP Power supply 1 temperature sensor
NT_SENSOR_NT40E3_4_OSC_TEMP Clock oscillator temperature sensor
NT_SENSOR_NT40E3_4_EXT_TEMP External temperature sensor located at board corner outside enclosure
NT_SENSOR_NT40E3_4_PCB_TEMP PCB temperature sensor
NT_SENSOR_SOURCE_LEVEL1_ADAPTER NtSensorsAdapterNT40E3_4_e NT_SENSOR_NT40E3_4_NT40E3_4_POWER Total power consumption.
Virtual sensor - does not generate alarms.
Calculated from voltage and current sensors.
NT_SENSOR_NT40E3_4_FPGA_POWER FPGA power consumption.
Virtual sensor - does not generate alarms.
Calculated from voltage and current sensors.
NT_SENSOR_NT40E3_4_DDR3_POWER DDR3 RAM power consumption.
Virtual sensor - does not generate alarms.
Calculated from voltage and current sensors.
NT_SENSOR_NT40E3_4_NIM_POWER Power supply 0 temperature sensor.
Virtual sensor - does not generate alarms.
Calculated from voltage and current sensors.
NT_SENSOR_SOURCE_PORT NtSensorsPortNT40E3_4_e NT_SENSOR_NT40E3_4_NIM SFP temperature sensor
NT_SENSOR_SOURCE_LEVEL1_PORT NtSensorsPortNT40E3_4_e NT_SENSOR_NT40E3_4_SUPPLY SFP supply voltage sensor - does not generate alarms
NT_SENSOR_NT40E3_4_TX_BIAS SFP TX bias current sensor - does not generate alarms
NT_SENSOR_NT40E3_4_TX SFP TX power sensor - does not generate alarms
NT_SENSOR_NT40E3_4_RX SFP RX power sensor - does not generate alarms


NT80E3 Sensor Groups
Adapter Sensor Source Enum Group Enum Description
NT80E3 NT_SENSOR_SOURCE_ADAPTER NtSensorsAdapterNT80E3_2_e NT_SENSOR_NT80E3_FPGA_TEMP FPGA temperature sensor
NT_SENSOR_NT80E3_PCI_BRIDGE_TEMP PLX bridge temperature sensor
NT_SENSOR_NT80E3_FAN_SPEED FAN speed sensor
NT_SENSOR_NT80E3_MCU_TEMP MCU (Micro Controller Unit) temperature sensor located inside enclosure below FAN
NT_SENSOR_NT80E3_PSU0_TEMP Power supply 0 temperature sensor
NT_SENSOR_NT80E3_PSU1_TEMP Power supply 1 temperature sensor
NT_SENSOR_NT80E3_PSU2_0_TEMP Power supply 2, IC0 junction temperature sensor
NT_SENSOR_NT80E3_PSU2_1_TEMP Power supply 2, IC1 junction temperature sensor
NT_SENSOR_NT80E3_OSC_TEMP Clock oscillator temperature sensor
NT_SENSOR_NT80E3_EXT_TEMP External temperature sensor located at board corner outside enclosure
NT_SENSOR_NT80E3_PCB_TEMP PCB temperature sensor
NT_SENSOR_SOURCE_LEVEL1_ADAPTER NtSensorsAdapterNT80E3_2_e NT_SENSOR_NT80E3_NT80E3_POWER Total power consumption.
Virtual sensor - does not generate alarms.
Calculated from voltage and current sensors.
NT_SENSOR_NT80E3_FPGA_POWER FPGA power consumption.
Virtual sensor - does not generate alarms.
Calculated from voltage and current sensors.
NT_SENSOR_NT80E3_DDR3_POWER DDR3 RAM power consumption.
Virtual sensor - does not generate alarms.
Calculated from voltage and current sensors.
NT_SENSOR_NT80E3_NIM_POWER NIM power consumption.
Virtual sensor - does not generate alarms.
Calculated from voltage and current sensors.
NT_SENSOR_NT80E3_PCI_BRIDGE_POWER PCI bridge power consumption.
Virtual sensor - does not generate alarms.
Calculated from voltage and current sensors.
NT_SENSOR_SOURCE_PORT NtSensorsPortNT80E3_2_e NT_SENSOR_NT80E3_NIM QSFP+ temperature sensor
NT_SENSOR_SOURCE_LEVEL1_PORT NtSensorsPortNT80E3_2_e NT_SENSOR_NT80E3_SUPPLY QSFP+ supply voltage sensor - does not generate alarms
NT_SENSOR_NT80E3_TX_BIAS1 QSFP+ TX bias line 0 current sensor - does not generate alarms
NT_SENSOR_NT80E3_TX_BIAS2 QSFP+ TX bias line 1 current sensor - does not generate alarms
NT_SENSOR_NT80E3_TX_BIAS3 QSFP+ TX bias line 2 current sensor - does not generate alarms
NT_SENSOR_NT80E3_TX_BIAS4 QSFP+ TX bias line 3 current sensor - does not generate alarms
NT_SENSOR_NT80E3_TX1 QSFP+ TX lane 0 power sensor - does not generate alarms
NT_SENSOR_NT80E3_TX2 QSFP+ TX lane 1 power sensor - does not generate alarms
NT_SENSOR_NT80E3_TX3 QSFP+ TX lane 2 power sensor - does not generate alarms
NT_SENSOR_NT80E3_TX4 QSFP+ TX lane 3 power sensor - does not generate alarms
NT_SENSOR_NT80E3_RX1 QSFP+ RX lane 0 power sensor - does not generate alarms
NT_SENSOR_NT80E3_RX2 QSFP+ RX lane 1 power sensor - does not generate alarms
NT_SENSOR_NT80E3_RX3 QSFP+ RX lane 2 power sensor - does not generate alarms
NT_SENSOR_NT80E3_RX4 QSFP+ RX lane 3 power sensor - does not generate alarms


NT100E3 Sensor Groups
Adapter Sensor Source Enum Group Enum Description
NT100E3 NT_SENSOR_SOURCE_ADAPTER NtSensorsAdapterNT100E3_e NT_SENSOR_NT100E3_FPGA_TEMP FPGA temperature sensor
NT_SENSOR_NT100E3_PCI_BRIDGE_TEMP PLX bridge temperature sensor
NT_SENSOR_NT100E3_FAN_SPEED FAN speed sensor
NT_SENSOR_NT100E3_MCU_TEMP MCU (Micro Controller Unit) temperature sensor located inside enclosure below FAN
NT_SENSOR_NT100E3_PSU0_TEMP Power supply 0 temperature sensor
NT_SENSOR_NT100E3_PSU1_TEMP Power supply 1 temperature sensor
NT_SENSOR_NT100E3_PSU2_0_TEMP Power supply 2, IC0 junction temperature sensor
NT_SENSOR_NT100E3_PSU2_1_TEMP Power supply 2, IC1 junction temperature sensor
NT_SENSOR_NT100E3_OSC_TEMP Clock oscillator temperature sensor
NT_SENSOR_NT100E3_EXT_TEMP External temperature sensor located at board corner outside enclosure
NT_SENSOR_NT100E3_PCB_TEMP PCB temperature sensor
NT_SENSOR_SOURCE_LEVEL1_ADAPTER NtSensorsAdapterNT100E3_e NT_SENSOR_NT100E3_NT100E3_POWER Total power consumption.
Virtual sensor - does not generate alarms.
Calculated from voltage and current sensors.
NT_SENSOR_NT100E3_FPGA_POWER FPGA power consumption.
Virtual sensor - does not generate alarms.
Calculated from voltage and current sensors.
NT_SENSOR_NT100E3_DDR3_POWER DDR3 RAM power consumption.
Virtual sensor - does not generate alarms.
Calculated from voltage and current sensors.
NT_SENSOR_NT100E3_NIM_POWER NIM power consumption.
Virtual sensor - does not generate alarms.
Calculated from voltage and current sensors.
NT_SENSOR_NT100E3_PCI_BRIDGE_POWER PCI bridge power consumption.
Virtual sensor - does not generate alarms.
Calculated from voltage and current sensors.
NT_SENSOR_SOURCE_PORT NtSensorsPortNT100E3_e NT_SENSOR_NT100E3_NIM CFP4 temperature sensor
NT_SENSOR_NT100E3_GEARBOX_TEMP Gearbox temperature sensor
NT_SENSOR_SOURCE_LEVEL1_PORT NtSensorsPortNT100E3_e NT_SENSOR_NT100E3_SUPPLY CFP4 supply voltage sensor - does not generate alarms
NT_SENSOR_NT100E3_TX_BIAS1 CFP4 TX lane 0 bias current sensor - does not generate alarms
NT_SENSOR_NT100E3_TX_BIAS2 CFP4 TX lane 1 bias current sensor - does not generate alarms
NT_SENSOR_NT100E3_TX_BIAS3 CFP4 TX lane 2 bias current sensor - does not generate alarms
NT_SENSOR_NT100E3_TX_BIAS4 CFP4 TX lane 3 bias current sensor - does not generate alarms
NT_SENSOR_NT100E3_TX1 CFP4 TX lane 0 power sensor - does not generate alarms
NT_SENSOR_NT100E3_TX2 CFP4 TX lane 1 power sensor - does not generate alarms
NT_SENSOR_NT100E3_TX3 CFP4 TX lane 2 power sensor - does not generate alarms
NT_SENSOR_NT100E3_TX4 CFP4 TX lane 3 power sensor - does not generate alarms
NT_SENSOR_NT100E3_RX1 CFP4 RX lane 0 power sensor - does not generate alarms
NT_SENSOR_NT100E3_RX2 CFP4 RX lane 1 power sensor - does not generate alarms
NT_SENSOR_NT100E3_RX3 CFP4 RX lane 2 power sensor - does not generate alarms
NT_SENSOR_NT100E3_RX4 CFP4 RX lane 3 power sensor - does not generate alarms


NT200A01 Sensor Groups
Adapter Sensor Source Enum Group Enum Description
NT200A01 NT_SENSOR_SOURCE_ADAPTER NtSensorsAdapterNT200A01_e NT_SENSOR_NT200A01_FPGA_TEMP FPGA temperature sensor
NT_SENSOR_NT200A01_FAN_SPEED FAN speed sensor
NT_SENSOR_NT200A01_MCU_TEMP MCU (Micro Controller Unit) temperature sensor located inside enclosure below FAN
NT_SENSOR_NT200A01_PSU0_TEMP Power supply 0 temperature sensor
NT_SENSOR_NT200A01_PCB_TEMP PCB temperature sensor
NT_SENSOR_SOURCE_LEVEL1_ADAPTER NtSensorsAdapterNT200A01_e NT_SENSOR_NT200A01_NT200A01_POWER Total power consumption.
Virtual sensor - does not generate alarms.
Calculated from voltage and current sensors.
NT_SENSOR_NT200A01_FPGA_POWER FPGA power consumption.
Virtual sensor - does not generate alarms.
Calculated from voltage and current sensors.
NT_SENSOR_NT200A01_DDR4_POWER DDR4 RAM power consumption.
Virtual sensor - does not generate alarms.
Calculated from voltage and current sensors.
NT_SENSOR_NT200A01_NIM_POWER NIM power consumption.
Virtual sensor - does not generate alarms.
Calculated from voltage and current sensors.
NT_SENSOR_SOURCE_PORT NtSensorsPortNT200A01_e NT_SENSOR_NT200A01_NIM QSFP28 temperature sensor
NT_SENSOR_SOURCE_LEVEL1_PORT NtSensorsPortNT200A01_e NT_SENSOR_NT200A01_SUPPLY QSFP28 supply voltage sensor - does not generate alarms
NT_SENSOR_NT200A01_TX_BIAS1 QSFP28 TX lane 0 bias current sensor - does not generate alarms
NT_SENSOR_NT200A01_TX_BIAS2 QSFP28 TX lane 1 bias current sensor - does not generate alarms
NT_SENSOR_NT200A01_TX_BIAS3 QSFP28 TX lane 2 bias current sensor - does not generate alarms
NT_SENSOR_NT200A01_TX_BIAS4 QSFP28 TX lane 3 bias current sensor - does not generate alarms
NT_SENSOR_NT200A01_TX1 QSFP28 TX lane 0 power sensor - does not generate alarms
NT_SENSOR_NT200A01_TX2 QSFP28 TX lane 1 power sensor - does not generate alarms
NT_SENSOR_NT200A01_TX3 QSFP28 TX lane 2 power sensor - does not generate alarms
NT_SENSOR_NT200A01_TX4 QSFP28 TX lane 3 power sensor - does not generate alarms
NT_SENSOR_NT200A01_RX1 QSFP28 RX lane 0 power sensor - does not generate alarms
NT_SENSOR_NT200A01_RX2 QSFP28 RX lane 1 power sensor - does not generate alarms
NT_SENSOR_NT200A01_RX3 QSFP28 RX lane 2 power sensor - does not generate alarms
NT_SENSOR_NT200A01_RX4 QSFP28 RX lane 3 power sensor - does not generate alarms


Reading a Single Sensor from an NT20E2 Adapter
In order to read a single sensor from an adapter or port, the type of adapter must be known.
The sensor index must be selected from the adapter type sensor group.

int32_t value;
NtInfo_t infoSensor;
infoSensor.u.sensor.source = NT_SENSOR_SOURCE_ADAPTER; // The source must be adapter
infoSensor.u.sensor.sourceIndex = 0; // The adapter is adapter 0
infoSensor.u.sensor.sensorIndex = NT_SENSOR_NT20E2_FPGA; // Read FPGA temperature
// The index in the NT20E2 adapter sensor group
status = NT_InfoRead(hInfo, &infoSensor);
if (status == NT_SUCCESS) {
value = infoSensor.u.sensor.data.value; // Sensor data is returned in the infoSensor.u.sensor.data struct
}
else {
NT_ExplainError(status, errBuf, sizeof(errBuf));
fprintf(stderr, ">>> Error: NT_InfoRead failed. Code %d = %s\n", status, errBuf);
goto ErrorExit;
}

See the sensor example for a complete code example sensor/sensor_example.c

Sensor Events

When a sensor reaches a value that is out of the sensor range, a sensor event (alarm)
is triggered. In order to receive sensor events (alarms), the event stream must be
opened and polled. See the event example event/event_example.c for how to do this.
The sensor information is stored in NtEventSensor_s.

NtEvent_t hEvent;
if((status = NT_EventRead(hEventStream, &hEvent, 10000)) != NT_SUCCESS) {
// Get the status code as text
fprintf(stderr, "NT_EventRead() failed: %s\n", errorBuffer);
return -1;
}
// check event info
// The event sensor info
hEvent.u.sensorEvent.source // Adapter or port sensor
hEvent.u.sensorEvent.sourceIndex // The adapter or port number
hEvent.u.sensorEvent.sensorIndex // The index in the sensor group
// Note: The index depends on whether
// it is a port or adapter source and
// the type of adapter
hEvent.u.sensorEvent.adapterType // The type of the adapter
hEvent.u.sensorEvent.action // Enter or leaving alarm state
hEvent.u.sensorEvent.value // Value that triggered the event
}
else {
// Another type of event
}

Identifying an Event
In order to identify an event, the source, sensorIndex and adapterType must be used.
The sourceIndex identifies the adapter or port that has the alarm.

Sensor Alarms in the Log

When a sensor alarm is triggered, a message is written in the log.
The message could be for adapter sensors:
Adapter sensor "SensorIndex" "Sensor name" on adapter "sourceIndex": enter alarm state with value XX
And for port sensors:
Port sensor "SensorIndex" "Sensor name" on port "sourceIndex": enter alarm state with value XX
The sourceIndex is either the adapter number or port number depending on the source.
The sensorIndex is the index in the sensor group. See the sensor groups above.
The sensor name for each sensor can be found by reading the sensor information using the info stream.
The current value is the value triggering the sensor alarm. The range for each sensor can be found
by reading the sensor information.

Changing the Limits for a Sensor

It is possible to change to upper and lower limit of a sensor and thereby reduce the range where
the sensor can operate without triggering a warning. The limits can be changed by using the config tool
or the config stream.

Setting the Limits using the Config Stream
In order to set the limits using the config stream, the available sensors must first be read using the
info stream.

NtInfo_t infoAdapter;
NtInfo_t infoSensor;
uint32_t sensor;
// Get the number of sensors for adapter 1
infoAdapter.cmd = NT_INFO_CMD_READ_ADAPTER;
infoAdapter.u.adapter.adapterNo = 1;
if ((status = NT_InfoRead(hInfo, &infoAdapter)) != NT_SUCCESS) {
NT_ExplainError(status, errBuf, sizeof(errBuf));
fprintf(stderr, ">>> Error: NT_InfoRead failed. Code %d = %s\n", status, errBuf);
return status;
}
for (sensor = 0; sensor < infoAdapter.u.adapter.data.numSensors; sensor++) {
infoSensor.u.sensor.source = NT_SENSOR_SOURCE_ADAPTER; // Select to source to be adapter sensors
infoSensor.u.sensor.sourceIndex = 1; // Adapter 1
infoSensor.u.sensor.sensorIndex = sensor; // Sensor number/index
status = NT_InfoRead(hInfo, &infoSensor);
if (status == NT_SUCCESS) {
// The sensor values returned
infoSensor.u.sensor.data.limitLow
infoSensor.u.sensor.data.limitHigh
infoSensor.u.sensor.data.value
infoSensor.u.sensor.data.name
infoSensor.u.sensor.data.type
}
}

Then the limits can be written to the desired sensor.

NtConfig_t configInfo;
configInfo.parm = NT_CONFIG_PARM_SENSOR; // The config sensor command
configInfo.u.write.sensor.sensorIndex = sensor; // The sensor number/index to change
configInfo.u.write.sensor.sourceIndex = 1; // Adapter 1
configInfo.u.write.sensor.source = NT_SENSOR_SOURCE_ADAPTER; // Select source to be adapter sensors
configInfo.u.write.sensor.data.limitHigh = sensorHigh; // Upper sensor limit
configInfo.u.write.sensor.data.limitLow = sensorLow; // Lower sensor limit
if ((status = NT_ConfigWrite(hConfig, &configInfo)) != 0) {
NT_ExplainError(status, errBuf, sizeof(errBuf));
fprintf(stderr, ">>> Error: NT_ConfigWrite failed. Code %d = %s\n", status, errBuf);
goto ErrorExit;
}

Note: It is not possible to set any limits outside the factory default range, that is, it is
not possible to select a higher upper limit or a lower lower limit than the factory default.
Reset the Limits to Factory Default
By setting limitLow=0 and limitHigh=0 the limits are reset to factory default.