/* ****************************************************************************** * HEADER FILE * * Document no: @(#) $Name: VXWORKS_ITER40_2019102207 $ $RCSfile: ipmip6pm_cli.h,v $ $Revision: 1.12 $ * $Source: /home/interpeak/CVSRoot/ipmip6pm/include/ipmip6pm_cli.h,v $ * $Author: jhorteli $ $Date: 2009-12-02 15:33:30 $ * $State: Exp $ $Locker: $ * * INTERPEAK_COPYRIGHT_STRING * Design and implementation by Joel Hortelius ****************************************************************************** */ #ifndef IPMIP6PM_CLI_H #define IPMIP6PM_CLI_H /* **************************************************************************** * 1 DESCRIPTION **************************************************************************** */ /* **************************************************************************** * 2 CONFIGURATION **************************************************************************** */ /* **************************************************************************** * 3 INCLUDE FILES **************************************************************************** */ #include #ifdef __cplusplus extern "C" { #endif /* **************************************************************************** * 4 DEFINES **************************************************************************** */ /* **************************************************************************** * 5 TYPES **************************************************************************** */ struct Ipmip6_mib_mip6MnBLTable; struct Ipmip6_mib_mip6NodeTrafficEntry; struct Ipmip_attr; struct Ipmip_lladdr; struct Ipmip6_address; struct Ip_in6_addr; struct Ipmip6_inet; /* **************************************************************************** * 6 FUNCTIONS **************************************************************************** */ /******************************************************************************* * * ipmip6pm_cli_connect - ipmip6pm_cli_connect * * Connect to the proxy mobility v6 daemon. * * Parameters: * \is * \i daemon_info * Will be filled in by the function * \ie * * RETURNS: IP_TRUE on success * * ERRNO: * */ IP_PUBLIC Ip_bool ipmip6pm_cli_connect ( Ipmip_cli_daemon_t *daemon_info ); /******************************************************************************* * * ipmip6pm_cli_request_set_nai - ipmip6pm_cli_request_set_nai * * Set a NAI identifier in the request * * Parameters: * \is * \i req * Daemon request structure * \i nai * Network Access Identifier (if NULL this call will do nothing) * \ie * * RETURNS: No return value * * ERRNO: * */ IP_PUBLIC void ipmip6pm_cli_request_set_nai ( Ipmip_cli_daemon_req_t *req, const char *nai ); /******************************************************************************* * * ipmip6pm_cli_request_set_handle - ipmip6pm_cli_request_set_handle * * Set a handle identifier in the request * * Parameters: * \is * \i req * Daemon request structure * \i handle * The handle * \ie * * RETURNS: No return value * * ERRNO: * */ IP_PUBLIC void ipmip6pm_cli_request_set_handle ( Ipmip_cli_daemon_req_t *req, Ip_u32 handle ); /******************************************************************************* * * ipmip6pm_cli_request_set_ifname - ipmip6pm_cli_request_set_ifname * * Set an IFNAME identifier in the request * * Parameters: * \is * \i req * Daemon request structure * \i ifname * Interface name * \ie * * RETURNS: No return value * * ERRNO: * */ IP_PUBLIC void ipmip6pm_cli_request_set_ifname ( Ipmip_cli_daemon_req_t *req, const char *ifname ); /******************************************************************************* * * ipmip6pm_cli_request_set_service - ipmip6pm_cli_request_set_service * * Set a SERVICE configuration in the request * * Parameters: * \is * \i req * Daemon request structure * \i module * Service module * \i value * Configuration value * \ie * * RETURNS: No return value * * ERRNO: * */ IP_PUBLIC void ipmip6pm_cli_request_set_service ( Ipmip_cli_daemon_req_t *req, const char *module, const char *value ); /******************************************************************************* * * ipmip6pm_cli_request_set_link - ipmip6pm_cli_request_set_link * * Set a LINK-SERVICE configuration in the request * * Parameters: * \is * \i req * Daemon request structure * \i module * Link-Service module * \i value * Configuration value * \ie * * RETURNS: No return value * * ERRNO: * */ IP_PUBLIC void ipmip6pm_cli_request_set_link ( Ipmip_cli_daemon_req_t *req, const char *module, const char *value ); /******************************************************************************* * * ipmip6pm_cli_request_set_MAG_configuration - ipmip6pm_cli_request_set_MAG_configuration * * Set the MAG interface configuration that this node should be associated with. * * Parameters: * \is * \i req * Daemon request structure * \i ifname * MAG configuration interface * \ie * * RETURNS: No return value * * ERRNO: * */ IP_PUBLIC void ipmip6pm_cli_request_set_MAG_configuration ( Ipmip_cli_daemon_req_t *req, const char *ifname ); /******************************************************************************* * * ipmip6pm_cli_request_add_prefix - ipmip6pm_cli_request_add_prefix * * Add a prefix to the request * * Parameters: * \is * \i req * Daemon request structure * \i prefix * prefix to add to the request * \ie * * RETURNS: No return value * * ERRNO: * */ IP_PUBLIC void ipmip6pm_cli_request_add_prefix ( Ipmip_cli_daemon_req_t *req, struct Ipmip6_address *prefix ); #ifdef IPMIP_USE_INET /******************************************************************************* * * ipmip6pm_cli_request_add_home_address_inet - ipmip6pm_cli_request_add_home_address_inet * * Add a inet prefix to the request * * Parameters: * \is * \i req * Daemon request structure * \i prefix * prefix to add to the request * \ie * * RETURNS: No return value * * ERRNO: * */ IP_PUBLIC void ipmip6pm_cli_request_add_home_address_inet ( Ipmip_cli_daemon_req_t *req, struct Ipmip6_inet *prefix ); #endif /******************************************************************************* * * ipmip6pm_cli_request_set_link_layer - ipmip6pm_cli_request_set_link_layer * * Set the node's link layer address * * Parameters: * \is * \i req * Daemon request structure * \i lla * Link Layer Address * \i lla_size * The size of the Link Layer Address * \ie * * RETURNS: No return value * * ERRNO: * */ IP_PUBLIC void ipmip6pm_cli_request_set_link_layer ( Ipmip_cli_daemon_req_t *req, void *lla, Ip_size_t lla_size ); /******************************************************************************* * * ipmip6pm_cli_request_set_gre_downlink - ipmip6pm_cli_request_set_gre_downlink * * Set the GRE downlink key * * Parameters: * \is * \i req * Daemon request structure * \i downlink * The downlink key * \ie * * RETURNS: No return value * * ERRNO: * */ IP_PUBLIC void ipmip6pm_cli_request_set_gre_downlink ( Ipmip_cli_daemon_req_t *req, Ip_u32 downlink ); /******************************************************************************* * * ipmip6pm_cli_request_set_transport_mask - ipmip6pm_cli_request_set_transport_mask * * Set the transport mask used by this node * * Parameters: * \is * \i req * Daemon request structure * \i mask * The transport mask * \ie * * RETURNS: No return value * * ERRNO: * */ IP_PUBLIC void ipmip6pm_cli_request_set_transport_mask ( Ipmip_cli_daemon_req_t *req, Ip_u32 mask ); /******************************************************************************* * * ipmip6pm_cli_request_set_tunnel_type - ipmip6pm_cli_request_set_tunnel_type * * Set the initial tunnel type in the node. The transport mask must either not * be specified, or contain appropriate bits for this tunnel type. And the * MAG must be configured to allow the Type. * * Parameters: * \is * \i req * Daemon request structure * \i tunnel_type * The tunnel type * \ie * * RETURNS: No return value * * ERRNO: * */ IP_PUBLIC void ipmip6pm_cli_request_set_tunnel_type ( Ipmip_cli_daemon_req_t *req, Ip_u8 tunnel_type ); /******************************************************************************* * * ipmip6pm_cli_request_set_homeagent - ipmip6pm_cli_request_set_homeagent * * Set the INET6 homeagent the request * * Parameters: * \is * \i req * Daemon request structure * \i homeagent * The home agent * \ie * * RETURNS: No return value * * ERRNO: * */ IP_PUBLIC void ipmip6pm_cli_request_set_homeagent ( Ipmip_cli_daemon_req_t *req, const struct Ip_in6_addr *homeagent ); #ifdef IPMIP_USE_INET /******************************************************************************* * * ipmip6pm_cli_request_set_homeagent_inet - ipmip6pm_cli_request_set_homeagent_inet * * Set the INET homeagent the request * * Parameters: * \is * \i req * Daemon request structure * \i homeagent * The home agent * \ie * * RETURNS: No return value * * ERRNO: * */ IP_PUBLIC void ipmip6pm_cli_request_set_homeagent_inet ( Ipmip_cli_daemon_req_t *req, Ip_u32 homeagent ); #endif /******************************************************************************* * * ipmip6pm_cli_request_set_handoff_indicator - ipmip6pm_cli_request_set_handoff_indicator * * Set the HANDOFF INDICATOR value in the request * * Parameters: * \is * \i req * Daemon request structure * \i handoff_indicator * The handoff indicator value * \ie * * RETURNS: No return value * * ERRNO: * */ IP_PUBLIC void ipmip6pm_cli_request_set_handoff_indicator ( Ipmip_cli_daemon_req_t *req, Ip_u32 handoff_indicator ); /******************************************************************************* * * ipmip6pm_cli_request_set_access_type - ipmip6pm_cli_request_set_access_type * * Set the ACCESS TYPE value in the request * * Parameters: * \is * \i req * Daemon request structure * \i access_type * The access type value * \ie * * RETURNS: No return value * * ERRNO: * */ IP_PUBLIC void ipmip6pm_cli_request_set_access_type ( Ipmip_cli_daemon_req_t *req, Ip_u32 access_type ); /******************************************************************************* * * ipmip6pm_cli_node_get_ifname - ipmip6pm_cli_node_get_ifname * * Return the interface name of the node * * Parameters: * \is * \i node * rta containing the node attributes * \ie * * RETURNS: The interface name or IP_NULL * * ERRNO: * */ IP_PUBLIC const char *ipmip6pm_cli_node_get_ifname ( struct Ipmip_attr *node ); /******************************************************************************* * * ipmip6pm_cli_node_get_tunnel_ifname - ipmip6pm_cli_node_get_tunnel_ifname * * Return the tunnel interface name of the node * * Parameters: * \is * \i node * rta containing the node attributes * \ie * * RETURNS: The tunnel interface name or IP_NULL * * ERRNO: * */ IP_PUBLIC const char *ipmip6pm_cli_node_get_tunnel_ifname ( struct Ipmip_attr *node ); /******************************************************************************* * * ipmip6pm_cli_node_get_tunnel_type - ipmip6pm_cli_node_get_tunnel_type * * Return the current Tunneling Type * * Parameters: * \is * \i node * rta containing the node attributes * \ie * * RETURNS: An IPMIP Tunneling Type descriptor * * ERRNO: * */ IP_PUBLIC Ip_u8 ipmip6pm_cli_node_get_tunnel_type ( struct Ipmip_attr *node ); /******************************************************************************* * * ipmip6pm_cli_node_get_transport_mask - ipmip6pm_cli_node_get_transport_mask * * Return the current Transport Mask * * Parameters: * \is * \i node * rta containing the node attributes * \ie * * RETURNS: An IPMIP Transport Mask * * ERRNO: * */ IP_PUBLIC Ip_u32 ipmip6pm_cli_node_get_transport_mask ( struct Ipmip_attr *node ); /******************************************************************************* * * ipmip6pm_cli_node_get_gre_keys - ipmip6pm_cli_node_get_gre_keys * * Return the current GRE settings * * Parameters: * \is * \i node * rta containing the node attributes * \ie * * RETURNS: The GRE attribute if found * * ERRNO: * */ IP_PUBLIC struct Ipmip_attr *ipmip6pm_cli_node_get_gre_keys ( struct Ipmip_attr *node ); /******************************************************************************* * * ipmip6pm_cli_node_get_home_agent - ipmip6pm_cli_node_get_home_agent * * Return the v6 Home Agent name of the node * * Parameters: * \is * \i node * rta containing the node attributes * \ie * * RETURNS: The v6 Home Agent * * ERRNO: * */ IP_PUBLIC struct Ip_in6_addr *ipmip6pm_cli_node_get_home_agent ( struct Ipmip_attr *node ); #ifdef IPMIP_USE_INET /******************************************************************************* * * ipmip6pm_cli_node_get_home_agent_inet - ipmip6pm_cli_node_get_home_agent_inet * * Return the v4 Home Agent name of the node * * Parameters: * \is * \i node * rta containing the node attributes * \ie * * RETURNS: The v4 Home Agent or 0. * * ERRNO: * */ IP_PUBLIC Ip_u32 ipmip6pm_cli_node_get_home_agent_inet ( struct Ipmip_attr *node ); #endif /******************************************************************************* * * ipmip6pm_cli_node_get_nai - ipmip6pm_cli_node_get_nai * * Return the NAI of the node * * Parameters: * \is * \i node * rta containing the node attributes * \ie * * RETURNS: The NAI or IP_NULL * * ERRNO: * */ IP_PUBLIC const char *ipmip6pm_cli_node_get_nai ( struct Ipmip_attr *node ); /******************************************************************************* * * ipmip6pm_cli_node_get_mip6MnBLTable - ipmip6pm_cli_node_get_mip6MnBLTable * * Return the mip6MnBLTable of the node * * Parameters: * \is * \i node * rta containing the node attributes * \ie * * RETURNS: The mip6MnBLTable or IP_NULL * * ERRNO: * */ IP_PUBLIC struct Ipmip6_mib_mip6MnBLTable *ipmip6pm_cli_node_get_mip6MnBLTable ( struct Ipmip_attr *node ); /******************************************************************************* * * ipmip6pm_cli_node_get_mip6NodeTrafficEntry - ipmip6pm_cli_node_get_mip6NodeTrafficEntry * * Return the mip6NodeTrafficEntry of the node * * Parameters: * \is * \i node * rta containing the node attributes * \ie * * RETURNS: The mip6NodeTrafficEntry or IP_NULL * * ERRNO: * */ IP_PUBLIC struct Ipmip6_mib_mip6NodeTrafficEntry *ipmip6pm_cli_node_get_mip6NodeTrafficEntry ( struct Ipmip_attr *node ); /******************************************************************************* * * ipmip6pm_cli_node_get_iflla - ipmip6pm_cli_node_get_iflla * * Return the interface link layer address of the node * * Parameters: * \is * \i node * rta containing the node attributes * \ie * * RETURNS: The link layer address of the node or IP_NULL * * ERRNO: * */ IP_PUBLIC struct Ipmip_lladdr *ipmip6pm_cli_node_get_iflla ( struct Ipmip_attr *node ); /******************************************************************************* * * ipmip6pm_cli_node_get_MAG_iflla - ipmip6pm_cli_node_get_MAG_iflla * * Return the interface link layer address of the MAG * * Parameters: * \is * \i node * rta containing the node attributes * \ie * * RETURNS: The link layer address of the MAG or IP_NULL * * ERRNO: * */ IP_PUBLIC struct Ipmip_lladdr *ipmip6pm_cli_node_get_MAG_iflla ( struct Ipmip_attr *node ); /******************************************************************************* * * ipmip6pm_cli_node_get_MAG_link_local - ipmip6pm_cli_node_get_MAG_link_local * * Return the interface link local address of the MAG * * Parameters: * \is * \i node * rta containing the node attributes * \ie * * RETURNS: The link local address of the MAG or IP_NULL * * ERRNO: * */ IP_PUBLIC struct Ipmip6_address *ipmip6pm_cli_node_get_MAG_link_local ( struct Ipmip_attr *node ); /******************************************************************************* * * ipmip6pm_cli_node_get_home_prefix_list - ipmip6pm_cli_node_get_home_prefix_list * * Returns an array of home prefixes. * * Parameters: * \is * \i node * rta containing the node attributes * \i sz * [OUT] number of elements in the array * \ie * * RETURNS: The array of prefixes * * ERRNO: * */ IP_PUBLIC struct Ipmip6_address *ipmip6pm_cli_node_get_home_prefix_list ( struct Ipmip_attr *node, Ip_u32 *sz ); #ifdef IPMIP_USE_INET /******************************************************************************* * * ipmip6pm_cli_node_get_home_address_inet - ipmip6pm_cli_node_get_home_address_inet * * Returns the INET home address * * Parameters: * \is * \i node * rta containing the node attributes * \ie * * RETURNS: The INET home address * * ERRNO: * */ IP_PUBLIC struct Ipmip6_inet *ipmip6pm_cli_node_get_home_address_inet ( struct Ipmip_attr *node ); #endif /******************************************************************************* * * ipmip6pm_cli_node_get_created - ipmip6pm_cli_node_get_created * * Returns the time when the node was created * * Parameters: * \is * \i node * rta containing the node attributes * \ie * * RETURNS: The creation time or zero if not found * * ERRNO: * */ IP_PUBLIC Ip_time_t ipmip6pm_cli_node_get_created ( struct Ipmip_attr *node ); /******************************************************************************* * * ipmip6pm_cli_node_get_access_type - ipmip6pm_cli_node_get_access_type * * Returns the access type of the node * * Parameters: * \is * \i node * rta containing the node attributes * \ie * * RETURNS: The access type or zero if not found * * ERRNO: * */ IP_PUBLIC Ip_u32 ipmip6pm_cli_node_get_access_type ( struct Ipmip_attr *node ); /******************************************************************************* * * ipmip6pm_cli_node_get_handoff_indicator - ipmip6pm_cli_node_get_handoff_indicator * * Returns the initial handoff indicator of the node * * Parameters: * \is * \i node * rta containing the node attributes * \ie * * RETURNS: The initial handoff indicator or zero if not found * * ERRNO: * */ IP_PUBLIC Ip_u32 ipmip6pm_cli_node_get_handoff_indicator ( struct Ipmip_attr *node ); /******************************************************************************* * * ipmip6pm_cli_node_get_status - ipmip6pm_cli_node_get_status * * Returns the status of the node * * Parameters: * \is * \i node * rta containing the node attributes * \ie * * RETURNS: The status or zero if not found * * ERRNO: * */ IP_PUBLIC Ip_u32 ipmip6pm_cli_node_get_status ( struct Ipmip_attr *node ); /******************************************************************************* * * ipmip6pm_cli_node_get_handle - ipmip6pm_cli_node_get_handle * * Returns the handle of the node * * Parameters: * \is * \i node * rta containing the node attributes * \ie * * RETURNS: The handle or zero if not found * * ERRNO: * */ IP_PUBLIC Ip_u32 ipmip6pm_cli_node_get_handle ( struct Ipmip_attr *node ); /******************************************************************************* * * ipmip6pm_cli_node_list - ipmip6pm_cli_node_list * * List all nodes matching the specified search criteries * * Parameters: * \is * \i dameon * Connection to the IPMIP6PM daemon * \i req * Request to use. * \i nai * NAI to look for, or IP_NULL * \i ifname * Interface name to look for, or IP_NULL * \ie * * RETURNS: IPCOM_SUCCESS if the request was successful * * ERRNO: * */ IP_PUBLIC int ipmip6pm_cli_node_list ( Ipmip_cli_daemon_t *daemon, Ipmip_cli_daemon_req_t *req, const char *nai, const char *ifname ); /******************************************************************************* * * ipmip6pm_cli_service_list - ipmip6pm_cli_service_list * * List all services currently registered in the daemon * * Parameters: * \is * \i dameon * Connection to the IPMIP6PM daemon * \i req * Request to use. * \ie * * RETURNS: IPCOM_SUCCESS if the request was successful * * ERRNO: * */ IP_PUBLIC int ipmip6pm_cli_service_list ( Ipmip_cli_daemon_t *daemon, Ipmip_cli_daemon_req_t *req ); /******************************************************************************* * * ipmip6pm_cli_link_list - ipmip6pm_cli_link_list * * List all link-services currently registered in the daemon * * Parameters: * \is * \i dameon * Connection to the IPMIP6PM daemon * \i req * Request to use. * \ie * * RETURNS: IPCOM_SUCCESS if the request was successful * * ERRNO: * */ IP_PUBLIC int ipmip6pm_cli_link_list ( Ipmip_cli_daemon_t *daemon, Ipmip_cli_daemon_req_t *req ); /******************************************************************************* * * ipmip6pm_cli_node_get - ipmip6pm_cli_node_get * * Retrieve information on a specific node * * Parameters: * \is * \i dameon * Connection to the IPMIP6PM daemon * \i req * Request to use. * \i handle * Handle * \ie * * RETURNS: The RTA containing the node's attributes if found, or IP_NULL. * * ERRNO: * */ IP_PUBLIC struct Ipmip_attr *ipmip6pm_cli_node_get ( Ipmip_cli_daemon_t *daemon, Ipmip_cli_daemon_req_t *req, Ip_u32 handle ); /******************************************************************************* * * ipmip6pm_cli_node_delete - ipmip6pm_cli_node_delete * * Unconditionally delete a particular node, without issuing any * notification to the home agent. * * Parameters: * \is * \i dameon * Connection to the IPMIP6PM daemon * \i req * Request to use. * \i handle * Handle * \ie * * RETURNS: No return value * * ERRNO: * */ IP_PUBLIC void ipmip6pm_cli_node_delete ( Ipmip_cli_daemon_t *daemon, Ip_u32 handle ); /******************************************************************************* * * ipmip6pm_cli_handle_next - ipmip6pm_cli_handle_next * * Return the next handle * * Parameters: * \is * \i iter * Iterator * \ie * * RETURNS: The next handle or 0 * * ERRNO: * */ IP_PUBLIC Ip_u32 ipmip6pm_cli_handle_next ( Ipmip_attr_iter_t *iter ); /******************************************************************************* * * ipmip6pm_cli_handle_get - ipmip6pm_cli_handle_get * * Return the handle * * Parameters: * \is * \i req * Request * \ie * * RETURNS: The handle or 0 * * ERRNO: * */ IP_PUBLIC Ip_u32 ipmip6pm_cli_handle_get ( Ipmip_cli_daemon_req_t *req ); /******************************************************************************* * * ipmip6pm_cli_service_next - ipmip6pm_cli_service_next * * Return the next service * * Parameters: * \is * \i iter * Iterator * \i name * Name of the service * \i value * Value of the service * \ie * * RETURNS: IP_TRUE on success * * ERRNO: * */ IP_PUBLIC Ip_bool ipmip6pm_cli_service_next ( Ipmip_attr_iter_t *iter, char **name, char **value ); /******************************************************************************* * * ipmip6pm_cli_link_next - ipmip6pm_cli_link_next * * Return the next link-service * * Parameters: * \is * \i iter * Iterator * \i name * Name of the service * \i value * Value of the service * \ie * * RETURNS: IP_TRUE on success * * ERRNO: * */ IP_PUBLIC Ip_bool ipmip6pm_cli_link_next ( Ipmip_attr_iter_t *iter, char **name, char **value ); /******************************************************************************* * * ipmip6pm_cli_node_deregister - ipmip6pm_cli_node_deregister * * Deregister a particular node from the home agent. If the 'ack' parameter * is set to IP_TRUE, the proxy mip agent will wait for an acknowledgement or * a timeout from the home agent. If set to false, a single deregistration * message will be sent and then the node immediately deleted. * * Parameters: * \is * \i dameon * Connection to the IPMIP6PM daemon * \i req * Request to use. * \i handle * \i ack * If TRUE, wait for an acknowledgement or timeout from the home agent. * \ie * * RETURNS: No return value * * ERRNO: * */ IP_PUBLIC void ipmip6pm_cli_node_deregister ( Ipmip_cli_daemon_t *daemon, Ip_u32 handle, Ip_bool ack ); /******************************************************************************* * * ipmip6pm_cli_handoff_request_init - ipmip6pm_cli_handoff_request_init * * Create the embryo to a handoff request * * Parameters: * \is * \i req * Request to use. * \i nai * NAI to look for. MUST be specified or this function will fail. * \i ifname * Interface name to look for. MUST be specified or this function will fail. * \ie * * RETURNS: No return value * * ERRNO: * */ IP_PUBLIC void ipmip6pm_cli_handoff_request_init ( Ipmip_cli_daemon_req_t *req, const char *nai, const char *ifname ); /******************************************************************************* * * ipmip6pm_cli_multicast_status - ipmip6pm_cli_multicast_status * * Enable or disable multicast status messages * * Parameters: * \is * \i daemon * Handle to daemon instance * \i enable * IP_TRUE to listen, IP_FALSE to stop listen. * \ie * * RETURNS: No return value * * ERRNO: * */ IP_PUBLIC void ipmip6pm_cli_multicast_status ( Ipmip_cli_daemon_t *daemon, Ip_bool enable ); /******************************************************************************* * * ipmip6pm_cli_node_wait_status - ipmip6pm_cli_node_wait_status * * Wait for a specific status to be reported by the handle. * * Parameters: * \is * \i daemon * Daemon structure * \i handle * The node's handle * \i status * Status we're waiting for * \i tv * Time value to wait * \ie * * RETURNS: IP_TRUE on success, IP_FALSE on timeout or terminal state. * * ERRNO: * */ IP_PUBLIC Ip_bool ipmip6pm_cli_node_wait_status ( Ipmip_cli_daemon_t *daemon, Ip_u32 handle, Ip_u32 status, struct Ip_timeval *tv ); /******************************************************************************* * * ipmip6pm_cli_node_retrieve_status - ipmip6pm_cli_node_retrieve_status * * Get current status * * Parameters: * \is * \i daemon * Daemon structure * \i handle * The node's handle * \ie * * RETURNS: The status * * ERRNO: * */ IP_PUBLIC Ip_u32 ipmip6pm_cli_node_retrieve_status ( Ipmip_cli_daemon_t *daemon, Ip_u32 handle ); /******************************************************************************* * * ipmip6pm_cli_lma_list - ipmip6pm_cli_lma_list * * List all LMAs in the system * * Parameters: * \is * \i dameon * Connection to the IPMIP6PM daemon * \i req * Request to use. * \ie * * RETURNS: IPCOM_SUCCESS on success * * ERRNO: * */ IP_PUBLIC int ipmip6pm_cli_lma_list ( Ipmip_cli_daemon_t *daemon, Ipmip_cli_daemon_req_t *req ); /******************************************************************************* * * ipmip6pm_cli_lma_next - ipmip6pm_cli_lma_next * * Return the next LMA attribute block * * Parameters: * \is * \i iter * Iterator * \ie * * RETURNS: The next LMA attribute block or IP_NULL * * ERRNO: * */ IP_PUBLIC struct Ipmip_attr* ipmip6pm_cli_lma_next ( Ipmip_attr_iter_t *iter ); /******************************************************************************* * * ipmip6pm_cli_lma_get_addr_v6 - ipmip6pm_cli_lma_get_addr_v6 * * Return the v6 address of the LMA * * Parameters: * \is * \i node * rta containing the lma attributes * \ie * * RETURNS: The v6 LMA address * * ERRNO: * */ IP_PUBLIC struct Ip_in6_addr *ipmip6pm_cli_lma_get_addr_v6 ( struct Ipmip_attr *lma ); #ifdef IPMIP_USE_INET /******************************************************************************* * * ipmip6pm_cli_lma_get_addr_v4 - ipmip6pm_cli_lma_get_addr_v4 * * Return the v4 address of the LMA * * Parameters: * \is * \i node * rta containing the LMA attributes * \ie * * RETURNS: The v4 LMA address or 0. * * ERRNO: * */ IP_PUBLIC Ip_u32 ipmip6pm_cli_lma_get_addr_v4 ( struct Ipmip_attr *lma ); #endif /******************************************************************************* * * ipmip6pm_cli_lma_get_ifname - ipmip6pm_cli_lma_get_ifname * * Return the interface name of the LMA * * Parameters: * \is * \i node * rta containing the LMA attributes * \ie * * RETURNS: The interface name or IP_NULL * * ERRNO: * */ IP_PUBLIC const char *ipmip6pm_cli_lma_get_ifname ( struct Ipmip_attr *node ); /******************************************************************************* * * ipmip6pm_cli_request_set_revoke_reason - ipmip6pm_cli_request_set_revoke_reason * * Set a revocation reason in the request * * Parameters: * \is * \i req * Daemon request structure * \i reason * The revocation reason * \ie * * RETURNS: No return value * * ERRNO: * */ IP_PUBLIC void ipmip6pm_cli_request_set_revoke_reason ( Ipmip_cli_daemon_req_t *req, Ip_u8 reason ); /******************************************************************************* * * ipmip6pm_cli_node_revoke - ipmip6pm_cli_node_revoke * * Revoke a particular binding * * Parameters: * \is * \i dameon * Connection to the IPMIP6PM daemon * \i req * Request to use. * \i handle * Handle * \i reason * Reason for the revokation * \ie * * RETURNS: No return value * * ERRNO: * */ IP_PUBLIC void ipmip6pm_cli_node_revoke ( Ipmip_cli_daemon_t *daemon, Ip_u32 handle, Ip_u32 reason ); #ifdef IPMIP_USE_INET /******************************************************************************* * * ipmip6pm_cli_node_revoke_inet - ipmip6pm_cli_node_revoke_inet * * Revoke the INET part of a particular binding * * Parameters: * \is * \i dameon * Connection to the IPMIP6PM daemon * \i req * Request to use. * \i handle * Handle * \i reason * Reason for the revokation * \ie * * RETURNS: No return value * * ERRNO: * */ IP_PUBLIC void ipmip6pm_cli_node_revoke_inet ( Ipmip_cli_daemon_t *daemon, Ip_u32 handle, Ip_u32 reason ); #endif /******************************************************************************* * * ipmip6pm_cli_lma_revoke - ipmip6pm_cli_lma_revoke * * Revoke a particular LMA * * Parameters: * \is * \i dameon * Connection to the IPMIP6PM daemon * \i ifname * Interface of this LMA * \i mag * LMA v6 address * \i reason * Reason for the revokation * \ie * * RETURNS: No return value * * ERRNO: * */ IP_PUBLIC void ipmip6pm_cli_lma_revoke ( Ipmip_cli_daemon_t *daemon, const char *ifname, const struct Ip_in6_addr *lma, Ip_u8 reason ); #ifdef __cplusplus } #endif #endif /* **************************************************************************** * END OF FILE **************************************************************************** */