Skip to content

Commit 9e41656

Browse files
authored
Merge pull request #271227 from HollyCl/nexus0404
validate cables how to article added
2 parents 391d953 + ef086ab commit 9e41656

File tree

3 files changed

+197
-1
lines changed

3 files changed

+197
-1
lines changed

articles/operator-5g-core/quickstart-deploy-5g-core.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ Replace `YourResourceGroupName`, `YourCustomLocationName`, `YourAzureRegion`, `Y
103103
104104
## Deploy Azure Operator 5G Core via Bicep scripts
105105

106-
Deployment of Azure Operator 5G Core consists of multiple resources including clusterServices, amfDeployments, smfDeployments, upfDeployments, nrfDeployments, nssfDeployments, and observabilityServices. Each resource is deployed by an individual Bicep script and corresponding parameters file. Contact your Microsoft account contact to get access to the required Azure Operator 5G Core files.
106+
Deployment of Azure Operator 5G Core consists of multiple resources including (clusterServices, amfDeployments, smfDeployments, upfDeployments, nrfDeployments, nssfDeployments, and observabilityServices). Each resource is deployed by an individual Bicep script and corresponding parameters file. Contact your Microsoft account contact to get access to the required Azure Operator 5G Core files.
107107

108108
> [!NOTE]
109109
> The required files are shared as a zip file.

articles/operator-nexus/TOC.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,8 @@
136136
href: how-to-ip-prefixes.md
137137
- name: Network Packet Broker
138138
href: howto-configure-network-packet-broker.md
139+
- name: Validate cables for Nexus Network Fabric
140+
href: how-to-validate-cables.md
139141
- name: Nexus Kubernetes cluster
140142
expanded: false
141143
items:
Lines changed: 194 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,194 @@
1+
---
2+
title: Validate Cables for Nexus Network Fabric
3+
description: Learn how to perform cable validation for Nexus Network Fabric infrastructure management using diagnostic APIs.
4+
author: HollyCl
5+
ms.author: HollyCl
6+
ms.service: azure-operator-nexus
7+
ms.topic: how-to #Required; leave this attribute/value as-is
8+
ms.date: 04/10/2024
9+
10+
#CustomerIntent: As a < type of user >, I want < what? > so that < why? >.
11+
---
12+
# Validate Cables for Nexus Network Fabric
13+
14+
This article explains the Fabric cable validation, where the primary function of the diagnostic API is to check all fabric devices for potential cabling issues. The Diagnostic API assesses whether the interconnected devices adhere to the Bill of Materials (BOM), classifying them as compliant or non-compliant. The results are presented in a JSON format, encompassing details such as validation status, errors, identifier type, and neighbor device ID. These results are stored in a customer-provided Storage account. It is vital to the overall deployment that errors identified in this report are resolved before moving onto the Cluster deployment step.
15+
16+
## Prerequisites
17+
18+
- Ensure the Nexus Network Fabric is successfully provisioned.
19+
- Provide the Network Fabric ID and storage URL with WRITE access via a support ticket.
20+
21+
> [!NOTE]
22+
> The Storage URL (SAS) is short-lived. By default, it is set to expire in eight hours. If the SAS URL expires, then the fabric must be re-patched.
23+
24+
## Validate cabling
25+
26+
1. Execute the following Azure CLI command:
27+
28+
```azurecli
29+
az networkfabric fabric validate-configuration –resource-group "<NFResourceGroupName>" --resource-name "<NFResourceName>" --validate-action "Cabling" --no-wait --debug
30+
```
31+
The following (truncated) output should appear. Locate the operation status URL within the output. This URL is used to check the status of the operation, as described in the following step.
32+
33+
```azurecli
34+
https://management.azure.com/subscriptions/xxxxxxxxxxx/providers/Microsoft.ManagedNetworkFabric/locations/EASTUS/operationStatuses/xxxxxxxxxxx?api-version=20XX-0X-xx-xx
35+
```
36+
37+
1. You can programmatically check the status of the operation by running the following command:
38+
```azurecli
39+
az rest -m get -u "<Azure-operationsstatus-endpoint url>"
40+
```
41+
The operation status indicates if the API succeeded or failed.
42+
43+
> [!NOTE]
44+
> The operation takes roughly 20~40 minutes to complete based on the number of racks.
45+
46+
1. Download and read the validated results from the storage URL.
47+
48+
Example output is shown in the following sections.
49+
50+
### Customer Edge (CE) to Provider Edge (PE) validation output example
51+
52+
```azurecli
53+
networkFabricInfoSkuId": "M8-A400-A100-C16-ab",
54+
  "racks": [
55+
    {
56+
      "rackId": "AR-SKU-10005",
57+
      "networkFabricResourceId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx/resourceGroups/ResourceGroupName/providers/Microsoft.managedNetworkFabric/networkFabrics/NFName",
58+
      "rackInfo": {
59+
        "networkConfiguration": {
60+
          "configurationState": "Succeeded",
61+
          "networkDevices": [
62+
            {
63+
              "name": "AR-CE1",
64+
              "deviceSourceResourceId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx/resourceGroups/ResourceGroupName/providers/Microsoft.ManagedNetworkFabric/networkDevices/NFName-AggrRack",
65+
              "roleName": "CE1",
66+
              "deviceSku": "DCS-XXXXXXXXX-36",
67+
              "deviceSN": "XXXXXXXXXXX",
68+
              "fixedInterfaceMaps": [
69+
                {
70+
                  "name": "Ethernet1/1",
71+
                  "description": "AR-CE1:Et1/1 to PE1:EtXX",
72+
                  "deviceConnectionDescription": "SourceHostName:Ethernet1/1 to DestinationHostName:Ethernet",
73+
                  "sourceHostname": "SourceHostName",
74+
                  "sourcePort": "Ethernet1/1",
75+
                  "destinationHostname": "DestinationHostName",
76+
                  "destinationPort": "Ethernet",
77+
                  "identifier": "Ethernet1",
78+
                  "interfaceType": "Ethernet",
79+
                  "deviceDestinationResourceId": null,
80+
                  "speed in Gbps": "400",
81+
                  "cableSpecification": {
82+
                    "transceiverType": "400GBASE-FR4",
83+
                    "transceiverSN": "XKT220900XXX",
84+
                    "cableSubType": "AOC",
85+
                    "modelType": "AOC-D-D-400G-10M",
86+
                    "mediaType": "Straight"
87+
                  },
88+
                  "validationResult": [
89+
                    {
90+
                      "validationType": "CableValidation",
91+
                      "status": "Compliant",
92+
                      "validationDetails": {
93+
                        "deviceConfiguration": "Device Configuration detail",
94+
                        "error": null,
95+
                        "reason": null
96+
                      }
97+
                    },
98+
                    {
99+
                      "validationType": "CableSpecificationValidation",
100+
                      "status": "Compliant",
101+
                      "validationDetails": {
102+
                        "deviceConfiguration": "Speed: 400 ; MediaType : Straight",
103+
                        "error": "null",
104+
                        "reason": null
105+
                      }
106+
                    }
107+
                  ]
108+
                },
109+
```
110+
111+
112+
### Customer Edge to Top of the Rack switch validation
113+
114+
115+
```azurecli
116+
{
117+
                      "name": "Ethernet11/1",
118+
                      "description": "AR-CE2:Et11/1 to CR1-TOR1:Et24",
119+
                      "deviceConnectionDescription": " SourceHostName:Ethernet11/1 to DestinationHostName:Ethernet24",
120+
                      "sourceHostname": "SourceHostName",
121+
                      "sourcePort": "Ethernet11/1",
122+
                      "destinationHostname": "DestinationHostName ",
123+
                      "destinationPort": "24",
124+
                      "identifier": "Ethernet11",
125+
                      "interfaceType": "Ethernet",
126+
                      "deviceDestinationResourceId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx/resourceGroups/ResourceGroupName/providers/Microsoft.ManagedNetworkFabric/networkDevices/ NFName-CompRack",
127+
                      "speed in Gbps": "400",
128+
                      "cableSpecification": {
129+
                        "transceiverType": "400GBASE-AR8",
130+
                        "transceiverSN": "XYL221911XXX",
131+
                        "cableSubType": "AOC",
132+
                        "modelType": "AOC-D-D-400G-10M",
133+
                        "mediaType": "Straight"
134+
                      },
135+
                      "validationResult": [
136+
                        {
137+
                          "validationType": "CableValidation",
138+
                          "status": "Compliant",
139+
                          "validationDetails": {
140+
                            "deviceConfiguration": "Device Configuration detail",
141+
                            "error": null,
142+
                            "reason": null
143+
                          }
144+
                        },
145+
                        {
146+
                          "validationType": "CableSpecificationValidation",
147+
                          "status": "Compliant",
148+
                          "validationDetails": {
149+
                            "deviceConfiguration": "Speed: 400 ; MediaType : Straight",
150+
                            "error": "",
151+
                            "reason": null
152+
                          }
153+
                        }
154+
                      ]
155+
```
156+
157+
#### Statuses of validation
158+
159+
|Status Type |Definition |
160+
|---------|---------|
161+
|Compliant | When the status is compliant with the BOM specification |
162+
|Non-Compliant | When the status isn't compliant with the BOM specification |
163+
|Unknown | When the status is unknown |
164+
165+
#### Validation attributes
166+
167+
|Attribute |Definition |
168+
|---------|---------|
169+
|`deviceConfiguration` | Configuration that's available on the device. |
170+
|`error` | Error from the device |
171+
|`reason` | This field is populated when the status of the device is unknown. |
172+
|`validationType` | This parameter indicates what type of validation. (cable & cable specification validations) |
173+
|`deviceDestinationResourceId` | Azure Resource Manager ID of the connected Neighbor (destination device) |
174+
|`roleName` | The role of the Network Fabric Device (CE or TOR) |
175+
176+
177+
## Known issues and limitations in cable validation
178+
179+
- Post Validation Connections between TORs and Compute Servers isn't supported.
180+
- Cable Validation for NPB isn't supported because there's no support for "show lldp neighbors" from Arista.
181+
- The Storage URL must be in a different region from the Network Fabric. For instance, if the Fabric is hosted in East US, the storage URL should be outside of East US.
182+
- Cable validation supports both 4 rack and 8 rack BOMs.
183+
184+
## Generate the storage URL
185+
186+
Refer to [Create a container](../storage/blobs/blob-containers-portal.md#create-a-container) to create a container.
187+
188+
> [!NOTE]
189+
> Enter the name of the container using only lowercase letters.
190+
191+
Refer to [Generate a shared access signature](../storage/blobs/blob-containers-portal.md#generate-a-shared-access-signature) to create the SAS URL of the container. Provide Write permission for SAS.
192+
193+
> [!NOTE]
194+
> ESAS URLs are short lived. By default, it is set to expire in eight hours. If the SAS URL expires, then you must open a Microsoft support ticket to add a new URL.

0 commit comments

Comments
 (0)