event.EventNotification Interface Reference

import "event.idl";

Inheritance diagram for event.EventNotification:

sae.SAEFeature List of all members.

Detailed Description

The event notification interface of SAE allows integration with external IP address managers for router drivers that do not receive address assignment events directly from the router.


Public Member Functions

boolean ipUp (in string routerName, in InetAddress ipAddress, in long sessionTimeout, in EventAttrSeq attributes) raises (UnknownRouter, IllegalArgument)
 Notify that an IP address is up.
boolean ipDown (in string routerName, in InetAddress ipAddress, in EventAttrSeq attributes) raises (UnknownRouter, IllegalArgument)
 Notify that an IP address is down.
InetAddressSeq ipSynchronize (in string routerName, in EventAttrSeqSeq sessions) raises (UnknownRouter, IllegalArgument)
 Start synchronization of the SAE for one router.
sae::StringSeq getManagedRouterNames ()
 Return a list of routerNames that are currently managed by this SAE.
void registerRouterListener (in RouterListener listener)
 Register a router listener interface.
void unregisterRouterListener (in RouterListener listener)
 Unregister a router listener interface.
string getSaeID ()
 Return SAE identifier of this interface.


Member Function Documentation

sae::StringSeq event.EventNotification.getManagedRouterNames (  ) 

Return a list of routerNames that are currently managed by this SAE.

This SAE will accept at this time EventNotification.ipUp and EventNotification.ipDown calls for the reported routers without throwing UnknownRouter exception.

If SAE does throw an UnknownRouter exception for one the routers returned by a previous call, it is a signal for the client to refresh the list of managed routers.

Returns:
a list of currently managed routerNames.

string event.EventNotification.getSaeID (  ) 

Return SAE identifier of this interface.

SAE will use this identifier when calling a RouterListener.

boolean event.EventNotification.ipDown ( in string  routerName,
in InetAddress  ipAddress,
in EventAttrSeq  attributes 
) raises (UnknownRouter, IllegalArgument)

Notify that an IP address is down.

Parameters:
[in] routerName The name of the router the IP address belonged to
[in] ipAddress The IP address that is down.
[in] attributes only event.EA_INTERFACE_NAME, event.EA_SESSION_ID and event.EA_IF_INDEX are checked. If these values are used, their values have to match the current values associated with the IP address. If the values do not match, the call to ipDown is ignored.
Returns:
true if the SAE state is in sync. If the client supports synchronization, it should call EventNotification.ipSynchronize if SAE returns false.
Exceptions:
UnknownRouter if this SAE does not accept notifications for the specified routerName.
IllegalArgument if the ipAddress can not be parsed.

InetAddressSeq event.EventNotification.ipSynchronize ( in string  routerName,
in EventAttrSeqSeq  sessions 
) raises (UnknownRouter, IllegalArgument)

Start synchronization of the SAE for one router.

The client sends a list of all currently active IP address sessions for the given router name. SAE will return a subset of this list with IP addresses that are not currently known and require synchronization.

If the client uses sessionIDs, interface names of ifIndex to identify sessions, it must send the current set of session IDs, interface names or ifIndex together with the IP address.

Note:
This interface can not be used to synchronize change events. I.e. if the client sends EventNotification.ipUp requests, that modify an existing IP address session, it must buffer and resend those event.
Parameters:
[in] routerName The router that is synchronized
[in] sessions A sequence of sessions that are currently present on the client. Each session is an event.EventAttrSeq that must contain an event.EA_USER_IP_ADDRESS attribute and may contain event.EA_SESSION_ID, event.EA_INTERFACE_NAME and event.EA_IF_INDEX attributes. Any other attribute will be ignored.
Returns:
a sequence of IP addresses for which EventNotification.ipUp must be repeated
Exceptions:
UnknownRouter if this SAE does not accept notifications for the specified routerName.
IllegalArgument if the sessions can not be parsed.

boolean event.EventNotification.ipUp ( in string  routerName,
in InetAddress  ipAddress,
in long  sessionTimeout,
in EventAttrSeq  attributes 
) raises (UnknownRouter, IllegalArgument)

Notify that an IP address is up.

SAE will automatically create a subscriber interface for this IP address with the name "ip#.#.#.#", where "#.#.#.#" is the dotted-decimal encoding of the IP address, unless the interface name is specified in the attributes.

This notification can (and may have to be, if a session timeout is defined) repeated for ip addresses that have already been reported.

If a session for the interface name already exists and either the session ID or ifIndex have changed, SAE assumes that the ipDown notification for the previous session was lost and deletes the previous session automatically.

To guarantee proper state management for IP addresses the client must implement one of the following strategies:

Parameters:
[in] routerName The name of the router the IP address belongs to
[in] ipAddress The IP address that is up.
[in] sessionTimeout number of seconds before the interface is implicitly deleted. If sessionTimeout <= 0, no timeout is started. The client is responsible for repeating ipUp before the session timeout expires as long as the session is active.
[in] attributes Interface attributes available for interface classification.
Returns:
true if the SAE state is in sync. If the client supports synchronization, it should call EventNotification.ipSynchronize if SAE returns false.
Exceptions:
UnknownRouter if this SAE does not accept notifications for the specified routerName.
IllegalArgument if the ipAddress or the attributes can not be parsed.

void event.EventNotification.registerRouterListener ( in RouterListener  listener  ) 

Register a router listener interface.

SAE will notify all registered listeners when a router becomes available or unavailable to receive notifications.

SAE will automatically unregister listeners that are no longer available (i.e. if an invocation of the listener interface raises an OBJECT_NOT_EXIST exception or the number of retries is exceeded). For other failure cases (e.g. communication errors) events are buffered and resent.

Parameters:
[in] listener a router listener implementation.

void event.EventNotification.unregisterRouterListener ( in RouterListener  listener  ) 

Unregister a router listener interface.

Parameters:
[in] listener the router listener implementation that is unregistered. If the listener is not registered, the call is ignored.


The documentation for this interface was generated from the following file:
Generated on Tue May 24 14:55:27 2011 for SAE API by  doxygen 1.4.7