📄 rib_base.hh
字号:
* @param cookie a text value passed back to creator in each call from the * RIB. This allows creators to identity the source of updates it receives * through the redist_transaction4/0.1 interface. */ virtual XrlCmdError rib_0_1_redist_transaction_disable4( // Input values, const string& to_xrl_target, const string& from_protocol, const bool& unicast, const bool& multicast, const string& cookie) = 0; /** * Pure-virtual function that needs to be implemented to: * * Disable transaction-based route redistribution from one routing * protocol to another. * * @param to_xrl_target the XRL Target instance name of the caller. The * caller must implement redist_transaction6/0.1 and previously called * redist_transaction_enable6. * * @param unicast disable for unicast RIBs matching from and to. * * @param multicast disable for multicast RIBs matching from and to. * * @param cookie a text value passed back to creator in each call from the * RIB. This allows creators to identity the source of updates it receives * through the redist_transaction6/0.1 interface. */ virtual XrlCmdError rib_0_1_redist_transaction_disable6( // Input values, const string& to_xrl_target, const string& from_protocol, const bool& unicast, const bool& multicast, const string& cookie) = 0; /** * Pure-virtual function that needs to be implemented to: * * Register an interest in a route. * * @param target the name of the XRL module to notify when the information * returned by this call becomes invalid. * * @param addr address of interest. * * @param resolves returns whether or not the address resolves to a route * that can be used for forwarding. * * @param base_addr returns the address of interest (actually the base * address of the subnet covered by addr/prefix_len). * * @param prefix_len returns the prefix length that the registration * covers. This response applies to all addresses in addr/prefix_len. * * @param real_prefix_len returns the actual prefix length of the route * that will be used to route addr. If real_prefix_len is not the same as * prefix_len, this is because there are some more specific routes that * overlap addr/real_prefix_len. real_prefix_len is primarily given for * debugging reasons. * * @param nexthop returns the address of the next hop for packets sent to * addr. * * @param metric returns the IGP metric for this route. */ virtual XrlCmdError rib_0_1_register_interest4( // Input values, const string& target, const IPv4& addr, // Output values, bool& resolves, IPv4& base_addr, uint32_t& prefix_len, uint32_t& real_prefix_len, IPv4& nexthop, uint32_t& metric) = 0; /** * Pure-virtual function that needs to be implemented to: * * De-register an interest in a route. * * @param target the name of the XRL module that registered the interest. * * @param addr the address of the previous registered interest. addr * should be the base address of the add/prefix_len subnet. * * @param prefix_len the prefix length of the registered interest, as * given in the response from register_interest. */ virtual XrlCmdError rib_0_1_deregister_interest4( // Input values, const string& target, const IPv4& addr, const uint32_t& prefix_len) = 0; /** * Pure-virtual function that needs to be implemented to: * * Register an interest in a route. * * @param target the name of the XRL module to notify when the information * returned by this call becomes invalid. * * @param addr address of interest. * * @param resolves returns whether or not the address resolves to a route * that can be used for forwarding. * * @param base_addr returns the address of interest (actually the base * address of the subnet covered by addr/prefix_len). * * @param prefix_len returns the prefix length that the registration * covers. This response applies to all addresses in addr/prefix_len. * * @param real_prefix_len returns the actual prefix length of the route * that will be used to route addr. If real_prefix_len is not the same as * prefix_len, this is because there are some more specific routes that * overlap addr/real_prefix_len. real_prefix_len is primarily given for * debugging reasons. * * @param nexthop returns the address of the next hop for packets sent to * addr. * * @param metric returns the IGP metric for this route. */ virtual XrlCmdError rib_0_1_register_interest6( // Input values, const string& target, const IPv6& addr, // Output values, bool& resolves, IPv6& base_addr, uint32_t& prefix_len, uint32_t& real_prefix_len, IPv6& nexthop, uint32_t& metric) = 0; /** * Pure-virtual function that needs to be implemented to: * * De-register an interest in a route. * * @param target the name of the XRL module that registered the interest. * * @param addr the address of the previous registered interest. addr * should be the base address of the add/prefix_len subnet. * * @param prefix_len the prefix length of the registered interest, as * given in the response from register_interest. */ virtual XrlCmdError rib_0_1_deregister_interest6( // Input values, const string& target, const IPv6& addr, const uint32_t& prefix_len) = 0; /** * Pure-virtual function that needs to be implemented to: * * Add policy tags for a specific protcol in the redistribution map. * * @param protocol The destination protocol of the redistribution. * * @param policytags The set of policytags of interest for the protocol. */ virtual XrlCmdError rib_0_1_insert_policy_redist_tags( // Input values, const string& protocol, const XrlAtomList& policytags) = 0; /** * Pure-virtual function that needs to be implemented to: * * Reset the policy redistribution map. No policy based route * redistribution will be available at this point. */ virtual XrlCmdError rib_0_1_reset_policy_redist_tags() = 0; /** * Pure-virtual function that needs to be implemented to: * * Enable profiling * * @param pname profile variable */ virtual XrlCmdError profile_0_1_enable( // Input values, const string& pname) = 0; /** * Pure-virtual function that needs to be implemented to: * * Disable profiling * * @param pname profile variable */ virtual XrlCmdError profile_0_1_disable( // Input values, const string& pname) = 0; /** * Pure-virtual function that needs to be implemented to: * * Get log entries. * * @param pname profile variable * * @param instance_name to send the profiling info to. */ virtual XrlCmdError profile_0_1_get_entries( // Input values, const string& pname, const string& instance_name) = 0; /** * Pure-virtual function that needs to be implemented to: * * Clear the profiling entries * * @param pname profile variable */ virtual XrlCmdError profile_0_1_clear( // Input values, const string& pname) = 0; /** * Pure-virtual function that needs to be implemented to: * * List all the profiling variables registered with this target. */ virtual XrlCmdError profile_0_1_list( // Output values, string& info) = 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_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); const XrlCmdError handle_policy_backend_0_1_configure(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_policy_backend_0_1_reset(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_policy_backend_0_1_push_routes(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_rib_0_1_enable_rib(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_rib_0_1_disable_rib(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_rib_0_1_start_rib(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_rib_0_1_stop_rib(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_rib_0_1_make_errors_fatal(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_rib_0_1_get_registered_protocols(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_rib_0_1_add_igp_table4(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_rib_0_1_add_igp_table6(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_rib_0_1_delete_igp_table4(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_rib_0_1_delete_igp_table6(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_rib_0_1_add_egp_table4(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_rib_0_1_add_egp_table6(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_rib_0_1_delete_egp_table4(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_rib_0_1_delete_egp_table6(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_rib_0_1_add_route4(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_rib_0_1_add_route6(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_rib_0_1_replace_route4(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_rib_0_1_replace_route6(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_rib_0_1_delete_route4(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_rib_0_1_delete_route6(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_rib_0_1_add_interface_route4(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_rib_0_1_add_interface_route6(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_rib_0_1_replace_interface_route4(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_rib_0_1_replace_interface_route6(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_rib_0_1_lookup_route_by_dest4(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_rib_0_1_lookup_route_by_dest6(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_rib_0_1_new_vif(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_rib_0_1_add_vif_addr4(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_rib_0_1_add_vif_addr6(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_rib_0_1_redist_enable4(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_rib_0_1_redist_enable6(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_rib_0_1_redist_disable4(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_rib_0_1_redist_disable6(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_rib_0_1_redist_transaction_enable4(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_rib_0_1_redist_transaction_enable6(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_rib_0_1_redist_transaction_disable4(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_rib_0_1_redist_transaction_disable6(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_rib_0_1_register_interest4(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_rib_0_1_deregister_interest4(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_rib_0_1_register_interest6(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_rib_0_1_deregister_interest6(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_rib_0_1_insert_policy_redist_tags(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_rib_0_1_reset_policy_redist_tags(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_profile_0_1_enable(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_profile_0_1_disable(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_profile_0_1_get_entries(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_profile_0_1_clear(const XrlArgs& in, XrlArgs* out); const XrlCmdError handle_profile_0_1_list(const XrlArgs& in, XrlArgs* out); void add_handlers(); void remove_handlers();};#endif // __XRL_TARGETS_RIB_BASE_HH__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -