Bug fix for a rare case; when a lan of virtual interfaces is
constructed it is possible that assign will place the "lannode" on one node and all the other interfaces on another node (trivial lan). This is dealt with by the "virtpatch" code, that according to the comments, "only Rob and Leigh understand." Wish that were true! Anyway, when this happens, NewVirtIface never gets called with an underlying physical interface (which signals it to set the current_speed on the interface), so the current_speed is left at zero. Not good. So, in PatchVirts (which installs the vinterfaces for that lannode), also set the current_speed on the underlying phys interface. This stuff is totally bizarre, certain to break some other special case of the hundreds of special case in assign_wrapper. Oh, the code was easy, but testing it was a pain since assign is so random; it only rarely splits the lan up in the above manner.
Showing with 44 additions and 17 deletions