NVIDIA / NVIDIA/nvtrust

NVSwitch attestation from inside a TDX guest (8x H100 HGX, Protected PCIe): nvattest 1.2.0 fails with NSCQ_RC_WARNING: RDT init failure (Code 1)

Open
#153 6 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
323
Forks
61
PR merge metrics
No merged PRs in 30d

Description

Environment
  • Tenant guest: Intel TDX Confidential VM, Ubuntu 24.04 (ubuntu-24-04-lts-595 image), /dev/tdx_guest present
  • Node: 8x H100 HGX (Hopper), Multi-GPU Mode = Protected PCIe, four LS10 NVSwitches visible in the guest ([10de:22a3], /dev/nvidia-nvswitch0 to 3)
  • Driver 595.71.05, nvattest 1.2.0 (apt package), libnvidia-nscq 615.71.09 (installed by hand, absent from the image)
  • Python SDK nv-attestation-sdk: the eight GPUs attest fine with ppcie_mode=False (NRAS token, 10 September 2026); switch evidence is rejected with errorCode 4005 INVALID_EVIDENCE
What happens

From inside the TDX guest, nvattest attest --device nvswitch cannot open an NSCQ session:

[switch/nscq_client.cpp:195] Failed to create NSCQ session: NSCQ_RC_WARNING: RDT init failure (Code 1)
[switch/evidence.cpp:178] Failed to initialize NSCQ
Error 600: NSCQ Initialization Failed

The switches are present on the bus and their device nodes exist in the guest, so the blocker is the NSCQ session itself, not device visibility. The infrastructure operator reports that the same command works on their 8x H200 nodes when run on the host.

Question

In Protected PCIe mode, is NVSwitch attestation expected to be host-side only (the tenant cannot obtain switch evidence from inside a TDX guest), or is there a guest-side prerequisite we are missing (NSCQ requiring a capability the guest driver does not expose, a fabric manager dependency, an image requirement)?

If it is host-side only, it would help tenants to have that stated in the PPCIe documentation, since the practical consequence is that the NVLink fabric of an 8-GPU node is not verifiable by the tenant even when all eight GPUs are.

Reproducible evidence

Raw logs, nvidia-smi output, the verifier run and the SDK run are published as dated bundles (CC BY 4.0):
https://github.com/Jabsama/confidential-gpu-attestation-evidence (folder nvswitch-2026-09-16, and ppcie-8x-h100-2026-09-10 for the successful GPU attestation on the same node type).

Related forum thread: https://forums.developer.nvidia.com/t/383536

Happy to run any additional command inside the guest if that helps.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with nvattest attest --device nvswitch and compare the published nvswitch-2026-09-16 logs with the successful GPU attestation bundle and host-side H200 behavior. Determine whether Protected PCIe NVSwitch evidence is supported in a TDX guest or requires a guest prerequisite; done means the supported execution context or missing requirement is confirmed and PPCIe documentation can state the tenant-visible limitation.

Written by the indexing model from the issue text.

Assessment

Tech stack
linux, python, ubuntu
Domain
infrastructure, operating-systems, security
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.