Source: ../../xrl/interfaces/ospfv2_xif.hh
|
|
|
|
/*
* Copyright (c) 2001-2009 XORP, Inc.
* See the XORP LICENSE.lgpl file for licensing, conditions, and warranties
* on use.
*
* DO NOT EDIT THIS FILE - IT IS PROGRAMMATICALLY GENERATED
*
* Generated by 'clnt-gen'.
*
* $XORP: xorp/xrl/interfaces/ospfv2_xif.hh,v 1.36 2009/01/05 18:31:13 jtc Exp $
*/
#ifndef __XRL_INTERFACES_OSPFV2_XIF_HH__
#define __XRL_INTERFACES_OSPFV2_XIF_HH__
#undef XORP_LIBRARY_NAME
#define XORP_LIBRARY_NAME "XifOspfv2"
#include "libxorp/xlog.h"
#include "libxorp/callback.hh"
#include "libxipc/xrl.hh"
#include "libxipc/xrl_error.hh"
#include "libxipc/xrl_sender.hh"
class XrlOspfv2V0p1Client {
public:
XrlOspfv2V0p1Client(XrlSender* s) : _sender(s) {}
virtual ~XrlOspfv2V0p1Client() {}
typedef XorpCallback1<void, const XrlError&>::RefPtr SetRouterIdCB;
/**
* Send Xrl intended to:
*
* Set router id
*
* @param dst_xrl_target_name the Xrl target name of the destination.
*/
bool send_set_router_id(
const char* dst_xrl_target_name,
const IPv4& id,
const SetRouterIdCB& cb
);
typedef XorpCallback1<void, const XrlError&>::RefPtr SetRfc1583CompatibilityCB;
/**
* Send Xrl intended to:
*
* Set RFC 1583 compatibility.
*
* @param dst_xrl_target_name the Xrl target name of the destination.
*/
bool send_set_rfc1583_compatibility(
const char* dst_xrl_target_name,
const bool& compatibility,
const SetRfc1583CompatibilityCB& cb
);
typedef XorpCallback1<void, const XrlError&>::RefPtr SetIpRouterAlertCB;
/**
* Send Xrl intended to:
*
* Set the router alert in the IP options.
*
* @param dst_xrl_target_name the Xrl target name of the destination.
*/
bool send_set_ip_router_alert(
const char* dst_xrl_target_name,
const bool& ip_router_alert,
const SetIpRouterAlertCB& cb
);
typedef XorpCallback1<void, const XrlError&>::RefPtr CreateAreaRouterCB;
/**
* Send Xrl intended to:
*
* Create an area.
*
* @param dst_xrl_target_name the Xrl target name of the destination.
*
* @param area id of the area
*
* @param type of area "border", "stub", "nssa"
*/
bool send_create_area_router(
const char* dst_xrl_target_name,
const IPv4& area,
const string& type,
const CreateAreaRouterCB& cb
);
typedef XorpCallback1<void, const XrlError&>::RefPtr ChangeAreaRouterTypeCB;
/**
* Send Xrl intended to:
*
* Change area type.
*
* @param dst_xrl_target_name the Xrl target name of the destination.
*
* @param area id of the area
*
* @param type of area "border", "stub", "nssa"
*/
bool send_change_area_router_type(
const char* dst_xrl_target_name,
const IPv4& area,
const string& type,
const ChangeAreaRouterTypeCB& cb
);
typedef XorpCallback1<void, const XrlError&>::RefPtr DestroyAreaRouterCB;
/**
* Send Xrl intended to:
*
* Destroy area.
*
* @param dst_xrl_target_name the Xrl target name of the destination.
*
* @param area id of the area
*/
bool send_destroy_area_router(
const char* dst_xrl_target_name,
const IPv4& area,
const DestroyAreaRouterCB& cb
);
typedef XorpCallback1<void, const XrlError&>::RefPtr CreatePeerCB;
/**
* Send Xrl intended to:
*
* Create a binding to an interface.
*
* @param dst_xrl_target_name the Xrl target name of the destination.
*
* @param ifname the interface that owns vif that has address.
*
* @param vifname virtual interface owning address.
*
* @param addr the address to be added.
*
* @param type of link "p2p", "broadcast", "nbma", "p2m", "vlink"
*/
bool send_create_peer(
const char* dst_xrl_target_name,
const string& ifname,
const string& vifname,
const IPv4& addr,
const string& type,
const IPv4& area,
const CreatePeerCB& cb
);
typedef XorpCallback1<void, const XrlError&>::RefPtr DeletePeerCB;
/**
* Send Xrl intended to:
*
* Delete peer.
*
* @param dst_xrl_target_name the Xrl target name of the destination.
*/
bool send_delete_peer(
const char* dst_xrl_target_name,
const string& ifname,
const string& vifname,
const DeletePeerCB& cb
);
typedef XorpCallback1<void, const XrlError&>::RefPtr SetPeerStateCB;
/**
* Send Xrl intended to:
*
* Set the peer state up or down.
*
* @param dst_xrl_target_name the Xrl target name of the destination.
*/
bool send_set_peer_state(
const char* dst_xrl_target_name,
const string& ifname,
const string& vifname,
const bool& enable,
const SetPeerStateCB& cb
);
typedef XorpCallback1<void, const XrlError&>::RefPtr AddNeighbourCB;
/**
* Send Xrl intended to:
*
* Add a neighbour to the peer.
*
* @param dst_xrl_target_name the Xrl target name of the destination.
*/
bool send_add_neighbour(
const char* dst_xrl_target_name,
const string& ifname,
const string& vifname,
const IPv4& area,
const IPv4& neighbour_address,
const IPv4& neighbour_id,
const AddNeighbourCB& cb
);
typedef XorpCallback1<void, const XrlError&>::RefPtr RemoveNeighbourCB;
/**
* Send Xrl intended to:
*
* Remove a neighbour from the peer.
*
* @param dst_xrl_target_name the Xrl target name of the destination.
*/
bool send_remove_neighbour(
const char* dst_xrl_target_name,
const string& ifname,
const string& vifname,
const IPv4& area,
const IPv4& neighbour_address,
const IPv4& neighbour_id,
const RemoveNeighbourCB& cb
);
typedef XorpCallback1<void, const XrlError&>::RefPtr CreateVirtualLinkCB;
/**
* Send Xrl intended to:
*
* Create a virtual link.
*
* @param dst_xrl_target_name the Xrl target name of the destination.
*
* @param neighbour_id the router ID of the other end of the link.
*
* @param area in which an attempt has been made to configure a virtual
* link it has to be the backbone. Its just being passed in so it can be
* checked by the protocol.
*/
bool send_create_virtual_link(
const char* dst_xrl_target_name,
const IPv4& neighbour_id,
const IPv4& area,
const CreateVirtualLinkCB& cb
);
typedef XorpCallback1<void, const XrlError&>::RefPtr DeleteVirtualLinkCB;
/**
* Send Xrl intended to:
*
* Delete virtual link
*
* @param dst_xrl_target_name the Xrl target name of the destination.
*
* @param neighbour_id the router ID of the other end of the link.
*/
bool send_delete_virtual_link(
const char* dst_xrl_target_name,
const IPv4& neighbour_id,
const DeleteVirtualLinkCB& cb
);
typedef XorpCallback1<void, const XrlError&>::RefPtr TransitAreaVirtualLinkCB;
/**
* Send Xrl intended to:
*
* The area through which the virtual link transits.
*
* @param dst_xrl_target_name the Xrl target name of the destination.
*
* @param neighbour_id the router ID of the other end of the link.
*
* @param transit_area that the virtual link transits.
*/
bool send_transit_area_virtual_link(
const char* dst_xrl_target_name,
const IPv4& neighbour_id,
const IPv4& transit_area,
const TransitAreaVirtualLinkCB& cb
);
typedef XorpCallback1<void, const XrlError&>::RefPtr SetInterfaceCostCB;
/**
* Send Xrl intended to:
*
* The edge cost of this interface.
*
* @param dst_xrl_target_name the Xrl target name of the destination.
*/
bool send_set_interface_cost(
const char* dst_xrl_target_name,
const string& ifname,
const string& vifname,
const IPv4& area,
const uint32_t& cost,
const SetInterfaceCostCB& cb
);
typedef XorpCallback1<void, const XrlError&>::RefPtr SetRetransmitIntervalCB;
/**
* Send Xrl intended to:
*
* RxmtInterval The number of seconds between LSA retransmissions, for
* adjacencies belonging to this interface. Also used when retransmitting
* Database Description and Link State Request Packets. This should be
* well over the expected round-trip delay between any two routers on the
* attached network. The setting of this value should be conservative or
* needless retransmissions will result. Sample value for a local area
* network: 5 seconds.
*
* @param dst_xrl_target_name the Xrl target name of the destination.
*/
bool send_set_retransmit_interval(
const char* dst_xrl_target_name,
const string& ifname,
const string& vifname,
const IPv4& area,
const uint32_t& interval,
const SetRetransmitIntervalCB& cb
);
typedef XorpCallback1<void, const XrlError&>::RefPtr SetInftransdelayCB;
/**
* Send Xrl intended to:
*
* The estimated number of seconds it takes to transmit a Link State
* Update Packet over this interface. LSAs contained in the Link State
* Update packet will have their age incremented by this amount before
* transmission. This value should take into account transmission and
* propagation delays; it must be greater than zero.
*
* @param dst_xrl_target_name the Xrl target name of the destination.
*/
bool send_set_inftransdelay(
const char* dst_xrl_target_name,
const string& ifname,
const string& vifname,
const IPv4& area,
const uint32_t& delay,
const SetInftransdelayCB& cb
);
typedef XorpCallback1<void, const XrlError&>::RefPtr SetRouterPriorityCB;
/**
* Send Xrl intended to:
*
* Used in the designated router election.
*
* @param dst_xrl_target_name the Xrl target name of the destination.
*/
bool send_set_router_priority(
const char* dst_xrl_target_name,
const string& ifname,
const string& vifname,
const IPv4& area,
const uint32_t& priority,
const SetRouterPriorityCB& cb
);
typedef XorpCallback1<void, const XrlError&>::RefPtr SetHelloIntervalCB;
/**
* Send Xrl intended to:
*
* The interval between hello messages.
*
* @param dst_xrl_target_name the Xrl target name of the destination.
*/
bool send_set_hello_interval(
const char* dst_xrl_target_name,
const string& ifname,
const string& vifname,
const IPv4& area,
const uint32_t& interval,
const SetHelloIntervalCB& cb
);
typedef XorpCallback1<void, const XrlError&>::RefPtr SetRouterDeadIntervalCB;
/**
* Send Xrl intended to:
*
* The period to wait before considering a router dead.
*
* @param dst_xrl_target_name the Xrl target name of the destination.
*/
bool send_set_router_dead_interval(
const char* dst_xrl_target_name,
const string& ifname,
const string& vifname,
const IPv4& area,
const uint32_t& interval,
const SetRouterDeadIntervalCB& cb
);
typedef XorpCallback1<void, const XrlError&>::RefPtr SetSimpleAuthenticationKeyCB;
/**
* Send Xrl intended to:
*
* Set simple password authentication key.
*
* @param dst_xrl_target_name the Xrl target name of the destination.
*
* @param ifname the interface name.
*
* @param vifname the vif name.
*
* @param area the area ID.
*
* @param password the authentication password.
*/
bool send_set_simple_authentication_key(
const char* dst_xrl_target_name,
const string& ifname,
const string& vifname,
const IPv4& area,
const string& password,
const SetSimpleAuthenticationKeyCB& cb
);
typedef XorpCallback1<void, const XrlError&>::RefPtr DeleteSimpleAuthenticationKeyCB;
/**
* Send Xrl intended to:
*
* Delete simple password authentication key.
*
* @param dst_xrl_target_name the Xrl target name of the destination.
*
* @param ifname the interface name.
*
* @param vifname the vif name.
*
* @param area the area ID.
*/
bool send_delete_simple_authentication_key(
const char* dst_xrl_target_name,
const string& ifname,
const string& vifname,
const IPv4& area,
const DeleteSimpleAuthenticationKeyCB& cb
);
typedef XorpCallback1<void, const XrlError&>::RefPtr SetMd5AuthenticationKeyCB;
/**
* Send Xrl intended to:
*
* Set MD5 authentication key.
*
* @param dst_xrl_target_name the Xrl target name of the destination.
*
* @param ifname the interface name.
*
* @param vifname the vif name.
*
* @param area the area ID.
*
* @param key_id the key ID (must be an integer in the interval [0, 255]).
*
* @param password the authentication password.
*
* @param start_time the authentication start time (YYYY-MM-DD.HH:MM).
*
* @param end_time the authentication end time (YYYY-MM-DD.HH:MM).
*
* @param max_time_drift the maximum time drift (in seconds) among all
* routers. Allowed values are [0--65534] seconds or 65535 for unlimited
* time drift.
*/
bool send_set_md5_authentication_key(
const char* dst_xrl_target_name,
const string& ifname,
const string& vifname,
const IPv4& area,
const uint32_t& key_id,
const string& password,
const string& start_time,
const string& end_time,
const uint32_t& max_time_drift,
const SetMd5AuthenticationKeyCB& cb
);
typedef XorpCallback1<void, const XrlError&>::RefPtr DeleteMd5AuthenticationKeyCB;
/**
* Send Xrl intended to:
*
* Delete MD5 authentication key.
*
* @param dst_xrl_target_name the Xrl target name of the destination.
*
* @param ifname the interface name.
*
* @param vifname the vif name.
*
* @param area the area ID.
*
* @param key_id the key ID (must be an integer in the interval [0, 255]).
*/
bool send_delete_md5_authentication_key(
const char* dst_xrl_target_name,
const string& ifname,
const string& vifname,
const IPv4& area,
const uint32_t& key_id,
const DeleteMd5AuthenticationKeyCB& cb
);
typedef XorpCallback1<void, const XrlError&>::RefPtr SetPassiveCB;
/**
* Send Xrl intended to:
*
* Toggle the passive status of an interface.
*
* @param dst_xrl_target_name the Xrl target name of the destination.
*/
bool send_set_passive(
const char* dst_xrl_target_name,
const string& ifname,
const string& vifname,
const IPv4& area,
const bool& passive,
const bool& host,
const SetPassiveCB& cb
);
typedef XorpCallback1<void, const XrlError&>::RefPtr OriginateDefaultRouteCB;
/**
* Send Xrl intended to:
*
* If this is a "stub" or "nssa" area toggle the sending of a default
* route.
*
* @param dst_xrl_target_name the Xrl target name of the destination.
*/
bool send_originate_default_route(
const char* dst_xrl_target_name,
const IPv4& area,
const bool& enable,
const OriginateDefaultRouteCB& cb
);
typedef XorpCallback1<void, const XrlError&>::RefPtr StubDefaultCostCB;
/**
* Send Xrl intended to:
*
* Set the StubDefaultCost, the default cost sent in a default route in a
* "stub" or "nssa" area.
*
* @param dst_xrl_target_name the Xrl target name of the destination.
*/
bool send_stub_default_cost(
const char* dst_xrl_target_name,
const IPv4& area,
const uint32_t& cost,
const StubDefaultCostCB& cb
);
typedef XorpCallback1<void, const XrlError&>::RefPtr SummariesCB;
/**
* Send Xrl intended to:
*
* Toggle the sending of summaries into "stub" or "nssa" areas.
*
* @param dst_xrl_target_name the Xrl target name of the destination.
*/
bool send_summaries(
const char* dst_xrl_target_name,
const IPv4& area,
const bool& enable,
const SummariesCB& cb
);
typedef XorpCallback1<void, const XrlError&>::RefPtr AreaRangeAddCB;
/**
* Send Xrl intended to:
*
* Add area range.
*
* @param dst_xrl_target_name the Xrl target name of the destination.
*/
bool send_area_range_add(
const char* dst_xrl_target_name,
const IPv4& area,
const IPv4Net& net,
const bool& advertise,
const AreaRangeAddCB& cb
);
typedef XorpCallback1<void, const XrlError&>::RefPtr AreaRangeDeleteCB;
/**
* Send Xrl intended to:
*
* Delete area range.
*
* @param dst_xrl_target_name the Xrl target name of the destination.
*/
bool send_area_range_delete(
const char* dst_xrl_target_name,
const IPv4& area,
const IPv4Net& net,
const AreaRangeDeleteCB& cb
);
typedef XorpCallback1<void, const XrlError&>::RefPtr AreaRangeChangeStateCB;
/**
* Send Xrl intended to:
*
* Change the advertised state of this area.
*
* @param dst_xrl_target_name the Xrl target name of the destination.
*/
bool send_area_range_change_state(
const char* dst_xrl_target_name,
const IPv4& area,
const IPv4Net& net,
const bool& advertise,
const AreaRangeChangeStateCB& cb
);
typedef XorpCallback1<void, const XrlError&>::RefPtr TraceCB;
/**
* Send Xrl intended to:
*
* Enable/Disable tracing.
*
* @param dst_xrl_target_name the Xrl target name of the destination.
*
* @param tvar trace variable.
*
* @param enable set to true to enable false to disable.
*/
bool send_trace(
const char* dst_xrl_target_name,
const string& tvar,
const bool& enable,
const TraceCB& cb
);
typedef XorpCallback5<void, const XrlError&, const bool*, const bool*, const bool*, const vector<uint8_t>*>::RefPtr GetLsaCB;
/**
* Send Xrl intended to:
*
* Get a single lsa from an area. A stateless mechanism to get LSAs. The
* client of this interface should start from zero and continue to request
* LSAs (incrementing index) until toohigh becomes true.
*
* @param dst_xrl_target_name the Xrl target name of the destination.
*
* @param area database that is being searched.
*
* @param index into database starting from 0.
*/
bool send_get_lsa(
const char* dst_xrl_target_name,
const IPv4& area,
const uint32_t& index,
const GetLsaCB& cb
);
typedef XorpCallback2<void, const XrlError&, const XrlAtomList*>::RefPtr GetAreaListCB;
/**
* Send Xrl intended to:
*
* Get a list of all the configured areas. Return a list of u32 type
* values. Each value is an area ID.
*
* @param dst_xrl_target_name the Xrl target name of the destination.
*/
bool send_get_area_list(
const char* dst_xrl_target_name,
const GetAreaListCB& cb
);
typedef XorpCallback2<void, const XrlError&, const XrlAtomList*>::RefPtr GetNeighbourListCB;
/**
* Send Xrl intended to:
*
* Get the list of neighbours. Return a list of u32 type values. Each
* value is an internal identifier that can be used with the
* get_neighbour_info XRL.
*
* @param dst_xrl_target_name the Xrl target name of the destination.
*/
bool send_get_neighbour_list(
const char* dst_xrl_target_name,
const GetNeighbourListCB& cb
);
typedef XorpCallback13<void, const XrlError&, const string*, const string*, const string*, const IPv4*, const uint32_t*, const uint32_t*, const IPv4*, const uint32_t*, const IPv4*, const IPv4*, const uint32_t*, const uint32_t*>::RefPtr GetNeighbourInfoCB;
/**
* Send Xrl intended to:
*
* Get information on a neighbour.
*
* @param dst_xrl_target_name the Xrl target name of the destination.
*
* @param nid neighbour ID returned by the get_neighbour_list.
*/
bool send_get_neighbour_info(
const char* dst_xrl_target_name,
const uint32_t& nid,
const GetNeighbourInfoCB& cb
);
typedef XorpCallback1<void, const XrlError&>::RefPtr ClearDatabaseCB;
/**
* Send Xrl intended to:
*
* Clear the OSPF database.
*
* @param dst_xrl_target_name the Xrl target name of the destination.
*/
bool send_clear_database(
const char* dst_xrl_target_name,
const ClearDatabaseCB& cb
);
protected:
XrlSender* _sender;
private:
void unmarshall_set_router_id(
const XrlError& e,
XrlArgs* a,
SetRouterIdCB cb
);
void unmarshall_set_rfc1583_compatibility(
const XrlError& e,
XrlArgs* a,
SetRfc1583CompatibilityCB cb
);
void unmarshall_set_ip_router_alert(
const XrlError& e,
XrlArgs* a,
SetIpRouterAlertCB cb
);
void unmarshall_create_area_router(
const XrlError& e,
XrlArgs* a,
CreateAreaRouterCB cb
);
void unmarshall_change_area_router_type(
const XrlError& e,
XrlArgs* a,
ChangeAreaRouterTypeCB cb
);
void unmarshall_destroy_area_router(
const XrlError& e,
XrlArgs* a,
DestroyAreaRouterCB cb
);
void unmarshall_create_peer(
const XrlError& e,
XrlArgs* a,
CreatePeerCB cb
);
void unmarshall_delete_peer(
const XrlError& e,
XrlArgs* a,
DeletePeerCB cb
);
void unmarshall_set_peer_state(
const XrlError& e,
XrlArgs* a,
SetPeerStateCB cb
);
void unmarshall_add_neighbour(
const XrlError& e,
XrlArgs* a,
AddNeighbourCB cb
);
void unmarshall_remove_neighbour(
const XrlError& e,
XrlArgs* a,
RemoveNeighbourCB cb
);
void unmarshall_create_virtual_link(
const XrlError& e,
XrlArgs* a,
CreateVirtualLinkCB cb
);
void unmarshall_delete_virtual_link(
const XrlError& e,
XrlArgs* a,
DeleteVirtualLinkCB cb
);
void unmarshall_transit_area_virtual_link(
const XrlError& e,
XrlArgs* a,
TransitAreaVirtualLinkCB cb
);
void unmarshall_set_interface_cost(
const XrlError& e,
XrlArgs* a,
SetInterfaceCostCB cb
);
void unmarshall_set_retransmit_interval(
const XrlError& e,
XrlArgs* a,
SetRetransmitIntervalCB cb
);
void unmarshall_set_inftransdelay(
const XrlError& e,
XrlArgs* a,
SetInftransdelayCB cb
);
void unmarshall_set_router_priority(
const XrlError& e,
XrlArgs* a,
SetRouterPriorityCB cb
);
void unmarshall_set_hello_interval(
const XrlError& e,
XrlArgs* a,
SetHelloIntervalCB cb
);
void unmarshall_set_router_dead_interval(
const XrlError& e,
XrlArgs* a,
SetRouterDeadIntervalCB cb
);
void unmarshall_set_simple_authentication_key(
const XrlError& e,
XrlArgs* a,
SetSimpleAuthenticationKeyCB cb
);
void unmarshall_delete_simple_authentication_key(
const XrlError& e,
XrlArgs* a,
DeleteSimpleAuthenticationKeyCB cb
);
void unmarshall_set_md5_authentication_key(
const XrlError& e,
XrlArgs* a,
SetMd5AuthenticationKeyCB cb
);
void unmarshall_delete_md5_authentication_key(
const XrlError& e,
XrlArgs* a,
DeleteMd5AuthenticationKeyCB cb
);
void unmarshall_set_passive(
const XrlError& e,
XrlArgs* a,
SetPassiveCB cb
);
void unmarshall_originate_default_route(
const XrlError& e,
XrlArgs* a,
OriginateDefaultRouteCB cb
);
void unmarshall_stub_default_cost(
const XrlError& e,
XrlArgs* a,
StubDefaultCostCB cb
);
void unmarshall_summaries(
const XrlError& e,
XrlArgs* a,
SummariesCB cb
);
void unmarshall_area_range_add(
const XrlError& e,
XrlArgs* a,
AreaRangeAddCB cb
);
void unmarshall_area_range_delete(
const XrlError& e,
XrlArgs* a,
AreaRangeDeleteCB cb
);
void unmarshall_area_range_change_state(
const XrlError& e,
XrlArgs* a,
AreaRangeChangeStateCB cb
);
void unmarshall_trace(
const XrlError& e,
XrlArgs* a,
TraceCB cb
);
void unmarshall_get_lsa(
const XrlError& e,
XrlArgs* a,
GetLsaCB cb
);
void unmarshall_get_area_list(
const XrlError& e,
XrlArgs* a,
GetAreaListCB cb
);
void unmarshall_get_neighbour_list(
const XrlError& e,
XrlArgs* a,
GetNeighbourListCB cb
);
void unmarshall_get_neighbour_info(
const XrlError& e,
XrlArgs* a,
GetNeighbourInfoCB cb
);
void unmarshall_clear_database(
const XrlError& e,
XrlArgs* a,
ClearDatabaseCB cb
);
};
#endif /* __XRL_INTERFACES_OSPFV2_XIF_HH__ */
Generated by: pavlin on kobe.xorp.net on Wed Jan 7 19:10:48 2009, using kdoc 2.0a54+XORP.