UCT/IB/DC: dynamic allocation of dci pools by configuration
What
Instead of creating all dci pools (and dcis) on iface init, dci pools will be created dynamically on demand by configuration
Why ?
As part of the active messages priority feature - creating different pools with different SLs is required, enabling dedicated dci pools for different lanes with different priorities, as we can't change SL of a dci (qp) after creation / connection.
How ?
For each new dc ep created - a matching dci pool will be created unless a dci pool with the same exact configuration already exists in the hash table, in which the configuration is the key and the value is pool_index, so eps which share configuration will also share a dci pool.
@roiedanino maybe add some tests?