As previously mentioned, I notice that fea pays attention to all interfaces, not just those it's configured to use.
To help improve scalability, especially in a virtualized environement, I am attempting the following: 1) Only have the _pulled_config pull information for devices stored in the _local_config tree. This means asking netlink for specific if-index values instead of the entire tree. 2) The netlink observer will ignore anything not in the _local_config, and will remove interfaces from _local_config if it observes them unregistering from the system. 3) When adding an interface (though XRL), the ifconfig object will add it to _local_config, tell the pulled_config to pull it from the system, and if found, will save it in the _original_config as well in case we want to roll back to the original system state. Once added, nothing is removed from the _original_config. 4) There is an XRL method to configure all interfaces from the system. I am hoping this isn't actually needed and can be removed, as it would require reading the entire set of interfaces. I can (re)add code to support this if needed, but maybe it isn't really useful and could be removed? I am only implementing the optimizations for the netlink related portions. The remainder of the iftree-get/set logic will use the current method of reading all interfaces regardless of local config. I believe this will go a long way towards helping fea scale to 1000+ interfaces, but don't have performance numbers or working code quite yet. Thanks, Ben -- Ben Greear <[EMAIL PROTECTED]> Candela Technologies Inc http://www.candelatech.com _______________________________________________ Xorp-hackers mailing list [email protected] http://mailman.ICSI.Berkeley.EDU/mailman/listinfo/xorp-hackers
