[comp.protocols.appletalk] AppleTalk Phase2 confusion

bediger@isis.cs.du.edu (bruce allen ediger) (02/26/91)

I've noticed a couple of confusing things in connection with AppleTalk
Phase 2.

1. Use of network number 0.
From "Inside AppleTalk", 2nd edition.

pg 4-6:  "The network number 0 is reserved to mean unknown; by default is
          specifies the local network to which the node is connected."

pg 4-21: "The use of network number 0 to indicate unknow introduces some
          complexity for DDP clients. ... The rule to use is 'Zero matches
          anything.'"

pg 5-25: "Remember when comparing network numbers that a destination
network
          number of 0 will always match whatever it is being compared to."

Which is it: the local network, or a wildcard symbol?


2. Hidden assumption in routing algorithm on pg 5-26, Figure 5-7.

It would appear that packets entering the diagram have already been
filtered
on the basis on hardware address.  For IEEE802.3 packets, that means that
only
AppleTalk Phase2 multicast packets (with 9:0:7:nn:nn:nn hardware
addresses) or
packets addressed specifically to the router are allowed to be routed.  If
this
check on hardware address is not performed, a whole lot of duplicate
routing
will get done, since there is no other way to determine whether any given
packet is going from router-to-router, or from node-to-router.

cremer@Apple.COM (Mike Cremer) (03/02/91)

In article <1991Feb25.174948.29698@isis.cs.du.edu> bediger@isis.UUCP
(bruce allen ediger) writes:
> I've noticed a couple of confusing things in connection with AppleTalk
> Phase 2.
> 1. Use of network number 0.
> Which is it: the local network, or a wildcard symbol?

Well, it is both.  The reason for allowing "wildcard" matching is
that this allows nodes on extended network cables with different
"network" addresses to talk to each other as if they were local
(i.e. no routing).  Consider an NBP lookup broadcast to the "local"
cable (network 0x0000), which everyone should accept.  Suppose that the
sender is on network 0x1001, and the cable has the network range
0x1000-100F.  It is likely that the nodes on the cable will be
evenly distributed among network numbers, so even though they share
the same physical cable, they are logically not peers.  If the lookup packet
was sent with the node's "real" network number (0x1001) then the packet
would only be accepted by nodes having the same network number, and none
of the other nodes (even though they should).
If, however, the lookup packet was addressed to network 0x0000, all nodes
on the cable would receive and accept the lookup request.

did any of that make any sense?

> 2. Hidden assumptions in routing algorithm

I don't follow what the question is (why lots of duplicate packets?), so
I will pass it by.

$mike cremer
apple network systems development
usual disclaimers

kerlyn@apple.com (Kerry Lynn) (03/02/91)

In article <1991Feb25.174948.29698@isis.cs.du.edu> bediger@isis.cs.du.edu 
(bruce allen ediger) writes:
> Which is it: the local network, or a wildcard symbol?

Both.  Non-extended nodes use 0 internally to specify their network
address when there are no routers active on their cable, thus they
will accept long-DDP packets addressed to any network and their node
ID (but such packets are not generated by Apple implementations.)
Extended nodes ALWAYS have an internal net number != 0 or 0xFFFF.

The only acceptable use of network number = 0 in a Phase 2 packet is in
a cable-wide broadcast where dest net = 0 and dest node = 0xFF.  The
flowchart that matches the Mac DDPRead implementation can be found in
"AppleTalk Phase 2 Protocol Specification" (APDA #C0144LL/A) and
unambiguously demonstrates the use of net = 0 in extended and
non-extended cases.


> Hidden assumption in routing algorithm

The above mentioned flowchart expands somewhat on the one contained in
"Inside AppleTalk, 2e."  However, it has a hidden assumption that the
routing code (Figure 4-4) discards pkts addressed to net = 0.


> It would appear that packets entering the diagram have already been
> filtered on the basis on hardware address.

Indeed, the algorithm routes packets based on DDP address which implies
that the packet has already passed through the LAP layer and thus has
been "filtered."  A packet travelling through the internet gets a new
link level address for every router it passes through, but its DDP
destination address never changes.