31.2.2.0.4 Class Multicast Classifier

Classifier/Multicast maintains a multicast forwarding cache. There is one multicast classifier per node. The node stores a reference to this classifier in its instance variable multiclassifier
_
. When this classifier receives a packet, it looks at the source, group information in the packet headers, and the interface that the packet arrived from (the incoming interface or iif); does a lookup in the MFC and identifies the slot that should be used to forward that packet. The slot will point to the appropriate replicator.

However, if the classifier does not have an entry for this source, group, or the iif for this entry is different, it will invoke an upcall []new-group for the classifier, with one of two codes to identify the problem:

These upcalls to TCL give it a chance to correct the situation: install an appropriate MFC-entry (for cache-miss) or change the incoming interface for the existing MFC-entry (for wrong-iif). The return value of the upcall determines what classifier will do with the packet. If the return value is ``1'', it will assume that TCL upcall has appropriately modified MFC will try to classify packet (lookup MFC) for the second time. If the return value is ``0'', no further lookups will be done, and the packet will be thus dropped.

[]add-rep creates a slot in the classifier and adds a replicator for source, group, iif to that slot.

Tom Henderson 2011-11-05