James Carlson wrote:
> I'm sponsoring this fast-track request for myself. The timer is set
> to 02/04/2008. The release binding is "Minor" (because we depend on
> projects that have Minor binding and do not plan to work on a
> back-port) and the interface stability is listed at the end of the
> document.
Overall I'm very happy with this specification. I only have a few nits
and questions below.
> The bridging protocol referred to in this document is the IEEE
> 802.1D-1998 "Spanning Tree Protocol," abbreviated in this document as
> "STP." The newer and far more complex "Multiple Spanning Tree
> Protocol" (802.1Q-2005; MSTP) is intended to be backward compatible
> with STP, and is not part of this project, but may be the subject of a
> future project.
OK
> dladm create-bridge [-t] [-R <root-dir>] [-p <priority>]
> [-m <max-age>] [-h <hello-time>] [-d <forward-delay>]
> [-f <force-protocol>] [-l <link>]... <bridge-name>
Given that there might be some future project that does RSTP or MSTP,
wouldn't it make sense to have some notion of "bridge type" in the
create-bridge syntax? That would seem to make it easier to introduce new
types down the road. Then the initial type can be called "STP" and/or
"802.1D-1998".
If the create-bridge is supposed to be limited to the backwards
compatible set of IEEE 802.1D/802.1Q bridge protocols then you probably
don't need a type since '-f' can be used to control those. Do you intend
to limit it in that way?
> This command creates a bridge instance and optionally assigns
> network links to the new bridge. By default, no bridge
> instances are present, and OpenSolaris will not bridge between
> network links. See the "add-bridge" subcommand for details on
> link assignment.
You say "assigns links". Does that mean that there can be multiple -l
options to specify multiple links? Or is this subcommand limited to at
most one link?
> In this initial version, the links must also be Ethernet type.
Do we have a well-define notion of "Ethernet" for dladm?
Typing various dladm show-* on my machine just seems to tell me that my
links are "non-vlan", which isn't sufficient to tell e.g., Ethernet and
802.11 apart.
> 1.2 New dladm Link Properties
>
> "stp"
>
> This is a boolean property. It defaults to "true." When set
> to "false," the link will not use Spanning Tree, and will be
> placed into forwarding mode at all times. The "false" setting
> is appropriate for point-to-point links connected to end
> nodes. Only non-VLAN type links have this property.
I wonder if it would be better, since we might have rstp or mstp in the
future, to use Cisco type terminology for this (which I think is
"portfast" or something like that.)
> "stp-priority"
> "stp-cost"
Could we/should we avoid "stp" in those names?
> By default, all ports run standard STP. This is done for safety
> reasons: a bridge that does not run some form of bridging protocol
> (such as STP) can form long-lasting forwarding loops in the
> network. Because Ethernet has no hop-count or TTL on packets, any
> such loops are fatal to the network.
>
> When the adminstrator knows that a particular port is not
> connected to another bridge (for example, a direct point-to-point
> connection to a host system), STP can be disabled administratively
> for that port. Even if all ports on a bridge have STP disabled,
> the STP daemon still runs; this is in case new ports are added,
> and because it is responsible for enabling and disabling
> forwarding on the ports.
This is a design issue and not an architectural issue. (Thus I should
really have sent it as a separate email to the project team.):
For safety reasons, does the daemon watch for Bridge PDUs on the ports
that have STP disabled? (There shouldn't be any, thus there existence is
a red flag that the link probably isn't a point-to-point connection to a
host system.)
Erik