Currently we have 2 ways of specifying ECMP
- Via compilation of FRR
- Via runtime specification
Let's add a 3rd ability to query the kernel( or relevant api ) for any underlying hardware abstraction
Then after we have this input. Choose the min of the 3 to use at run time
Also add the same thing for # of routes. Some hardware has a limitation on the # of routes that can be installed. Allow the code to smartly understand that.