bgp_base.hh
来自「BCAST Implementation for NS2」· HH 代码 · 共 819 行 · 第 1/2 页
HH
819 行
* * Get the next route in the list See RFC 1657 (BGP MIB) for full * definitions of return values. */ virtual XrlCmdError bgp_0_2_get_v4_route_list_next( // Input values, const uint32_t& token, // Output values, IPv4& peer_id, IPv4Net& net, uint32_t& best_and_origin, vector<uint8_t>& aspath, IPv4& nexthop, int32_t& med, int32_t& localpref, int32_t& atomic_agg, vector<uint8_t>& aggregator, int32_t& calc_localpref, vector<uint8_t>& attr_unknown, bool& valid) = 0; /** * Pure-virtual function that needs to be implemented to: * * Get the next route in the list See RFC 1657 (BGP MIB) for full * definitions of return values. */ virtual XrlCmdError bgp_0_2_get_v6_route_list_next( // Input values, const uint32_t& token, // Output values, IPv4& peer_id, IPv6Net& net, uint32_t& best_and_origin, vector<uint8_t>& aspath, IPv6& nexthop, int32_t& med, int32_t& localpref, int32_t& atomic_agg, vector<uint8_t>& aggregator, int32_t& calc_localpref, vector<uint8_t>& attr_unknown, bool& valid) = 0; /** * Pure-virtual function that needs to be implemented to: * * Route Info Changed route_info_changed is called by the RIB on the RIB * client (typically a routing protocol) that had registered an interest * in the routing of an address. This can be because the metric and/or * nexthop changed. * * @param addr base address of the subnet that was registered * * @param prefix_len prefix length of the subnet that was registered * * @param metric the routing metric toward the address. * * @param admin_distance the administratively defined distance toward the * address. * * @param protocol_origin the name of the protocol that originated this * entry. */ virtual XrlCmdError rib_client_0_1_route_info_changed4( // Input values, const IPv4& addr, const uint32_t& prefix_len, const IPv4& nexthop, const uint32_t& metric, const uint32_t& admin_distance, const string& protocol_origin) = 0; virtual XrlCmdError rib_client_0_1_route_info_changed6( // Input values, const IPv6& addr, const uint32_t& prefix_len, const IPv6& nexthop, const uint32_t& metric, const uint32_t& admin_distance, const string& protocol_origin) = 0; /** * Pure-virtual function that needs to be implemented to: * * Route Info Invalid route_info_invalid is called by the RIB on the RIB * client (typically a routing protocol) that had registere d an interest * in the routing of an address. This can be because the information * previously reported as applying no longer applies for any number of * reasons. When the RIB sends this message, it has automatically * de-registered interest in the route, and the client will normally need * to send a register_interest request again. */ virtual XrlCmdError rib_client_0_1_route_info_invalid4( // Input values, const IPv4& addr, const uint32_t& prefix_len) = 0; virtual XrlCmdError rib_client_0_1_route_info_invalid6( // Input values, const IPv6& addr, const uint32_t& prefix_len) = 0; /** * Pure-virtual function that needs to be implemented to: * * Announce target birth. */ virtual XrlCmdError finder_event_observer_0_1_xrl_target_birth( // Input values, const string& target_class, const string& target_instance) = 0; /** * Pure-virtual function that needs to be implemented to: * * Announce target death. */ virtual XrlCmdError finder_event_observer_0_1_xrl_target_death( // Input values, const string& target_class, const string& target_instance) = 0;private: const XrlCmdError handle_common_0_1_get_target_name(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_common_0_1_get_version(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_common_0_1_get_status(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_common_0_1_shutdown(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_bgp_0_2_get_bgp_version(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_bgp_0_2_local_config(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_bgp_0_2_set_local_as(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_bgp_0_2_get_local_as(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_bgp_0_2_set_bgp_id(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_bgp_0_2_get_bgp_id(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_bgp_0_2_add_peer(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_bgp_0_2_delete_peer(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_bgp_0_2_enable_peer(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_bgp_0_2_disable_peer(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_bgp_0_2_set_parameter(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_bgp_0_2_next_hop_rewrite_filter(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_bgp_0_2_set_peer_state(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_bgp_0_2_get_peer_list_start(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_bgp_0_2_get_peer_list_next(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_bgp_0_2_get_peer_id(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_bgp_0_2_get_peer_status(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_bgp_0_2_get_peer_negotiated_version(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_bgp_0_2_get_peer_as(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_bgp_0_2_get_peer_msg_stats(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_bgp_0_2_get_peer_established_stats(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_bgp_0_2_get_peer_timer_config(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_bgp_0_2_register_rib(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_bgp_0_2_add_route(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_bgp_0_2_delete_route(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_bgp_0_2_get_v4_route_list_start(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_bgp_0_2_get_v6_route_list_start(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_bgp_0_2_get_v4_route_list_next(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_bgp_0_2_get_v6_route_list_next(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_rib_client_0_1_route_info_changed4(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_rib_client_0_1_route_info_changed6(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_rib_client_0_1_route_info_invalid4(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_rib_client_0_1_route_info_invalid6(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_finder_event_observer_0_1_xrl_target_birth(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_finder_event_observer_0_1_xrl_target_death(const XrlArgs& in, XrlArgs* out); void add_handlers() { if (_cmds->add_handler("common/0.1/get_target_name", callback(this, &XrlBgpTargetBase::handle_common_0_1_get_target_name)) == false) { XLOG_ERROR("Failed to xrl handler finder://bgp/common/0.1/get_target_name"); } if (_cmds->add_handler("common/0.1/get_version", callback(this, &XrlBgpTargetBase::handle_common_0_1_get_version)) == false) { XLOG_ERROR("Failed to xrl handler finder://bgp/common/0.1/get_version"); } if (_cmds->add_handler("common/0.1/get_status", callback(this, &XrlBgpTargetBase::handle_common_0_1_get_status)) == false) { XLOG_ERROR("Failed to xrl handler finder://bgp/common/0.1/get_status"); } if (_cmds->add_handler("common/0.1/shutdown", callback(this, &XrlBgpTargetBase::handle_common_0_1_shutdown)) == false) { XLOG_ERROR("Failed to xrl handler finder://bgp/common/0.1/shutdown"); } if (_cmds->add_handler("bgp/0.2/get_bgp_version", callback(this, &XrlBgpTargetBase::handle_bgp_0_2_get_bgp_version)) == false) { XLOG_ERROR("Failed to xrl handler finder://bgp/bgp/0.2/get_bgp_version"); } if (_cmds->add_handler("bgp/0.2/local_config", callback(this, &XrlBgpTargetBase::handle_bgp_0_2_local_config)) == false) { XLOG_ERROR("Failed to xrl handler finder://bgp/bgp/0.2/local_config"); } if (_cmds->add_handler("bgp/0.2/set_local_as", callback(this, &XrlBgpTargetBase::handle_bgp_0_2_set_local_as)) == false) { XLOG_ERROR("Failed to xrl handler finder://bgp/bgp/0.2/set_local_as"); } if (_cmds->add_handler("bgp/0.2/get_local_as", callback(this, &XrlBgpTargetBase::handle_bgp_0_2_get_local_as)) == false) { XLOG_ERROR("Failed to xrl handler finder://bgp/bgp/0.2/get_local_as"); } if (_cmds->add_handler("bgp/0.2/set_bgp_id", callback(this, &XrlBgpTargetBase::handle_bgp_0_2_set_bgp_id)) == false) { XLOG_ERROR("Failed to xrl handler finder://bgp/bgp/0.2/set_bgp_id"); } if (_cmds->add_handler("bgp/0.2/get_bgp_id", callback(this, &XrlBgpTargetBase::handle_bgp_0_2_get_bgp_id)) == false) { XLOG_ERROR("Failed to xrl handler finder://bgp/bgp/0.2/get_bgp_id"); } if (_cmds->add_handler("bgp/0.2/add_peer", callback(this, &XrlBgpTargetBase::handle_bgp_0_2_add_peer)) == false) { XLOG_ERROR("Failed to xrl handler finder://bgp/bgp/0.2/add_peer"); } if (_cmds->add_handler("bgp/0.2/delete_peer", callback(this, &XrlBgpTargetBase::handle_bgp_0_2_delete_peer)) == false) { XLOG_ERROR("Failed to xrl handler finder://bgp/bgp/0.2/delete_peer"); } if (_cmds->add_handler("bgp/0.2/enable_peer", callback(this, &XrlBgpTargetBase::handle_bgp_0_2_enable_peer)) == false) { XLOG_ERROR("Failed to xrl handler finder://bgp/bgp/0.2/enable_peer"); } if (_cmds->add_handler("bgp/0.2/disable_peer", callback(this, &XrlBgpTargetBase::handle_bgp_0_2_disable_peer)) == false) { XLOG_ERROR("Failed to xrl handler finder://bgp/bgp/0.2/disable_peer"); } if (_cmds->add_handler("bgp/0.2/set_parameter", callback(this, &XrlBgpTargetBase::handle_bgp_0_2_set_parameter)) == false) { XLOG_ERROR("Failed to xrl handler finder://bgp/bgp/0.2/set_parameter"); } if (_cmds->add_handler("bgp/0.2/next_hop_rewrite_filter", callback(this, &XrlBgpTargetBase::handle_bgp_0_2_next_hop_rewrite_filter)) == false) { XLOG_ERROR("Failed to xrl handler finder://bgp/bgp/0.2/next_hop_rewrite_filter"); } if (_cmds->add_handler("bgp/0.2/set_peer_state", callback(this, &XrlBgpTargetBase::handle_bgp_0_2_set_peer_state)) == false) { XLOG_ERROR("Failed to xrl handler finder://bgp/bgp/0.2/set_peer_state"); } if (_cmds->add_handler("bgp/0.2/get_peer_list_start", callback(this, &XrlBgpTargetBase::handle_bgp_0_2_get_peer_list_start)) == false) { XLOG_ERROR("Failed to xrl handler finder://bgp/bgp/0.2/get_peer_list_start"); } if (_cmds->add_handler("bgp/0.2/get_peer_list_next", callback(this, &XrlBgpTargetBase::handle_bgp_0_2_get_peer_list_next)) == false) { XLOG_ERROR("Failed to xrl handler finder://bgp/bgp/0.2/get_peer_list_next"); } if (_cmds->add_handler("bgp/0.2/get_peer_id", callback(this, &XrlBgpTargetBase::handle_bgp_0_2_get_peer_id)) == false) { XLOG_ERROR("Failed to xrl handler finder://bgp/bgp/0.2/get_peer_id"); } if (_cmds->add_handler("bgp/0.2/get_peer_status", callback(this, &XrlBgpTargetBase::handle_bgp_0_2_get_peer_status)) == false) { XLOG_ERROR("Failed to xrl handler finder://bgp/bgp/0.2/get_peer_status"); } if (_cmds->add_handler("bgp/0.2/get_peer_negotiated_version", callback(this, &XrlBgpTargetBase::handle_bgp_0_2_get_peer_negotiated_version)) == false) { XLOG_ERROR("Failed to xrl handler finder://bgp/bgp/0.2/get_peer_negotiated_version"); } if (_cmds->add_handler("bgp/0.2/get_peer_as", callback(this, &XrlBgpTargetBase::handle_bgp_0_2_get_peer_as)) == false) { XLOG_ERROR("Failed to xrl handler finder://bgp/bgp/0.2/get_peer_as"); } if (_cmds->add_handler("bgp/0.2/get_peer_msg_stats", callback(this, &XrlBgpTargetBase::handle_bgp_0_2_get_peer_msg_stats)) == false) { XLOG_ERROR("Failed to xrl handler finder://bgp/bgp/0.2/get_peer_msg_stats"); } if (_cmds->add_handler("bgp/0.2/get_peer_established_stats", callback(this, &XrlBgpTargetBase::handle_bgp_0_2_get_peer_established_stats)) == false) { XLOG_ERROR("Failed to xrl handler finder://bgp/bgp/0.2/get_peer_established_stats"); } if (_cmds->add_handler("bgp/0.2/get_peer_timer_config", callback(this, &XrlBgpTargetBase::handle_bgp_0_2_get_peer_timer_config)) == false) { XLOG_ERROR("Failed to xrl handler finder://bgp/bgp/0.2/get_peer_timer_config"); } if (_cmds->add_handler("bgp/0.2/register_rib", callback(this, &XrlBgpTargetBase::handle_bgp_0_2_register_rib)) == false) { XLOG_ERROR("Failed to xrl handler finder://bgp/bgp/0.2/register_rib"); } if (_cmds->add_handler("bgp/0.2/add_route", callback(this, &XrlBgpTargetBase::handle_bgp_0_2_add_route)) == false) { XLOG_ERROR("Failed to xrl handler finder://bgp/bgp/0.2/add_route"); } if (_cmds->add_handler("bgp/0.2/delete_route", callback(this, &XrlBgpTargetBase::handle_bgp_0_2_delete_route)) == false) { XLOG_ERROR("Failed to xrl handler finder://bgp/bgp/0.2/delete_route"); } if (_cmds->add_handler("bgp/0.2/get_v4_route_list_start", callback(this, &XrlBgpTargetBase::handle_bgp_0_2_get_v4_route_list_start)) == false) { XLOG_ERROR("Failed to xrl handler finder://bgp/bgp/0.2/get_v4_route_list_start"); } if (_cmds->add_handler("bgp/0.2/get_v6_route_list_start", callback(this, &XrlBgpTargetBase::handle_bgp_0_2_get_v6_route_list_start)) == false) { XLOG_ERROR("Failed to xrl handler finder://bgp/bgp/0.2/get_v6_route_list_start"); } if (_cmds->add_handler("bgp/0.2/get_v4_route_list_next", callback(this, &XrlBgpTargetBase::handle_bgp_0_2_get_v4_route_list_next)) == false) { XLOG_ERROR("Failed to xrl handler finder://bgp/bgp/0.2/get_v4_route_list_next"); } if (_cmds->add_handler("bgp/0.2/get_v6_route_list_next", callback(this, &XrlBgpTargetBase::handle_bgp_0_2_get_v6_route_list_next)) == false) { XLOG_ERROR("Failed to xrl handler finder://bgp/bgp/0.2/get_v6_route_list_next"); } if (_cmds->add_handler("rib_client/0.1/route_info_changed4", callback(this, &XrlBgpTargetBase::handle_rib_client_0_1_route_info_changed4)) == false) { XLOG_ERROR("Failed to xrl handler finder://bgp/rib_client/0.1/route_info_changed4"); } if (_cmds->add_handler("rib_client/0.1/route_info_changed6", callback(this, &XrlBgpTargetBase::handle_rib_client_0_1_route_info_changed6)) == false) { XLOG_ERROR("Failed to xrl handler finder://bgp/rib_client/0.1/route_info_changed6"); } if (_cmds->add_handler("rib_client/0.1/route_info_invalid4", callback(this, &XrlBgpTargetBase::handle_rib_client_0_1_route_info_invalid4)) == false) { XLOG_ERROR("Failed to xrl handler finder://bgp/rib_client/0.1/route_info_invalid4"); } if (_cmds->add_handler("rib_client/0.1/route_info_invalid6", callback(this, &XrlBgpTargetBase::handle_rib_client_0_1_route_info_invalid6)) == false) { XLOG_ERROR("Failed to xrl handler finder://bgp/rib_client/0.1/route_info_invalid6"); } if (_cmds->add_handler("finder_event_observer/0.1/xrl_target_birth", callback(this, &XrlBgpTargetBase::handle_finder_event_observer_0_1_xrl_target_birth)) == false) { XLOG_ERROR("Failed to xrl handler finder://bgp/finder_event_observer/0.1/xrl_target_birth"); } if (_cmds->add_handler("finder_event_observer/0.1/xrl_target_death", callback(this, &XrlBgpTargetBase::handle_finder_event_observer_0_1_xrl_target_death)) == false) { XLOG_ERROR("Failed to xrl handler finder://bgp/finder_event_observer/0.1/xrl_target_death"); } _cmds->finalize(); } void remove_handlers() { _cmds->remove_handler("common/0.1/get_target_name"); _cmds->remove_handler("common/0.1/get_version"); _cmds->remove_handler("common/0.1/get_status"); _cmds->remove_handler("common/0.1/shutdown"); _cmds->remove_handler("bgp/0.2/get_bgp_version"); _cmds->remove_handler("bgp/0.2/local_config"); _cmds->remove_handler("bgp/0.2/set_local_as"); _cmds->remove_handler("bgp/0.2/get_local_as"); _cmds->remove_handler("bgp/0.2/set_bgp_id"); _cmds->remove_handler("bgp/0.2/get_bgp_id"); _cmds->remove_handler("bgp/0.2/add_peer"); _cmds->remove_handler("bgp/0.2/delete_peer"); _cmds->remove_handler("bgp/0.2/enable_peer"); _cmds->remove_handler("bgp/0.2/disable_peer"); _cmds->remove_handler("bgp/0.2/set_parameter"); _cmds->remove_handler("bgp/0.2/next_hop_rewrite_filter"); _cmds->remove_handler("bgp/0.2/set_peer_state"); _cmds->remove_handler("bgp/0.2/get_peer_list_start"); _cmds->remove_handler("bgp/0.2/get_peer_list_next"); _cmds->remove_handler("bgp/0.2/get_peer_id"); _cmds->remove_handler("bgp/0.2/get_peer_status"); _cmds->remove_handler("bgp/0.2/get_peer_negotiated_version"); _cmds->remove_handler("bgp/0.2/get_peer_as"); _cmds->remove_handler("bgp/0.2/get_peer_msg_stats"); _cmds->remove_handler("bgp/0.2/get_peer_established_stats"); _cmds->remove_handler("bgp/0.2/get_peer_timer_config"); _cmds->remove_handler("bgp/0.2/register_rib"); _cmds->remove_handler("bgp/0.2/add_route"); _cmds->remove_handler("bgp/0.2/delete_route"); _cmds->remove_handler("bgp/0.2/get_v4_route_list_start"); _cmds->remove_handler("bgp/0.2/get_v6_route_list_start"); _cmds->remove_handler("bgp/0.2/get_v4_route_list_next"); _cmds->remove_handler("bgp/0.2/get_v6_route_list_next"); _cmds->remove_handler("rib_client/0.1/route_info_changed4"); _cmds->remove_handler("rib_client/0.1/route_info_changed6"); _cmds->remove_handler("rib_client/0.1/route_info_invalid4"); _cmds->remove_handler("rib_client/0.1/route_info_invalid6"); _cmds->remove_handler("finder_event_observer/0.1/xrl_target_birth"); _cmds->remove_handler("finder_event_observer/0.1/xrl_target_death"); }};#endif /* __XRL_INTERFACES_BGP_BASE_HH__ */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?