XGFT Routing Algorithm double free memory on 320n Network

Problem

XGFT it's not working properly when you try some case where doesn't have the same ports per-level.

In the case we have a XGFT with 56 switches and 20 of radix.

The point of failure is during the BuildRoutes() method, since try to free the memory from a pointer that was previously de-allocated. image

Possible point of failure

There are also a TODO comment to check if it's a valid method for every XGFT topology, lo look must be there the point of failure.

How to reproduce

I attach the xml that I use on INASim, and also the parameters used by the topgen call.320n_xgfc_non_CBB.zip

topgen::CXGFT(20,3,[16,4,5],[1,4,4],false);

It's also important to notice that the branch used on INASim it was the dev_cmake_mfly , since is the one that have the feature implemented.

Edited by Alberto Merino Risueño