Nicolas Droux writes:
> http://opensolaris.org/os/project/crossbow/Docs/crossbow-virt.pdf

I have A few questions about this.  I've also read through as much of
the crossbow-discuss archives as seemed to be related to these
topics, and didn't find answers there.

  - Why are bandwidth, CPU control, and MAC address assignment
    exclusively a VNIC feature, at least at the administrative level?
    Section 4.7 seems to say that MAC instances will get these
    features, so shouldn't this be "modify-dev" instead?

    Needing to create a "dummy" VNIC on top of a regular interface
    just to interpose these new features seems like an implementation
    artifact.

  - I assume we need a redesign of the VLAN code in order to get
    per-VLAN bandwidth control.  Is that redesign part of Crossbow, or
    is it some later project?  In reading the archives, it seems that
    it's been proposed as part of Crossbow, but in reading this
    document it seems to be part of something else.

  - If per-VLAN control appears, do the units of administration
    change?  Does it then become reasonable to talk about bandwidth
    and CPU control using "set-linkprop"?

  - Do bandwidth and CPU controls rely on squeues?  If so, then VNICs
    may not be able to control utilization from non-IP traffic, such
    as with bridging.

  - I'm not sure I understand the (undocumented? -- not in summary)
    "-F" option for move-vnic.  If I'm using a factory address on one
    NIC and I move a VNIC to another NIC, does this cause the VNIC to
    continue using the _same_ address but just on a new NIC?

    If so, how is duplication avoided if that factory address is ever
    reused from the original NIC?

    I would have expected that a VNIC using a factory address would
    just get a *new* address during a forced move to a new NIC.
    Changing MAC address during reconfiguration doesn't seem like a
    disaster to me -- in fact, it seems expected.  Why should it try
    to retain the address?

  - For showing statistics with "show-vnic -s", are these the same as
    "show-link -s"?  If so, wouldn't the existing "show-link -s" do
    the job?

  - What do "up" and "down" mean?  Are these equivalent to controlling
    the "RUNNING" bit from user space (i.e., some way of marking link
    up and link down manually)?  Or are they something else?  Should
    regular MAC instances (other than VNICs) have the ability to be
    set administratively up and down?

    What would happen if VNICs were always "up?"

  - What happens if a NIC is oversubscribed by the amount of bandwidth
    configured for the VNICs?  Is the result proportionate (and thus
    "fair") allocation, or do they compete on some other grounds?

    What kind of bandwidth control exists here?  How granular is it,
    and what effects do clients see from restricted bandwidth?  Are
    packets dropped (they have to be, if bandwidth limits apply to
    forwarded traffic)?  If so, is it tail drop or something more
    sophisticated?

  - Can a VNIC be built atop another non-anchor VNIC?  (Seems like the
    answer is "yes.")

  - When VNICs share rings due to a lack of hardware resources, what
    happens when the client of one VNIC is using polling and the
    client of the other one is not?

    Won't one client end up blanking the interrupts for another?

  - Instead of adding more arguments to mac_open() to handle priority
    and bandwidth, I'd suggest making these separate calls.  You'll
    need the separate call anyway to implement the "modify" mechanism.

  - What exactly does exclusive MAC access do?  If mac_exclusive_set
    is called, are other client requests blocked (sleeping)?  Or are
    they rejected (return error)?  Or are they just let through, and
    all clients are expected to bracket requests with exclusive
    set/clear calls?

  - MAC_UNICAST_AUTO seems unnecessary to me.  Why not just call first
    with MAC_UNICAST_FACTORY and, if that fails, call again with
    MAC_UNICAST_RANDOM?  Doing that would even have better
    functionality as MAC_UNICAST_AUTO seems to omit the possibility of
    desiring a particular factory address when available.

    I think having MAC_UNICAST_AUTO in the mix ends up pushing some of
    the control-path complexity out of the user space and into the
    kernel.  It'd be better to simplify the kernel parts.

  - What sorts of privileges are required to create and administer
    VNICs?  Are these things that can be delegated to non-global
    zones?

  - Why is [V]NIC the right level of bandwidth control?  If I want to
    give a zone 100Mbps worth of bandwidth, but I'm giving it multiple
    VNICs, how do I do that -- can the bandwidth control logic do
    accounting based on multiple interfaces (aggregate control, rather
    than individual interface control)?

    If I have application-level controls, such as HTTP virtual servers
    or a sendmail configuration handling multiple domains, how can I
    control bandwidth for those things?  Won't the application need to
    be involved?

-- 
James Carlson, Solaris Networking              <james.d.carlson at sun.com>
Sun Microsystems / 1 Network Drive         71.232W   Vox +1 781 442 2084
MS UBUR02-212 / Burlington MA 01803-2757   42.496N   Fax +1 781 442 1677

Reply via email to