Skip to content

RPC Diagnostic Command Design Document

ShradhaGupta31 edited this page Feb 11, 2026 · 3 revisions

RPC Diagnostic Command

Status

Proposed

Context

Currently, RPC-Go lacks consolidated diagnostic and troubleshooting capabilities for Intel AMT. Users and support teams need the ability to:

  1. Troubleshoot CIRA Connectivity (Issue #1003): When AMT is connected in CIRA mode, it maintains data about session open/close times, closure reasons, and connectivity statistics. This data can be retrieved through PTHI command CFG_Getcira but is not currently exposed via rpc-go.

  2. Diagnose CSME/ME Firmware Errors (Issue #1004): CSME has a small partition in the SPI flash where it can save critical errors that occur during its life cycle. This FLOG data can be retrieved using HECI command HothamCtlGetFlog via HOTHAM protocol, but there is no mechanism to retrieve it via rpc-go for Intel support team analysis.

  3. Access AMT WSMAN Classes Without Password (Issue #1005): OS administrators need to access certain AMT WSMAN classes without requiring the AMT password for debugging purposes.

Decision

We will introduce a new diagnostic command to rpc-go that consolidates all diagnostic and troubleshooting capabilities. The command structure will be:

rpc
└── diagnostic
    ├── cira
    ├── csme
    └── wsman
        ├── get
        └── list

CLI Structure

rpc diagnostic <subcommand> [options]

Subcommands

1. Help

rpc diagnostic --help

List of available debug sub-commands:
  cira       - CIRA debug information (connection logs)
  csme       - CSME debug information (Flash Log / firmware error records)
  wsman      - AMT WSMAN debug class data retrieval

2. CIRA

Retrieves CIRA connection logs.

rpc diagnostic cira [options]
Flag Description Default
--output, -o Output file path stdout
--format, -f Output format (json, text) text

Examples:

# Retrieve CIRA connection logs and output as text to console
rpc diagnostic cira

# Retrieve CIRA connection logs and save as text to a specified file
rpc diagnostic cira --output /tmp/cira.txt

# Retrieve CIRA connection logs and save as JSON to a specified file
rpc diagnostic cira --format json --output /tmp/cira.json

3. CSME

Retrieves CSME Flash Log (FLOG) for firmware debugging.

rpc diagnostic csme [options]
Flag Description Default
--output, -o Output file path for binary data csme_flog.bin

Examples:

# Retrieve CSME Flash Log and save to default file (csme_flog.bin)
rpc diagnostic csme

# Retrieve CSME Flash Log and save to specified binary file
rpc diagnostic csme --output /tmp/csme_crashdump.bin

4. WSMAN

Retrieves AMT WSMAN class data for debugging purposes.

List Supported Classes:

rpc diagnostic wsman list

Retrieve WSMAN Class Data:

rpc diagnostic wsman get [options]
Flag Description Default
--class, -c Specific WSMAN class to retrieve
--output, -o Output file path stdout
--format, -f Output format (json, xml) json
--all, -a Retrieve data for all available WSMAN classes

Examples:

# List all supported WSMAN classes (does not fetch data)
rpc diagnostic wsman list

# Fetch data for all WSMAN classes and output as JSON to console
rpc diagnostic wsman get --all

# Fetch data for a single WSMAN class and output as JSON to console
rpc diagnostic wsman get --class AMT_GeneralSettings

# Fetch data for a single WSMAN class and save to a specified file
rpc diagnostic wsman get --class AMT_AuditLog --output audit.json

# Fetch data for all supported WSMAN classes and save as XML to a file
rpc diagnostic wsman get --format xml --output all_classes.xml

# Fetch data for multiple WSMAN classes and output to console
rpc diagnostic wsman get -c AMT_GeneralSettings -c AMT_EthernetPortSettings

References

Clone this wiki locally