Subject: [rrg] MACs, switches and layer 2 architectures

From: William Herrin <[email-masked]>
Date: Fri, 11 Jun 2010 22:25:31 -0400

On Fri, Jun 11, 2010 at 9:26 PM, Tony Li <[email-masked]> wrote:
>> 1. By a switch determining which port or ports to repeat a received packet on.
>
> Again, function 1 does not make the namespace topologically sensitive.  It's
> just using a flat identifier space and explicitly learning the location of
> the identifier.

Actually, this all gets me to thinking... Instead of the ubiquitous
Ethernet, what might a layer 2 network in which the MAC address was
unambiguously a locator look like?

32 bits switch number. Assigned at the factory. 16 bits port number.
The switch owns all 16 bits.

NICs are not assigned any address. When a NIC first connects to a
switch, the switch sends one address comprised of the switch number
and the port number.

When the switch connects to another switch, instead of assigning an
address to the port, it announces its switch number and the other
switch numbers it knows about as well as their distance metrics from
itself. It likewise sends updates as new switches are learned and old
carriers are lost.

Everything else works as with Ethernet. 48 bit source and destination
MAC comprised of the 32 bit switch ID and 16 bit port number
transmitted by the host with each packet.

Interesting beneficial characteristics of such a design:

Smaller CAM. Need only keep track of switch numbers, not full MAC
addresses. Only switches, not all hosts.
Inherent loop mitigation. No need for spanning tree.
Never a need to flood unicast packets to all ports. Can drop early if
the destination switch is unknown.
Optimal routing through a multiply connected switching mesh.

Challenges with such a design:

Simple repeaters that don't examine the MAC address not possible.
Broadcast media difficult or impossible (e.g. wifi or 10base2)
Must advise host network stack when a MAC is assigned. Stack may need
to take further action, e.g. a broadcast or multicast packet advising
of the new IP to MAC mapping.
Picking a switch number when a host with multiple NICs or a host with
multiple guest OSes needs to act as a switch.
Deciding to emulate a switch if both ends of a wire are host NICs.
Standard distance-vector protocol issues.

Not really going anywhere with this or trying to make any points...
just thinking out loud.

Regards,
Bill Herrin

-- 
William D. Herrin ................ [email-masked]  [email-masked]
3005 Crane Dr. ...................... Web: <http://bill.herrin.us/>
Falls Church, VA 22042-3004