|
Description
|
DLPI does not specify under what circumstances, if any, a transmitted packet should
be seen as input by the same or other users of the provider. The de facto behavior
of most (perhaps all) existing drivers is that sent packets are seen by any/all
users that are in promiscuous mode, and no others. There are three problems with
this:
(1) If a promiscuous user sends a packet, the packet is seen as input by that
user. This is probably never useful and causes (at least) performance loss and
code complexity as the useless packet must be identified and discarded.
(2) If a sent packet is addressed to the local machine (or is multicast), it
should be delivered to any other user bound to the appropriate SAP or in
DL_PROMISC_SAP mode, but it is not.
(3) If a sent packet is addressed to the local machine's unicast address, it is
transmitted on the physical medium, though it need not be.
Points (1) and (2) are unspecified by DLPI but derive from common sense and from
the idea that multiple users of a provider should get the same or very similar
behavior to what they would get if they each had a separate physical interface to
the same link. Point (3) is not so clear because it actually seems to contradict
the DLPI spec but it makes sense from the point of view of sending the packet
only where it should be recieved and keeping unicast intra-machine traffic inside
the machine.
What is suggested here is to have each DLS user see packets sent by other users
depending on the same criteria that apply to packets physically received on
the medium.
This is necessary for the Ethernet bridge code to be able to receive a packet on
one segment, transmit it on another, and have the packet delivered to the local
IP stack.
|