Bring-Up
The Bring-Up process is a fully automated method for configuring and registering a designated switch tray with the NMX Manager. This process enables telemetry collection and NVLink domain management.
Each switch tray is configured to ensure both nmx-controller
and nmx-telemetry
services are active, and a mutual LTS (mTLS)-secured gRPC connection is established and maintained.
The NMX Manager provides endpoints for securely managing switch credentials via switch profiles.
Default Profile: username: admin
, password: admin
, (NVIDIA recommends to change or override for enhanced security)
Auth Required | Action | Endpoint | Description |
ro-user, rw-user | Retrieve |
| Retrieve a list of switch profiles |
rw-user | Create |
| Create a new switch profile |
ro-user, rw-user | Retrieve |
| Retrieve a specific switch profile |
rw-user | Delete |
| Delete a switch profile (except default) |
rw-user | Update |
| Update an existing switch profile Update password example
|
Bring-up is an asynchronous operation that tracks the bring-up process for one or more switches.
Auth Required | Action | Endpoint | Description |
ro-user, rw-user | Retrieve |
| Retrieve bring-up operations with optional filters ( |
rw-user | Create |
| Initiate a new bring-up process for one or more switches |
ro-user, rw-user | Retrieve |
| Get bring-up status for a specific operation |
Usage Examples
The following example demonstrates how to start a new bring-up operation using a POST request:
Single switch with default switch profile
curl -X 'POST'
\
'https://<NMX-Manager-API>/nmx/v1/bring-up'
\
-H 'accept: application/json'
\
-H 'Content-Type: multipart/form-data'
\
-F 'FmConfig=@<fm-config-file>'
\
-F 'ProfileID=<switch-profile-id>'
\
-F 'Switches={
"Address"
: ""
}'
curl -X 'POST'
\
'https://<NMX-Manager-API>/nmx/v1/bring-up'
\
-H 'accept: application/json'
\
-H 'Content-Type: multipart/form-data'
\
-F 'FmConfig=@<fm-config-file>'
\
-F 'ProfileID='
\
-F 'Switches={
"Address"
: "<switch-A-IP-Address-or-hostname>"
}' \
-F 'Switches={
"Address"
: "<switch-B-IP-Address-or-hostname>"
}'
curl -X 'POST'
\
'https://<NMX-Manager-API>/nmx/v1/bring-up'
\
-H 'accept: application/json'
\
-H 'Content-Type: multipart/form-data'
\
-F 'FmConfig=@<fm-config-file>'
\
-F 'ProfileID='
\
-F 'Switches={
"Address"
: "<switch-A-IP-Address-or-hostname>"
}' \
-F 'Switches={
"Address"
: "<switch-B-IP-Address-or-hostname>"
,
"ProfileID"
: "<custom-switch-profile-id>"
}'
curl -X 'POST'
\
'https://<NMX-Manager-API>/nmx/v1/bring-up'
\
-H 'accept: application/json'
\
-H 'Content-Type: multipart/form-data'
\
-F 'FmConfig=@fm_config_72x1_C9_S9 2.cfg'
\
-F 'ProfileID='
\
-F 'Switches={
"Address"
: "<switch-A-IP-Address-or-hostname>"
,
"ProfileID"
: "<custom-switch-profile-A-id>"
}' \
-F 'Switches={
"Address"
: "<switch-B-IP-Address-or-hostname>"
,
"ProfileID"
: "<custom-switch-profile-B-id>"
}'
fm_config / SDN Config
Provide an
fm_config
/ SDN config file that matches all switches included in this POST request.For multiple topologies, use separate POST requests for each topology.
Find more information and examples:
NVIDIA NVOS User Manual for NVLink Switches → NVLink Switching → SDN → SDN Configuration
NVIDIA NVOS User Manual for NVLink Switches → NVLink Switching → Cluster Management → Cluster Control → Cluster Control Commands
Switch Profile
Ensure you have a switch profile with the required switch credentials. If not, create one in advance via
POST /nmx/v1/switch-profiles
.A single bring-up request may specify a global switch profile for all switches, or a separate switch profile for each listed switch.
If a switch profile is specified for a particular switch, it takes precedence over the global profile specified in the request.
If all initial validations pass, A HTTP 202 Accepted
response is returned with a JSON body containing a bring-up operation ID to track the process:
{
"operationId"
: "682880baaf653727786b618f"
}
To track operation progress:
curl -X 'GET'
\
'https://<NMX-Manager-API>/nmx/v1/bring-up/682880baaf653727786b618f'
\
-H 'accept: application/json'
Step-by-Step Bring-Up Workflow
Initial Response
When the bring-up process has not yet started, the switch status is marked as "pending." It changes as soon as the NMX Manager begins the bring-up process.
{
"CreatedAt"
: "2025-05-15T07:07:31.428Z"
,
"ID"
: "682880baaf653727786b618f"
,
"Status"
: "in-progress"
,
"Switches"
: [
{
"Address"
: "<switch-IP-Address-or-hostname>"
,
"CurrentStep"
: "Initial bring-up task"
,
"StartedAt"
: "2025-05-15T07:07:31.485Z"
,
"Status"
: "pending"
,
"StatusDetails"
: ""
,
"UpdatedAt"
: "2025-05-15T07:07:31.485Z"
}
],
"UpdatedAt"
: "2025-05-15T07:07:31.485Z"
}
Bring-Up Execution Steps
Step 1: Pre Bring-up Validation
The NMX manager sends an API request to the switch tray to check whether the nmx-controller
and nmx-telemetry
services are already active.
If detected, the bring-up process is skipped to avoid overwriting the existing configuration. Bring-up can only be performed once per switch. Even if services are later shut down, the NMX Manager remembers and blocks repeated bring-up attempts, unless the services are explicitly deregistered from the NMX Manager by the user.
{
"CreatedAt"
: "2025-05-15T07:07:31.428Z"
,
"ID"
: "682880baaf653727786b618f"
,
"Status"
: "in-progress"
,
"Switches"
: [
{
"Address"
: "<switch-IP-Address-or-hostname>"
,
"CurrentStep"
: "Step 1: Is switch configured request"
,
"StartedAt"
: "2025-05-15T07:07:31.485Z"
,
"Status"
: "in-progress"
,
"StatusDetails"
: "Step 1: Is switch configured request: sent to switch-gateway."
,
"UpdatedAt"
: "2025-05-15T07:07:31.515Z"
}
],
"UpdatedAt"
: "2025-05-15T07:07:31.515Z"
}
Step 2: Enable Cluster
The NMX Manager instructs the switch tray to start the nmx-controller
and nmx-telemetry
services required for cluster operations.
{
"CreatedAt"
: "2025-05-15T07:07:31.428Z"
,
"ID"
: "682880baaf653727786b618f"
,
"Status"
: "in-progress"
,
"Switches"
: [
{
"Address"
: "<switch-IP-Address-or-hostname>"
,
"CurrentStep"
: "Step 2: Enable cluster request"
,
"StartedAt"
: "2025-05-15T07:07:31.485Z"
,
"Status"
: "in-progress"
,
"StatusDetails"
: "Step 2: Enable cluster request: sent to switch-gateway."
,
"UpdatedAt"
: "2025-05-15T07:07:37.278Z"
}
],
"UpdatedAt"
: "2025-05-15T07:07:37.278Z"
}
Step 3: Import And Configure Certificates
The NMX Manager generates the required certificates and sends them to the switch. Certificates are stored locally and configured for both nmx-controller
and nmx-telemetry
.
Each configuration action is processed asynchronously via the NVOS API, and job success is verified by polling.
{
"CreatedAt"
: "2025-05-15T07:07:31.428Z"
,
"ID"
: "682880baaf653727786b618f"
,
"Status"
: "in-progress"
,
"Switches"
: [
{
"Address"
: "<switch-IP-Address-or-hostname>"
,
"CurrentStep"
: "Step 3: Import certificates request"
,
"StartedAt"
: "2025-05-15T07:07:31.485Z"
,
"Status"
: "in-progress"
,
"StatusDetails"
: "Step 3: Import certificates request: sent to switch-gateway."
,
"UpdatedAt"
: "2025-05-15T07:07:59.62Z"
}
],
"UpdatedAt"
: "2025-05-15T07:07:59.62Z"
}
Step 4: Enable mTLS For NMX Services
The NMX Manager sends a request to configure both services for mTLS encryption, ensuring secure gRPC communication. Each operation is tracked and validated.
{
"CreatedAt"
: "2025-05-15T07:07:31.428Z"
,
"ID"
: "682880baaf653727786b618f"
,
"Status"
: "in-progress"
,
"Switches"
: [
{
"Address"
: "<switch-IP-Address-or-hostname>"
,
"CurrentStep"
: "Step 4: Enable encryption request"
,
"StartedAt"
: "2025-05-15T07:07:31.485Z"
,
"Status"
: "in-progress"
,
"StatusDetails"
: "Step 4: Enable encryption request: sent to switch-gateway."
,
"UpdatedAt"
: "2025-05-15T07:08:39.559Z"
}
],
"UpdatedAt"
: "2025-05-15T07:08:39.559Z"
}
Step 5: Import and Configure SDN Config
The NMX Manager uploads the SDN config (fm_config
) provided in the bring-up request to the switch file system. nmx-controller
is configured accordingly. Jobs are tracked and confirmed.
{
"CreatedAt"
: "2025-05-15T07:07:31.428Z"
,
"ID"
: "682880baaf653727786b618f"
,
"Status"
: "in-progress"
,
"Switches"
: [
{
"Address"
: "<switch-IP-Address-or-hostname>"
,
"CurrentStep"
: "Step 5: Install SDN request"
,
"StartedAt"
: "2025-05-15T07:07:31.485Z"
,
"Status"
: "in-progress"
,
"StatusDetails"
: "Step 5: Install SDN request: sent to switch-gateway."
,
"UpdatedAt"
: "2025-05-15T07:09:02.492Z"
}
],
"UpdatedAt"
: "2025-05-15T07:09:02.492Z"
}
Step 6: Wait for NMX Controller Status And Register
The NMX Manager polls the controller until its addition-info
field reports CONTROL_PLANE_STATE_CONFIGURED
. Once confirmed, registration begins using a secure gRPC connection.
{
"CreatedAt"
: "2025-05-15T07:07:31.428Z"
,
"ID"
: "682880baaf653727786b618f"
,
"Status"
: "in-progress"
,
"Switches"
: [
{
"Address"
: "<switch-IP-Address-or-hostname>"
,
"CurrentStep"
: "Step 6: Wait configured request"
,
"StartedAt"
: "2025-05-15T07:07:31.485Z"
,
"Status"
: "in-progress"
,
"StatusDetails"
: "Step 6: Wait configured request: sent to switch-gateway."
,
"UpdatedAt"
: "2025-05-15T07:09:17.31Z"
}
],
"UpdatedAt"
: "2025-05-15T07:09:17.31Z"
}
Step 7: Register NMX Telemetry
NMX Manager initiates registration of nmx-telemetry
over a secure gRPC connection. This is also tracked and processed by backend components.
{
"CreatedAt"
: "2025-05-15T07:07:31.428Z"
,
"ID"
: "682880baaf653727786b618f"
,
"Status"
: "in-progress"
,
"Switches"
: [
{
"Address"
: "<switch-IP-Address-or-hostname>"
,
"CurrentStep"
: "Registration request"
,
"StartedAt"
: "2025-05-15T07:07:31.485Z"
,
"Status"
: "in-progress"
,
"StatusDetails"
: "Step 7: NMX Telemetry Registration request: sent to inventory."
,
"UpdatedAt"
: "2025-05-15T07:09:55.687Z"
}
],
"UpdatedAt"
: "2025-05-15T07:09:55.687Z"
}
Final Result: Registration Completed
If successful, both nmx-controller
and nmx-telemetry
are registered, and their ObjectIDs are returned.
{
"CreatedAt"
: "2025-05-15T07:18:06.216Z"
,
"ID"
: "682880baaf653727786b618f"
,
"Status"
: "completed"
,
"Switches"
: [
{
"Address"
: "<switch-IP-Address-or-hostname>"
,
"CurrentStep"
: "Registration response"
,
"NMX-Controller-ID"
: "682595b7799bc550eec18a77"
,
"NMX-Telemetry-ID"
: "682595b8799bc550eec18a78"
,
"StartedAt"
: "2025-05-15T07:18:06.298Z"
,
"Status"
: "completed"
,
"StatusDetails"
: "bring-up completed successfully"
,
"UpdatedAt"
: "2025-05-15T07:20:25.754Z"
}
],
"UpdatedAt"
: "2025-05-15T07:20:25.761Z"
}
Operational Considerations
Asynchronous Processing
All POST requests return HTTP
202 Accepted
with anoperationId
and aLocation
header.Operations continue until each sub-task (per switch) reaches a terminal state:
failed
orcompleted
.Sub-tasks progress independently and in parallel.
Cancellation
Bring-up operations cannot be canceled once started.
Timeouts
If no progress is made within 10 minutes (configurable), the operation is marked as failed.
As long as one sub-task is progressing, the operation continues. Progress is indicated by the
UpdatedAt
field.
Troubleshooting
If bring-up fails, perform a cleanup:
SSH into the switch.
Retrieve existing certificates:
nv show system security ca-certificate nv show system security certificate
Delete NMX-added certificates:
nv action delete system security certificate <certificate_name> nv action delete system security ca-certificate <ca_certificate_name>
Remove SDN config:
nv action delete sdn config apps nmx-controller type fm_config files fm_config.cfg
Reset SDN configuration:
nv action reset sdn factory-
default
Disable cluster state:
nv set cluster state disabled nv config apply
Clean up certificate and config files:
rm /tmp/cert.p12 /tmp/ca-cert.crt /tmp/fm_config.cfg