Files
napalm-amt/docs/amt-map.md
T
christianmanivong 0052ba7884 feat: Intel AMT driver over WS-Management (0.1.0)
An `amt` driver (napalm_amt.AmtDriver), a ManagementControllerDriver for the
management controller of Intel vPro machines, with its own lean WS-Management
client (requests + ElementTree, HTTP Digest, ports 16992/16993).

It reads the machine's identity, hardware with the SMBIOS system UUID, firmware
(AMT with build, BIOS), power state and the hardware event log, reports what AMT
listens on (plain HTTP or TLS, KVM incl. port 5900, IDE-R), and switches the
machine's power. AMT cannot be reset over WS-Management, so there is no
reboot_host. Discovery recognises AMT by its ports and its Server header.

Tested against Intel's published AMT 12 recordings (go-wsman-messages,
Apache-2.0, see NOTICE). `python -m napalm_amt.record` records a real AMT
read-only; the first test devices are two Lenovo ThinkCentre M910x.
2026-10-18 14:55:32 +02:00

3.5 KiB
Raw Blame History

Getters and the WS-Management classes behind them

Classes are named by their prefix: AMT_ and IPS_ are Intel's (http://intel.com/wbem/wscim/1/{amt,ips}-schema/1/), CIM_ the DMTF's (http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/). "Enum" is Enumerate + Pull.

Connection

Step Request
open() Get AMT_GeneralSettings. Exists on every AMT and needs a valid login, so it proves both

Every read is cached for the connection, except the power state.

NAPALM getters (describe AMT)

Getter Source Notes
get_facts AMT_GeneralSettings (HostName, DomainName), CIM_Chassis/CIM_Card, CIM_SoftwareIdentity, AMT_EthernetPortSettings os_version = AMT version with build (12.0.67.1579); vendor/model/serial are the machine's (chassis, baseboard where the chassis holds SMBIOS placeholders); uptime -1
get_interfaces AMT_EthernetPortSettings wired/wireless; a port without a MAC (no WLAN card) is left out; description says DHCP/static and whether AMT shares the host's IP
get_interfaces_ip AMT_EthernetPortSettings (IPAddress, SubnetMask) Only where AMT reports an address of its own (static configuration)
get_environment none Empty: client AMT has no sensor readings. CIM_Fan/CIM_Sensor exist but report placeholders (EnabledState 5, no speed)

Role methods (describe and control the machine)

Method Source Notes
get_power_state Enum CIM_AssociatedPowerManagementService (PowerState, AvailableRequestedPowerStates) 2 = On; 3/4 (sleep), 7 (hibernate), 6/8/12/13 (off) = Off; actions = role actions whose CIM state AMT lists
set_power_state Invoke CIM_PowerManagementService.RequestPowerStateChange On → 2, ForceOff → 8, ForceRestart → 10, PowerCycle → 5, GracefulShutdown → 12, GracefulRestart → 14. ReturnValue 0 or 4096 (job started) = accepted
get_hardware_inventory CIM_Chassis, CIM_Card, CIM_ComputerSystemPackage (PlatformGUID), CIM_Processor + CIM_Chip, CIM_PhysicalMemory, CIM_MediaAccessDevice, AMT_EthernetPortSettings system_uuid: PlatformGUID with the first three groups byte-swapped (SMBIOS order, as dmidecode and Intel's console decode it). Drive size: MaxMediaSize × 1000. No cores/threads, no drive models, no PSUs
get_event_log Invoke AMT_MessageLog.PositionToFirstRecord, then GetRecords (390 per call) until NoMoreRecords 21-byte PET records, decoded after Intel's go-wsman-messages; id = position in the log
get_firmware_inventory CIM_SoftwareIdentity (AMT, Build Number), CIM_BIOSElement updateable unknown: AMT updates neither itself nor the BIOS
get_management_protocols AMT_TLSSettingData, AMT_RedirectionService, IPS_KVMRedirectionSettingData, CIM_KVMRedirectionSAP http/https from the "802.3" TLS setting; kvm/virtual_media on 16994 (16995 with TLS), kvm on 5900 when that port is on; ipmi/ssh/snmp always off
reboot_host none Not offered: WS-Management cannot restart AMT itself

A class this AMT does not know (older versions know fewer) answers with a DestinationUnreachable fault; its part of the inventory stays empty.

Not read yet

  • AMT_AuthorizationService (accounts and realms) for get_users.
  • AMT_AuditLog (who logged in, who switched power). The event log covers hardware only.
  • AMT_SetupAndConfigurationService (provisioning state and mode, ACM/CCM). Recorded by napalm_amt.record to decide later whether it is worth a warning.