This happens with a LAG configured in vCenter. In this case, a default uplink HostSwitchProfile is created with teaming configured but the teaming policy is unused, so the uplinks are not connected to vmnics. The pnic-status remains down for DVS because the uplinks don't have a vmnic assigned.
DVS has a LAG configured, no vmnic assigned:DVS Name LAG Name LAG ID NICs Enabled
-------- -------- ------ ---- -------
vds#### lag#### 33#### true
NSX logs report bond status as down:
INFO org.corfudb.runtime.collections.streaming.StreamPollingScheduler-worker-1 TransportNodeStatusMessageHandler 8884 MONITORING [nsx@6876 comp="nsx-manager" level="INFO" subcomp="manager"] Received message for PnicBonds : {"status_summary": {"rolled_up_status": "DEGRADED","num_up": 2,"num_down": 1,"num_degraded": 0},"pnic_bonds": [{"name": "lag####","status": "UP","type": "BOND"},{"name": "lag####","status": "DOWN","type": "BOND"},{"name": "lag####","status": "UP","type": "BOND"}]} : ####-####-####-####-###########
This issue is resolved in VMware NSX 3.2.4.
Workaround:
In vCenter if there is any free vmnic on affected host, then connect one of the uplinks in DVS to the free vmnic. This will set team status to UP and host will not show in degraded state.