Multicast.mesa
Copyright © 1986 by Xerox Corporation. All rights reserved.
L. Stewart July 11, 1983 2:03 pm
Last Edited by: Swinehart, May 21, 1986 3:29:15 pm PDT
DIRECTORY Pup USING [Host, Net], RPC USING [ Conversation, unencrypted];
This interface provides facilities needed in conjunction with conference-calling in the Etherphone system. Conferences are generated using multicast techniques: each participants in a conference of three or more parties transmits its voice packets to a participant-unique socket addressed to a common, nonexistent host name -- the multicast host. The Etherphone code knows how to ignore its own transmissions and to combine the incoming voice streams of the other participants.
Problem: an Etherphone can only listen for incoming packets addressed to one host value at a time. By "tuning in" to the multicast host, they abandon the ability to hear traffic (such as RPC packets) addressed to them individually.
Solution: a Dorado can listen to packets for any selected subset of hosts. We provide a forwarding service, on the Dorado connected to the Etherphone's network, that will forward specifically-addressed packets to the multicast host -- changing only the encapsulation used to transmit the packet on the Ethernet, but not the Pup host values used by RPC or whatever to interpret the packet once it has arrived at the proper machine. The other hosts tuned into the same multicast host address will receive the packets, too, but they will filter them out in the software.
This service is available through RPC. Strowger.Lark, exported by a machine located on net 173#, is the standard provider of this service.
Multicast: CEDAR DEFINITIONS = {
TurnOnMulticastForNet:
PROC [
shh: RPC.Conversation←RPC.unencrypted, net: Pup.Net] RETURNS [ok: BOOL];
Initialization may be required to prepare the service for multicast forwarding.
TurnOffMulticast:
PROC[shh:
RPC.Conversation←
RPC.unencrypted];
When the service isn't needed, calling this may reduce the network overhead for the host providing the service.
HandleMulticast:
PUBLIC
PROC [
shh: RPC.Conversation←RPC.unencrypted,
net: Pup.Net, realHost, listeningTo: Pup.Host] RETURNS [ok: BOOL];
realHost is the native host address of a multicast participant. listeningTo is the multicast host. Call this before instructing the realHost to listen on the multicast host address. If forwarding is not in effect, it is possible to lose control contact with the realHost machine.
StopHandlingMulticast:
PROC [
shh: RPC.Conversation ← RPC.unencrypted, realHost: Pup.Host];
realHost is returning to standard listening. Call this after instructing the realHost to stop listening on the multicast host address.
}.
Swinehart, May 15, 1986 4:47:08 pm PDT
Cedar 6.1
changes to: DIRECTORY, TurnOnMulticastForNet, HandleMulticast, StopHandlingMulticast