ip2nets: scripting here is not always possible, and frankly requires the duplication of code that is already in lnet.ko in the kernel.
routes: we need the full set of routes available at mount time, for proper mount-on-boot for client nodes and automatic failover/reboot on server side. To prevent wrapping or rewriting mount.lustre, this needs to be handled in the module load chain. We had tried using modprobe install hooks for this, but the end result was racy and error prone. You can't hook into lnet.ko, as that requires the loading of all the LNDs before lctl --net XYX will work, etc.
Given that we have a fairly low-impact patch that is already done and ready to go in, why would we hold it off for some unknown feature like Dynamic LNet Config ? If DLC fixes this in the future, we could replace it - but right now only one is coded and viable.
Since Isaac and Doug both referenced "Dynamic LNet Config" - can you share the design? It is very hard to contribute code when we don't know the plans for the future.
Ticket
LU-2950has implement a way from user space to configure many LNet routes which will mirror what Dynamic Lnet Config will be doing.LU-2950will be landing in 2.5 and is ready to cherry pick now.Note: this addresses routes, not ip2nets entries. Those have to wait for the full Dynamic LNet Config.