📄 ospfv3_base.hh
字号:
/* * Copyright (c) 2001-2007 International Computer Science Institute * See LICENSE file for licensing, conditions, and warranties on use. * * DO NOT EDIT THIS FILE - IT IS PROGRAMMATICALLY GENERATED * * Generated by 'tgt-gen'. * * $XORP: xorp/xrl/targets/ospfv3_base.hh,v 1.16 2007/03/12 10:16:06 atanu Exp $ */#ifndef __XRL_TARGETS_OSPFV3_BASE_HH__#define __XRL_TARGETS_OSPFV3_BASE_HH__#undef XORP_LIBRARY_NAME#define XORP_LIBRARY_NAME "XrlOspfv3Target"#include "libxorp/xlog.h"#include "libxipc/xrl_cmd_map.hh"class XrlOspfv3TargetBase {protected: XrlCmdMap* _cmds;public: /** * Constructor. * * @param cmds an XrlCmdMap that the commands associated with the target * should be added to. This is typically the XrlRouter * associated with the target. */ XrlOspfv3TargetBase(XrlCmdMap* cmds = 0); /** * Destructor. * * Dissociates instance commands from command map. */ virtual ~XrlOspfv3TargetBase(); /** * Set command map. * * @param cmds pointer to command map to associate commands with. This * argument is typically a pointer to the XrlRouter associated with the * target. * * @return true on success, false if cmds is null or a command map has * already been supplied. */ bool set_command_map(XrlCmdMap* cmds); /** * Get Xrl instance name associated with command map. */ inline const string& name() const { return _cmds->name(); } /** * Get version string of instance. */ inline const char* version() const { return "ospfv3/0.0"; }protected: /** * Pure-virtual function that needs to be implemented to: * * Get name of Xrl Target */ virtual XrlCmdError common_0_1_get_target_name( // Output values, string& name) = 0; /** * Pure-virtual function that needs to be implemented to: * * Get version string from Xrl Target */ virtual XrlCmdError common_0_1_get_version( // Output values, string& version) = 0; /** * Pure-virtual function that needs to be implemented to: * * Get status of Xrl Target */ virtual XrlCmdError common_0_1_get_status( // Output values, uint32_t& status, string& reason) = 0; /** * Pure-virtual function that needs to be implemented to: * * Request clean shutdown of Xrl Target */ virtual XrlCmdError common_0_1_shutdown() = 0; /** * Pure-virtual function that needs to be implemented to: * * Receive an IPv4 packet from a raw socket. * * @param if_name the interface name the packet arrived on. * * @param vif_name the vif name the packet arrived on. * * @param src_address the IP source address. * * @param dst_address the IP destination address. * * @param ip_protocol the IP protocol number. * * @param ip_ttl the IP TTL (hop-limit). If it has a negative value, then * the received value is unknown. * * @param ip_tos the Type of Service (Diffserv/ECN bits for IPv4). If it * has a negative value, then the received value is unknown. * * @param ip_router_alert if true, the IP Router Alert option was included * in the IP packet. */ virtual XrlCmdError raw_packet4_client_0_1_recv( // Input values, const string& if_name, const string& vif_name, const IPv4& src_address, const IPv4& dst_address, const uint32_t& ip_protocol, const int32_t& ip_ttl, const int32_t& ip_tos, const bool& ip_router_alert, const vector<uint8_t>& payload) = 0; /** * Pure-virtual function that needs to be implemented to: * * Receive an IPv6 packet from a raw socket. * * @param if_name the interface name the packet arrived on. * * @param vif_name the vif name the packet arrived on. * * @param src_address the IP source address. * * @param dst_address the IP destination address. * * @param ip_protocol the IP protocol number. * * @param ip_ttl the IP TTL (hop-limit). If it has a negative value, then * the received value is unknown. * * @param ip_tos the Type Of Service (IP traffic class for IPv4). If it * has a negative value, then the received value is unknown. * * @param ip_router_alert if true, the IP Router Alert option was included * in the IP packet. * * @param ext_headers_type a list of u32 integers with the types of the * optional extention headers. * * @param ext_headers_payload a list of payload data, one for each * optional extention header. The number of entries must match * ext_headers_type. */ virtual XrlCmdError raw_packet6_client_0_1_recv( // Input values, const string& if_name, const string& vif_name, const IPv6& src_address, const IPv6& dst_address, const uint32_t& ip_protocol, const int32_t& ip_ttl, const int32_t& ip_tos, const bool& ip_router_alert, const XrlAtomList& ext_headers_type, const XrlAtomList& ext_headers_payload, const vector<uint8_t>& payload) = 0; /** * Pure-virtual function that needs to be implemented to: * * Configure a policy filter. * * @param filter the identifier of the filter to configure. * * @param conf the configuration of the filter. */ virtual XrlCmdError policy_backend_0_1_configure( // Input values, const uint32_t& filter, const string& conf) = 0; /** * Pure-virtual function that needs to be implemented to: * * Reset a policy filter. * * @param filter the identifier of the filter to reset. */ virtual XrlCmdError policy_backend_0_1_reset( // Input values, const uint32_t& filter) = 0; /** * Pure-virtual function that needs to be implemented to: * * Push all available routes through all filters for re-filtering. */ virtual XrlCmdError policy_backend_0_1_push_routes() = 0; /** * Pure-virtual function that needs to be implemented to: * * Start route redistribution for an IPv6 route. * * @param network the route to advertise. * * @param unicast whether the route is unicast. * * @param multicast whether the route is multicast. * * @param nexthop the nexthop of the route. * * @param metric the metric of the route. * * @param policytags the set of policy-tags associated with the route. */ virtual XrlCmdError policy_redist6_0_1_add_route6( // Input values, const IPv6Net& network, const bool& unicast, const bool& multicast, const IPv6& nexthop, const uint32_t& metric, const XrlAtomList& policytags) = 0; /** * Pure-virtual function that needs to be implemented to: * * Terminate route redistribution for an IPv6 route. * * @param network the route for which advertisements should cease. * * @param unicast whether the route is unicast. * * @param multicast whether the route is multicast. */ virtual XrlCmdError policy_redist6_0_1_delete_route6( // Input values, const IPv6Net& network, const bool& unicast, const bool& multicast) = 0; /** * Pure-virtual function that needs to be implemented to: * * Set instance id */ virtual XrlCmdError ospfv3_0_1_set_instance_id( // Input values, const uint32_t& id) = 0; /** * Pure-virtual function that needs to be implemented to: * * Set router id */ virtual XrlCmdError ospfv3_0_1_set_router_id( // Input values, const IPv4& id) = 0; /** * Pure-virtual function that needs to be implemented to: * * Set the router alert in the IP options. */ virtual XrlCmdError ospfv3_0_1_set_ip_router_alert( // Input values, const bool& ip_router_alert) = 0; /** * Pure-virtual function that needs to be implemented to: * * Create an area. * * @param area id of the area * * @param type of area "border", "stub", "nssa" */ virtual XrlCmdError ospfv3_0_1_create_area_router( // Input values, const IPv4& area, const string& type) = 0; /** * Pure-virtual function that needs to be implemented to: * * Change area type. * * @param area id of the area * * @param type of area "border", "stub", "nssa" */ virtual XrlCmdError ospfv3_0_1_change_area_router_type( // Input values, const IPv4& area, const string& type) = 0; /** * Pure-virtual function that needs to be implemented to: * * Destroy area. * * @param area id of the area */ virtual XrlCmdError ospfv3_0_1_destroy_area_router( // Input values, const IPv4& area) = 0; /** * Pure-virtual function that needs to be implemented to: * * Create a binding to an interface. * * @param ifname the interface. * * @param vifname virtual interface. * * @param type of link "p2p", "broadcast", "nbma", "p2m", "vlink" */ virtual XrlCmdError ospfv3_0_1_create_peer( // Input values, const string& ifname, const string& vifname, const string& type, const IPv4& area) = 0; /** * Pure-virtual function that needs to be implemented to: * * Delete peer. */ virtual XrlCmdError ospfv3_0_1_delete_peer( // Input values, const string& ifname, const string& vifname) = 0; /** * Pure-virtual function that needs to be implemented to: * * Set the peer state up or down. */ virtual XrlCmdError ospfv3_0_1_set_peer_state( // Input values, const string& ifname, const string& vifname, const bool& enable) = 0; /** * Pure-virtual function that needs to be implemented to: * * Add an address to the peer. */ virtual XrlCmdError ospfv3_0_1_add_address_peer( // Input values, const string& ifname, const string& vifname, const IPv4& area, const IPv6& addr) = 0; /** * Pure-virtual function that needs to be implemented to: * * Remove an address from the peer. */ virtual XrlCmdError ospfv3_0_1_remove_address_peer( // Input values, const string& ifname, const string& vifname, const IPv4& area, const IPv6& addr) = 0; /** * Pure-virtual function that needs to be implemented to: * * Set the address state up or down. */ virtual XrlCmdError ospfv3_0_1_set_address_state_peer( // Input values, const string& ifname, const string& vifname, const IPv4& area, const IPv6& addr, const bool& enable) = 0; /** * Pure-virtual function that needs to be implemented to: * * Activate peer. Called once the peer and child nodes have been * configured. */ virtual XrlCmdError ospfv3_0_1_activate_peer( // Input values, const string& ifname, const string& vifname, const IPv4& area) = 0; /** * Pure-virtual function that needs to be implemented to: * * Update peer. Called if the peer and child nodes are modified. */ virtual XrlCmdError ospfv3_0_1_update_peer( // Input values, const string& ifname, const string& vifname, const IPv4& area) = 0; /** * Pure-virtual function that needs to be implemented to: * * Add a neighbour to the peer. */ virtual XrlCmdError ospfv3_0_1_add_neighbour( // Input values, const string& ifname, const string& vifname, const IPv4& area,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -