Darren Reed writes:
> Reading 2.4 (Observability Node), it seems like the architecture
> is becoming rather obscure and complicated to achieve a
> somewhat simple goal.

It's actually quite simple in design, and provides several benefits,
so I'm not sure I understand why you're saying this.  (One of the
benefits is that I can open that observability node, and use an ioctl
to extract the forwarding table -- which allows the "show-bridge"
command to display the bridge's learned forwarding information.)

What specificially is obscure?

> What other design choices did you consider for achieving this?
> Are there any better ways we might do it if only....?

The other possible design that I considered was this:

  Make a bridge the exclusive owner (and primary mac client) of any
  links assigned to the bridge.  You cannot plumb or otherwise use
  those links.  (Perhaps, as with aggregations, passive listeners
  would be allowed.  It's unclear if VNICs configured on the
  underlying interfaces would be reasonable or exactly how they'd
  behave, as they'd essentially bypass the bridging logic.)

  Allow the user to create fake interfaces on "top" of the bridge.
  These would allow the user to plumb IP and have it talk on the
  bridged network.

  Also allow the user to specify that a fake interface is in "port
  monitoring" mode, so that the user can run snoop/wireshark and see
  the traffic on the bridge.

The benefits of such a design are hard to determine, though I guess
it's simpler to understand at a first glance.  Perhaps the most
significant benefit would be that the bridge would be a strict primary
mac client of the underlying interfaces and a mac provider for the top
fake interfaces.

The detractions would be:

  - The MAC address assigned to the real interfaces would essentially
    go to waste, and the fake ones would need random addresses.  The
    design I chose allows the real interfaces to be used naturally.

  - The fake interfaces on top would be architecturally different from
    the real ones underneath (bottom: no user access, top: no external
    I/O), meaning that we'd need to support two "types" of interfaces
    within the bridging code rather than one.

  - As noted, VNICs on the underlying physical interfaces become a
    real problem, because as mac clients, they would be in parallel
    with the bridging code.  If you sent a frame to a MAC destination
    that was on the same subnetwork but was reachable through a
    different interface, your frame would go out the _wrong_ interface
    and simply never reach the destination.  With my design, it "just
    works."

  - The design I chose allows the use of either etherstubs or Rishi's
    simlinks to provide fake interfaces, if ever needed.

But since I don't quite know what you're questioning here (or what
alternatives you might have had in mind), I'm not sure how to respond.
Some clues about the underlying concern would be appreciated.

-- 
James Carlson, Solaris Networking              <[email protected]>
Sun Microsystems / 35 Network Drive        71.232W   Vox +1 781 442 2084
MS UBUR02-212 / Burlington MA 01803-2757   42.496N   Fax +1 781 442 1677
_______________________________________________
networking-discuss mailing list
[email protected]

Reply via email to