James Carlson wrote: > When do I move VNICs around and what do I need and expect? I think > this document should work through some actual usage scenarios and then > come up with usable interfaces based on that, because the current > interfaces seem to be self-referential: they do what they do because > that's what they do. The "force" flag seems particularly problematic, > as it indicates that things the administrator should be able to do > aren't doable.
<snip> We need the ability to assign a factory MAC address or fail the operation is none is available. I don't see a problem with that. There's the "auto" (also the default) option for administrators who want to have a factory address if one is available, but don't mind to have a random address assigned if no factory address is available. I'm fine for not having a "force" option during the move operation. This means that if a VNIC was created with a "factory" option, and the destination NIC doesn't have a factory MAC address available, then the move will fail. It also means that if a user explicitly specified a factory MAC address slot, the move will fail. >>> I've seen similar schemes for access servers (most have proprietary >>> RADIUS extensions for setting bandwidth limits), and the usual way >>> this works is that once the link is saturated, the configured limits >>> become shares. Thus, the clients are all hurt in proportion to the >>> amount of bandwidth they're given. >> The limits are really used to clamp down on bandwidth utilization by a >> MAC, but they do not imply any guaranteed bandwidth. As a future >> deliverable we're also planning to provide bandwidth guarantees which is >> what you seem to be referring to here. > > Actually, no, that's not quite what I'm referring to. > > A bandwidth limit is an upper bound. If the user tries to send more > than that, then he'll experience delay and loss. There's no guarantee > that he'll be able to send that much, but he won't be able to send > more. > > A bandwidth guarantee is a lower bound. It's a reservation. The user > must always be able to get at least a given amount. This project > doesn't supply guarantees. Right. > Quite apart from those definitions, though, is the issue of fairness. > In this case, I *am* talking about limits, but I'm also talking about > what happens when the limit is unachievable. In the implementations > I've seen (Cisco and Ascend are pretty good references for this), the > limit becomes a share because this sort of behavior preserves > fairness. > > Suppose we have twenty users with 10Mbps limits, and one user with a > 50Mbps limit. They're all on a 100Mbps pipe. If ten of those 10Mbps > users can together lock out all of the others from using any of the > pipe bandwidth at all, then that's an "unfair" result. > > A very simple, but "fair," result would be that, in the limit with > everyone sending flat-out, the 50Mbps-limited user would get 20% of > the bandwidth, or 20Mbps. The 10Mbps users would get the remaining > 80%, or 4Mbps. Thus, each user would end up with 40% (which is > 100/250 and 20/50 and 4/10) of his maximum. I think this is an RFE we should consider. I'll let the rest of the team chime in if they disagree or have more to add. >>> Why is the resource allocation itself an important thing to optimize >>> versus the interface stability and scalability? >> I don't agree with the "core function" vs "periphery" argument. The >> resource control is becoming an integral part of the MAC layer, and >> there shouldn't be a need to do "extra steps" to enable that functionality. > > Opening the device is clearly core functionality -- you can't do much > if you can't open it. It sounds like you agree that if those > arguments weren't present, then some "default" set of resources would > need to be allocated. Thus, I argue that the functionality isn't core > to the goal of getting access to the mac layer. If we have the hint at open time, then we can do it right there instead of doing a first default allocation followed by a new allocation when the hint is specified. >> Yes, this will be of course fully documented. If we find an efficient >> way to do banwidth control across multiple rings in the future, I don't >> see why we wouldn't be able to made use of that functionality. > > Not just "fully documented," but the design constraint around the > units of control (being individual NIC instances) needs to be clearly > described. Maybe I'm atypical but, as a user, this wouldn't be > obvious to me. Sure, we're planning to document this already. Nicolas. -- Nicolas Droux - Solaris Networking - Sun Microsystems, Inc. droux at sun.com - http://blogs.sun.com/droux