LACP Config Realization Error lagConfig is null: NSX Transport Node Profile fails to deploy to host transport nodes when a LAG enabled host switch is added to the TNP.
search cancel

LACP Config Realization Error lagConfig is null: NSX Transport Node Profile fails to deploy to host transport nodes when a LAG enabled host switch is added to the TNP.

book

Article ID: 435949

calendar_today

Updated On:

Products

VMware NSX

Issue/Introduction

  • NSX Transport Node Profile (TNP) fails to deploy to host transport nodes (TN) when an additional Link Aggregation Group (LAG) enabled host switch is added to the TNP.

  • NSX Manager UI displays host status as 'Failed' with error:
    Transport Node Errors LACP Config realization: Failed to process Lag config. [TN=<Transport Node UUID] Reason: Cannot invoke "com.vmware.nsx.management.policy.transportnode.model.LacpMigrationConfig.getPnics()" because "lagConfig" is null.
  • NSX Manager logs show that the host transport nodes associated with the Transport Node Collection (TNC) are in a failed state:
    /var/log/proton/nsxapi.log
    <Timestamp>  INFO http-nio-127.0.0.1-7440-exec-304 TransportNodeCollectionServiceImpl 85073 FABRIC [nsx@4413 comp="nsx-manager" level="INFO" reqId="<Request ID>" subcomp="manager" username="admin"] TNState is FAILED for TnId <TN UUID> so returning TNC state as failed for TNC <TNC UUID>
  • The TNC is missing LACP migration configuration entries for 1 or more DVS switches (see the below example):

    The TNC has only 1 'lagConfig' Entry (for dvs-2):
    GET /policy/api/v1/infra/sites/default/enforcement-points/default/transport-node-collections/<TNC UUID>
    "lagConfig": [{
    "fallbackPnic": {
    "deviceName": "vmnic0",
    "uplinkName": "lag-1-0"
    },
    "pnics": [{
    "deviceName": "vmnic1",
    "uplinkName": "lag-1-1"
    }],
    "mgmtDvportgroups": ["dvportgroup-1", "dvportgroup-2"],
    "dvsMoId": "dvs-2"
    }]

    The TNP has 2 LAG-enabled host switches configured: 
    GET /api/v1/infra/host-transport-node-profiles/<TNP UUID>
    "hostSwitchName": "Host-Switch-Name-1"
    "hostSwitchId": "50 XX XX XX XX XX XX XX-XX XX XX XX XX XX XX 1d"
    (Maps to dvs-2)
    
    "hostSwitchName": "Host-Switch-Name-2"
    "hostSwitchId": "50 XX XX XX XX XX XX XX-XX XX XX XX XX XX XX 4d"
    (Maps to dvs-3)

Environment

VMware NSX

Cause

This issue can occur if the TNC for the cluster is missing 'migration_to_lag' VDS entries.  The 'migration_to_lag field' can only be configured at the time of TNC creation.  It is not currently possible to add a LAG-enabled host switch to an existing TNC.

Resolution

This is a known issue impacting VMware NSX.

Workaround

  1. In vCenter, navigate to each effected DVS portgroup's Teaming and Failover settings and verify that LAG configuration is not used.  Place standard uplinks in the configuration.  Failing to do this will result in the below error:
    Wait for completion failed with 'A specified parameter was not correct: spec.uplinkTeamingPolicy.uplinkPortOrder'
  2. In the NSX UI, remove NSX from the affected host transport node cluster:
    System > Fabric > Hosts > Clusters (Tick the releavnt cluster) > Remove NSX
      
    NB: This will unprepare all hosts in the TNC and delete the TNC.
  3. Recreate the TNC with a PUT request.  The request body must include the complete LAG information in the 'migration_to_lag' field as defined by the TNP (example below):

    PUT /policy/api/v1/infra/sites/default/enforcement-points/default/transport-node-collections/<TNC UUID>
    "migration_to_lag": [
        {
          "dvs_mo_id": "dvs-2",
          "fallback_pnic": {
            "device_name": "vmnic0",
            "uplink_name": "lag-1-0"
          },
          "pnics": [
            {
              "device_name": "vmnic1",
              "uplink_name": "lag-1-1"
            }
          ],
          "mgmt_dvportgroups": [
            "dvportgroup-1", "dvportgroup-2"
          ]
        },
            {
          "dvs_mo_id": "dvs-3",
          "fallback_pnic": {
            "device_name": "vmnic0",
            "uplink_name": "lag-2-0"
          },
          "pnics": [
            {
              "device_name": "vmnic1",
              "uplink_name": "lag-2-1"
            }
          ],
          "mgmt_dvportgroups": [
            "dvportgroup-3"
          ]
        }

    NB:  This step needs to be done via API as the NSX UI cannot be used to specify the 'migration_to_lag' field.