Class Node

Node support for multicast is realized in two primary ways: it serves as a focal point for access to the multicast protocols, in the areas of address allocation, control and management, and group membership dynamics; and secondly, it provides primitives to access and control interfaces on links incident on that node. rX []expandaddr, &
[]allocaddr & Class procedures for address management. []expandaddr is now obsoleted. []allocaddr allocates the next available multicast address.

[]start-mcast, &
[]stop-mcast & To start and stop multicast routing at that node.
[]notify-mcast & []notify-mcast signals the mrtObject at that node to recompute multicastroutes following a topology change or unicast route update from a neighbour.

[]getArbiter & returns a handle to mrtObject operating at that node.
[file-handle]dump-routes & to dump the multicast forwarding tables at that node.

[s g iif code]new-group & When a multicast data packet is received, and the multicast classifier cannot find the slot corresponding to that data packet, it invokes []Node nstproc new-group to establish the appropriate entry. The code indicates the reason for not finding the slot. Currently there are two possibilities, cache-miss and wrong-iif. This procedure notifies the arbiter instance to establish the new group.
[a g]join-group & An agent at a node that joins a particular group invokes ``node join-group agent group''. The node signals the mrtObject to join the particular group, and adds agent to its list of agents at that group. It then adds agent to all replicators associated with group.
[a g]leave-group & Node instproc leave-group reverses the process described earlier. It disables the outgoing interfaces to the receiver agents for all the replicators of the group, deletes the receiver agents from the local Agents
list; it then invokes the arbiter instance's []leave-group.

[s g iif oiflist]add-mfc & Node instproc add-mfc adds a multicast forwarding cache entry for a particular source, group, iif. The mechanism is:
[s g oiflist]del-mfc & disables each oif in oiflist from the replicator for s, g.

The list of primitives accessible at the node to control its interfaces are listed below. rX [ifid link]add-iif, &
[link if]add-oif & Invoked during link creation to prep the node about its incoming interface label and outgoing interface object.

[]get-all-oifs & Returns all oifs for this node.
[]get-all-iifs & Returns all iifs for this node.

[ifid]iif2link & Returns the link object labelled with given interface label.
[link]link2iif & Returns the incoming interface label for the given link.

[oif]oif2link & Returns the link object corresponding to the given outgoing interface.
[link]link2oif & Returns the outgoing interface for the link (ns object that is incident to the node).

[src]rpf-nbr & Returns a handle to the neighbour node that is its next hop to the specified src.

[s g]getReps & Returns a handle to the replicator that matches s, g. Either argument can be a wildcard (*).
[s g]getReps-raw & As above, but returns a list of key, handle pairs.
[s g]clearReps & Removes all replicators associated with s, g.

Tom Henderson 2011-11-05