libfeaclient Class Index


Annotated List
Files
Globals
Hierarchy
Index

Overview

The classes in libfeaclient exist to maintain and synchronize interface configuration state between processes. Their design assumes that a single process, the FEA, is responsible for maintaining interface configuration state. The FEA updates the configuration state based on information from forwarding hardware and configuration requests from the router manager.

With libfeaclient the interface configuration information is held within an IfMgrIfTree instance. An IfMgrIfTree instance contains all the information associated with physical interfaces, virtual interfaces, and addresses associated with virtual interfaces. Within the IfMgrIfTree class, physical interfaces are represented by IfMgrIfAtom instances, virtual interfaces by IfMgrVifAtom instances, and addresses by instances of IfMgrIPv4Atom and IfMgrIPv6Atom.

An instance of the IfMgrIfTree is maintained by the FEA and by remote processes. In the FEA the IfMgrIfTree instance is contained with an IfMgrXrlReplicationManager and at the far end within an IfMgrXrlMirror instance. Configuration and forwarding of state occurs through the submission of command objects to the FEA's IfMgrXrlReplicationManager. The command is dispatched on the local IfMgrIfTree instance and if successful forwarded to each remote IfMgrXrlMirror instance.


FEA                                                           Remote Process1

IfMgrCommand ---> IfMgrReplicationManager + - - - - - - - - > IfMgrXrlMirror
                          | ^             |                        | ^
		          V |             |                        V |
                      IfMgrIfTree         |                    IfMgrIfTree
                                          |
                                          |
                                          |                   Remote Process2
                                          |
					  + - - - - - - - - > IfMgrXrlMirror
		                                                   | ^
		                                                   V |
							       IfMgrIfTree

The base class for command objects is IfMgrCommandBase. The majority of commands are configuration commands for the objects contained within an IfMgrIfTree. Configuration commands exist for each attribute of each object type. The interface exposed by IfMgrCommandBase ensures that each command implements an execute() method and a forward() method. The execute() method applies the command to the local IfMgrIfTree and the forward() method forwards the command object as an Xrl to a remote target.

In addition to configuration commands, there are also "hint" commands that pass hints to the remote IfMgrXrlMirror. Example hint commands are IfMgrHintTreeComplete, to hint that the complete IfMgrIfTree configuration has been sent, and IfMgrHintUpdatesMade, to hint that updates have been made. The IfMgrXrlMirror will pass hints on to objects implementing the IfMgrXrlMirrorRouterObserver interface.

IfMgrCommandBase - IfMgrIPv4SetLoopback
IfMgrCommandBase
IfMgrCommandDispatcher
IfMgrCommandFifoQueue
IfMgrCommandIfClusteringQueue
IfMgrCommandQueueBase
IfMgrCommandSinkBase
IfMgrCommandTee
IfMgrHintCommandBase
IfMgrHintObserver
IfMgrHintTreeComplete
IfMgrHintUpdatesMade
IfMgrIPv4Add
IfMgrIPv4Atom
IfMgrIPv4AtomToCommands
IfMgrIPv4CommandBase
IfMgrIPv4Remove
IfMgrIPv4SetBroadcast
IfMgrIPv4SetEnabled
IfMgrIPv4SetEndpoint
IfMgrIPv4SetLoopback
IfMgrIPv4SetMulticastCapable - IfMgrIfSetMtu
IfMgrIPv4SetMulticastCapable
IfMgrIPv4SetPrefix
IfMgrIPv6Add
IfMgrIPv6Atom
IfMgrIPv6AtomToCommands
IfMgrIPv6CommandBase
IfMgrIPv6Remove
IfMgrIPv6SetEnabled
IfMgrIPv6SetEndpoint
IfMgrIPv6SetLoopback
IfMgrIPv6SetMulticastCapable
IfMgrIPv6SetPrefix
IfMgrIfAdd
IfMgrIfAtom
IfMgrIfAtomToCommands
IfMgrIfCommandBase
IfMgrIfRemove
IfMgrIfSetEnabled
IfMgrIfSetMac
IfMgrIfSetMtu
IfMgrIfSetPifIndex - IfMgrXrlReplicator
IfMgrIfSetPifIndex
IfMgrIfTree
IfMgrIfTreeToCommands
IfMgrManagedXrlReplicator
IfMgrNWayCommandTee
IfMgrVifAdd
IfMgrVifAtom
IfMgrVifAtomToCommands
IfMgrVifCommandBase
IfMgrVifRemove
IfMgrVifSetBroadcastCapable
IfMgrVifSetEnabled
IfMgrVifSetLoopbackCapable
IfMgrVifSetMulticastCapable
IfMgrVifSetP2PCapable
IfMgrVifSetPifIndex
IfMgrXrlMirror
IfMgrXrlMirrorRouterObserver
IfMgrXrlReplicationManager
IfMgrXrlReplicator

Generated by: pavlin on possum.icir.org on Thu Nov 6 23:46:59 2003, using kdoc 2.0a54+XORP.