diff --git a/operator-nexus/howto-network-fabric-quality-of-service.md b/operator-nexus/howto-network-fabric-quality-of-service.md index 3aba72782f..3769a57547 100644 --- a/operator-nexus/howto-network-fabric-quality-of-service.md +++ b/operator-nexus/howto-network-fabric-quality-of-service.md @@ -16,36 +16,72 @@ Users can enable or disable QoS via Azure CLI. ## Prerequisites - Use supported API and Fabric version. -- Fabric must be in a state that allows updates (not in an immutable provisioning phase). - - -## Option 1—Azure CLI +- Fabric must be in a state that allows updates (not in an immutable provisioning phase). +- States that allow fabric update: + + #### Network Fabric Update (PATCH) — Allowed & Blocked States + + ##### Configuration State + + | Allowed ✅ | Blocked ❌ | + |-----------|-----------| + | Succeeded | Provisioning | + | Provisioned | Deprovisioning | + | Deprovisioned | Rejected | + | ErrorProvisioning | DeferredControl | + | ErrorDeprovisioning | PendingCommit | + | Accepted | PendingAdministrativeUpdate | + | Failed | CommitStaged | + | | CommitStageFailed | + | | CommitRollbackFailed | + | | Initializing | + + ##### Lock States + + | Lock Type | Allowed ✅ | Blocked ❌ | + |-----------|-----------|-----------| + | Administrative Lock | Disabled | Enabled | + | Configuration Lock (Commit Lock) | Disabled | Enabled | + + ##### Under Maintenance — Exempted Reasons (PATCH still allowed) + + | Reason | + |--------| + | NniUpdateInProgress | + | ControlPlaneAclsUpdated | + | TrustedIpPrefixesUpdated | + + Any other `UnderMaintenance` reason → ❌ PATCH blocked ### Enable (or disable) QoS on a fabric: ```Azure CLI -az networkfabric fabric update \ - --subscription XXX_SUBSCRIPTION_ID \ - --resource-group XXX_RESOURCE_GROUP \ - --resource-name XXX_FABRIC_NAME \ +az networkfabric fabric update \ + --subscription XXX_SUBSCRIPTION_ID \ + --resource-group XXX_RESOURCE_GROUP \ + --resource-name XXX_FABRIC_NAME \ --qos-configuration "{qosConfigurationState:'Enabled'}" ``` Use 'Disabled' to turn QoS off ### Enable configuration lock: ```Azure CLI -az networkfabric fabric configuration-lock enable \ - --subscription XXX_SUBSCRIPTION_ID \ - --resource-group XXX_RESOURCE_GROUP \ - --resource-name XXX_FABRIC_NAME +az networkfabric fabric lock-fabric \ + --subscription XXX_SUBSCRIPTION_ID \ + --resource-group XXX_RESOURCE_GROUP \ + --network-fabric-name XXX_FABRIC_NAME \ + --lock-type Configuration \ + --action Lock ``` ### Commit configuration: ```Azure CLI -az networkfabric fabric commit \ - --subscription XXX_SUBSCRIPTION_ID \ - --resource-group XXX_RESOURCE_GROUP \ +az networkfabric fabric commit-configuration \ + --subscription XXX_SUBSCRIPTION_ID \ + --resource-group XXX_RESOURCE_GROUP \ --resource-name XXX_FABRIC_NAME ``` +Note: The commit-configuration will remove the Configuration lock on Fabric + ## Feature behavior & traffic classification - Each packet is classified into a Traffic Class (TC); egress queues prevent low‑priority traffic from blocking high‑priority traffic.