Change in the API response output is observed between NSX versions 3.0.2 and 3.2.0 (and above) to get tier-0 or tier-1 routing-table and forwarding table from edge nodes
The API executed is GET /policy/api/v1/infra/tier-0s/<tier-0-id>/forwarding-table or GET /policy/api/v1/infra/tier-0s/<tier-0-id>/routing-table
A part of the output from NSX 3.0.2 where the API response output returns Edge node UUID "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
{'result_count': 2,
'results': [{'count': 22,
'edge_node': '/infra/sites/default/enforcement-points/default/edge-clusters/Edge-cluster-UUID/edge-nodes/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX', << Edge UUID
'route_entries': [{'admin_distance': 3,
'lr_component_id': 'lr-component-uuid',
'lr_component_type': 'VRF_SERVICE_ROUTER_TIER0',
'network': 'X.X.X.0/24',
'next_hop': 'X.X.X.X',
'route_type': 't1c'},
{'admin_distance': 0,
'lr_component_id': 'lr-component-uuid',
'lr_component_type': 'VRF_SERVICE_ROUTER_TIER0',
'network': 'X.X.X.X/31',
'next_hop': '',
'route_type': 't0c'},
But in case of output from NSX 3.2, the edge-nodes are mentioned only with Edge node Index numbers '0' or '1' in the edge cluster
{'result_count': 12,
'results': [{'count': 6,
'edge_node': '/infra/sites/default/enforcement-points/default/edge-clusters/Edge-cluster-UUID/edge-nodes/1', << Edge node Index number
'route_entries': [{'admin_distance': 200,
'lr_component_id': 'lr-component-uuid',
'lr_component_type': 'CCP_ROUTER_TYPE_VRF_SERVICE_ROUTER_TIER0',
'network': 'X.X.X.X/32',
'next_hop': 'X.X.X.X',
'route_type': 'b'},
{'admin_distance': 200,
{'count': 6,
'edge_node': '/infra/sites/default/enforcement-points/default/edge-clusters/Edge-cluster-UUID/edge-nodes/0', << Edge node Index number
'route_entries': [{'admin_distance': 200,
'lr_component_id': 'lr-component-uuid',
'lr_component_type': 'CCP_ROUTER_TYPE_VRF_SERVICE_ROUTER_TIER0',
'network': 'X.X.X.X/32',
'next_hop': 'X.X.X.X',
'route_type': 'b'},
{'admin_distance': 200,
3.0.2 and 3.2.0 & above
The reason for the change in API response output is expected as the edge cluster API was updated in NSX 3.2.0 to reflect member index of the edge node.
Since the API output for routing and forwarding table returns only member-index numbers, to get the mapping between Edge node UUID and member-index execute below API
GET /infra/sites/default/enforcement-points/default/edge-clusters/<Edge-cluster-UUID>/edge-nodes/<Edge-node-UUID>
{
"resource_type": "PolicyEdgeNode",
"id": "en",
"display_name": "/infra/sites/default/enforcement-points/nsxt-ep/edge-clusters/ec/edge-nodes/en",
"path": "/infra/sites/default/enforcement-points/nsxt-ep/edge-clusters/ec/edge-nodes/en",
"parent_path": "/infra/sites/default/enforcement-points/nsxt-ep/edge-clusters/ec",
"relative_path": "en",
"nsx_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", <-------- ID
"member_index": 0, <-------- member index
"_create_user": "admin",
"_create_time": 1517262573524,
"_last_modified_user": "admin",
"_last_modified_time": 1517262753660,
"_system_owned": false,
"_protection": "NOT_PROTECTED",
"_revision": 0
}
Member index of edge node is a system generated number and will remain in sequence to the edge nodes in the cluster
Refer : Policy > Infra > Enforcement Points in NSX 3.2.1 API Doc