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. More...
import "event.idl";
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. |
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.
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.
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.
[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. |
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.
[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. |
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:
[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. |
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.
[in] | listener | a router listener implementation. |
void event.EventNotification.unregisterRouterListener | ( | in RouterListener | listener | ) |
Unregister a router listener interface.
[in] | listener | the router listener implementation that is unregistered. If the listener is not registered, the call is ignored. |