xorp

XrlFeaTarget Class Reference

FEA (Forwarding Engine Abstraction) XRL target class. More...

#include <xrl_fea_target.hh>

Inheritance diagram for XrlFeaTarget:
XrlFeaTargetBase

List of all members.

Public Member Functions

 XrlFeaTarget (EventLoop &eventloop, FeaNode &fea_node, XrlRouter &xrl_router, Profile &profile, XrlFibClientManager &xrl_fib_client_manager, LibFeaClientBridge &lib_fea_client_bridge)
 Constructor.
virtual ~XrlFeaTarget ()
 Destructor.
int startup ()
 Startup the service operation.
int shutdown ()
 Shutdown the service operation.
bool is_running () const
 Test whether the service is running.
bool is_shutdown_received () const
 Test whether a shutdown XRL request has been received.
EventLoopeventloop ()
 Get the event loop this service is added to.
XrlCmdError common_0_1_get_target_name (string &name)
 Pure-virtual function that needs to be implemented to:
XrlCmdError common_0_1_get_version (string &version)
 Pure-virtual function that needs to be implemented to:
XrlCmdError common_0_1_get_status (uint32_t &status, string &reason)
 Get status from Xrl Target.
XrlCmdError common_0_1_shutdown ()
 Shutdown FEA cleanly.
XrlCmdError common_0_1_startup ()
 Pure-virtual function that needs to be implemented to:
virtual XrlCmdError ifmgr_0_1_startup_ifmgr ()
 Does nothing, but allows us to have rtrmgr verify startup.
XrlCmdError finder_event_observer_0_1_xrl_target_birth (const string &target_class, const string &target_instance)
 Announce target birth to observer.
XrlCmdError finder_event_observer_0_1_xrl_target_death (const string &target_class, const string &target_instance)
 Announce target death to observer.
XrlCmdError fea_fib_0_1_add_fib_client4 (const string &client_target_name, const bool &send_updates, const bool &send_resolves)
 Add a FIB client.
XrlCmdError fea_fib_0_1_delete_fib_client4 (const string &client_target_name)
 Delete a FIB client.
virtual XrlCmdError fea_firewall_0_1_startup_firewall ()
 Does nothing, but allows us to have rtrmgr verify startup.
XrlCmdError fea_firewall_0_1_start_transaction (uint32_t &tid)
 Start firewall configuration transaction.
XrlCmdError fea_firewall_0_1_commit_transaction (const uint32_t &tid)
 Commit firewall configuration transaction.
XrlCmdError fea_firewall_0_1_abort_transaction (const uint32_t &tid)
 Abort firewall configuration transaction.
XrlCmdError fea_firewall_0_1_add_entry4 (const uint32_t &tid, const uint32_t &rule_number, const string &ifname, const string &vifname, const IPv4Net &src_network, const IPv4Net &dst_network, const uint32_t &ip_protocol, const uint32_t &src_port_begin, const uint32_t &src_port_end, const uint32_t &dst_port_begin, const uint32_t &dst_port_end, const string &action)
 Add an IPv4 firewall entry.
XrlCmdError fea_firewall_0_1_replace_entry4 (const uint32_t &tid, const uint32_t &rule_number, const string &ifname, const string &vifname, const IPv4Net &src_network, const IPv4Net &dst_network, const uint32_t &ip_protocol, const uint32_t &src_port_begin, const uint32_t &src_port_end, const uint32_t &dst_port_begin, const uint32_t &dst_port_end, const string &action)
 Replace an IPv4 firewall entry.
XrlCmdError fea_firewall_0_1_delete_entry4 (const uint32_t &tid, const uint32_t &rule_number, const string &ifname, const string &vifname, const IPv4Net &src_network, const IPv4Net &dst_network, const uint32_t &ip_protocol, const uint32_t &src_port_begin, const uint32_t &src_port_end, const uint32_t &dst_port_begin, const uint32_t &dst_port_end)
 Delete an IPv4 firewall entry.
XrlCmdError fea_firewall_0_1_delete_all_entries4 (const uint32_t &tid)
 Delete all IPv4 firewall entries.
XrlCmdError fea_firewall_0_1_get_entry_list_start4 (uint32_t &token, bool &more)
 Get a token for a list of IPv4 firewall entries.
XrlCmdError fea_firewall_0_1_get_entry_list_next4 (const uint32_t &token, uint32_t &rule_number, string &ifname, string &vifname, IPv4Net &src_network, IPv4Net &dst_network, uint32_t &ip_protocol, uint32_t &src_port_begin, uint32_t &src_port_end, uint32_t &dst_port_begin, uint32_t &dst_port_end, string &action, bool &more)
 Get the next item in a list of IPv4 firewall entries.
XrlCmdError ifmgr_0_1_set_restore_original_config_on_shutdown (const bool &enable)
XrlCmdError ifmgr_0_1_get_configured_interface_names (XrlAtomList &ifnames)
XrlCmdError ifmgr_0_1_get_configured_vif_names (const string &ifname, XrlAtomList &vifs)
XrlCmdError ifmgr_0_1_get_configured_vif_flags (const string &ifname, const string &vif, bool &enabled, bool &broadcast, bool &loopback, bool &point_to_point, bool &multicast)
XrlCmdError ifmgr_0_1_get_configured_vif_pif_index (const string &ifname, const string &vif, uint32_t &pif_index)
XrlCmdError ifmgr_0_1_start_transaction (uint32_t &tid)
XrlCmdError ifmgr_0_1_commit_transaction (const uint32_t &tid)
XrlCmdError ifmgr_0_1_abort_transaction (const uint32_t &tid)
XrlCmdError ifmgr_0_1_create_interface (const uint32_t &tid, const string &ifname)
XrlCmdError ifmgr_0_1_delete_interface (const uint32_t &tid, const string &ifname)
XrlCmdError ifmgr_0_1_configure_all_interfaces_from_system (const uint32_t &tid, const bool &enable)
 Implicitly configure all interfaces within the FEA by using information from the underlying system.
XrlCmdError ifmgr_0_1_configure_interface_from_system (const uint32_t &tid, const string &ifname, const bool &enable)
 Implicitly configure an interface within the FEA by using information from the underlying system.
XrlCmdError ifmgr_0_1_set_interface_enabled (const uint32_t &tid, const string &ifname, const bool &enabled)
XrlCmdError ifmgr_0_1_get_configured_interface_enabled (const string &ifname, bool &enabled)
XrlCmdError ifmgr_0_1_set_interface_discard (const uint32_t &tid, const string &ifname, const bool &discard)
XrlCmdError ifmgr_0_1_get_configured_interface_discard (const string &ifname, bool &discard)
XrlCmdError ifmgr_0_1_set_interface_unreachable (const uint32_t &tid, const string &ifname, const bool &unreachable)
XrlCmdError ifmgr_0_1_get_configured_interface_unreachable (const string &ifname, bool &unreachable)
XrlCmdError ifmgr_0_1_set_interface_management (const uint32_t &tid, const string &ifname, const bool &management)
XrlCmdError ifmgr_0_1_get_configured_interface_management (const string &ifname, bool &management)
XrlCmdError ifmgr_0_1_set_mac (const uint32_t &tid, const string &ifname, const Mac &mac)
XrlCmdError ifmgr_0_1_create_mac (const string &ifname, const Mac &mac)
XrlCmdError ifmgr_0_1_create_address_atomic (const string &ifname, const string &vifname, const IPv4 &ip, const uint32_t &prefix_length)
XrlCmdError ifmgr_0_1_delete_address_atomic (const string &ifname, const string &vifname, const IPv4 &ip)
XrlCmdError ifmgr_0_1_delete_mac (const string &ifname, const Mac &mac)
XrlCmdError ifmgr_0_1_restore_original_mac (const uint32_t &tid, const string &ifname)
XrlCmdError ifmgr_0_1_get_configured_mac (const string &ifname, Mac &mac)
XrlCmdError ifmgr_0_1_set_mtu (const uint32_t &tid, const string &ifname, const uint32_t &mtu)
XrlCmdError ifmgr_0_1_restore_original_mtu (const uint32_t &tid, const string &ifname)
XrlCmdError ifmgr_0_1_get_configured_mtu (const string &ifname, uint32_t &mtu)
XrlCmdError ifmgr_0_1_get_configured_no_carrier (const string &ifname, bool &no_carrier)
XrlCmdError ifmgr_0_1_get_configured_baudrate (const string &ifname, uint64_t &baudrate)
XrlCmdError ifmgr_0_1_get_configured_address_flags4 (const string &ifname, const string &vif, const IPv4 &address, bool &up, bool &broadcast, bool &loopback, bool &point_to_point, bool &multicast)
XrlCmdError ifmgr_0_1_create_vif (const uint32_t &tid, const string &ifname, const string &vif)
 Pure-virtual function that needs to be implemented to:
XrlCmdError ifmgr_0_1_delete_vif (const uint32_t &tid, const string &ifname, const string &vif)
XrlCmdError ifmgr_0_1_set_vif_enabled (const uint32_t &tid, const string &ifname, const string &vif, const bool &enabled)
XrlCmdError ifmgr_0_1_get_configured_vif_enabled (const string &ifname, const string &vif, bool &enabled)
XrlCmdError ifmgr_0_1_get_configured_vif_addresses4 (const string &ifname, const string &vif, XrlAtomList &addresses)
XrlCmdError ifmgr_0_1_set_parent_ifname (const uint32_t &tid, const string &ifname, const string &parent_ifname)
XrlCmdError ifmgr_0_1_set_iface_type (const uint32_t &tid, const string &ifname, const string &iface_type)
XrlCmdError ifmgr_0_1_set_vid (const uint32_t &tid, const string &ifname, const string &vid)
XrlCmdError ifmgr_0_1_create_address4 (const uint32_t &tid, const string &ifname, const string &vif, const IPv4 &address)
XrlCmdError ifmgr_0_1_delete_address4 (const uint32_t &tid, const string &ifname, const string &vif, const IPv4 &address)
XrlCmdError ifmgr_0_1_set_address4 (const uint32_t &tid, const string &ifname, const string &vif, const IPv4 &address)
XrlCmdError ifmgr_0_1_set_address_enabled4 (const uint32_t &tid, const string &ifname, const string &vif, const IPv4 &address, const bool &enabled)
XrlCmdError ifmgr_0_1_get_configured_address_enabled4 (const string &ifname, const string &vif, const IPv4 &address, bool &enabled)
XrlCmdError ifmgr_0_1_set_prefix4 (const uint32_t &tid, const string &ifname, const string &vif, const IPv4 &address, const uint32_t &prefix_len)
XrlCmdError ifmgr_0_1_get_configured_prefix4 (const string &ifname, const string &vif, const IPv4 &address, uint32_t &prefix_len)
XrlCmdError ifmgr_0_1_set_broadcast4 (const uint32_t &tid, const string &ifname, const string &vif, const IPv4 &address, const IPv4 &broadcast)
XrlCmdError ifmgr_0_1_get_configured_broadcast4 (const string &ifname, const string &vif, const IPv4 &address, IPv4 &broadcast)
XrlCmdError ifmgr_0_1_set_endpoint4 (const uint32_t &tid, const string &ifname, const string &vif, const IPv4 &address, const IPv4 &endpoint)
XrlCmdError ifmgr_0_1_get_configured_endpoint4 (const string &ifname, const string &vif, const IPv4 &address, IPv4 &endpoint)
XrlCmdError ifmgr_replicator_0_1_register_ifmgr_mirror (const string &clientname)
 Pure-virtual function that needs to be implemented to:
XrlCmdError ifmgr_replicator_0_1_unregister_ifmgr_mirror (const string &clientname)
 Pure-virtual function that needs to be implemented to:
XrlCmdError fti_0_2_lookup_route_by_dest4 (const IPv4 &host, IPv4Net &netmask, IPv4 &nexthop, string &ifname, string &vifname, uint32_t &metric, uint32_t &admin_distance, string &protocol_origin)
 Pure-virtual function that needs to be implemented to:
XrlCmdError fti_0_2_lookup_route_by_network4 (const IPv4Net &dst, IPv4 &nexthop, string &ifname, string &vifname, uint32_t &metric, uint32_t &admin_distance, string &protocol_origin)
 Pure-virtual function that needs to be implemented to:
XrlCmdError fti_0_2_have_ipv4 (bool &result)
 Pure-virtual function that needs to be implemented to:
XrlCmdError fti_0_2_get_unicast_forwarding_enabled4 (bool &enabled)
 Pure-virtual function that needs to be implemented to:
XrlCmdError fti_0_2_set_unicast_forwarding_enabled4 (const bool &enabled)
 Pure-virtual function that needs to be implemented to:
XrlCmdError fti_0_2_set_unicast_forwarding_entries_retain_on_startup4 (const bool &retain)
 Set the IPv4 unicast forwarding engine whether to retain existing XORP forwarding entries on startup.
XrlCmdError fti_0_2_set_unicast_forwarding_entries_retain_on_shutdown4 (const bool &retain)
 Set the IPv4 unicast forwarding engine whether to retain existing XORP forwarding entries on shutdown.
XrlCmdError fti_0_2_set_unicast_forwarding_table_id4 (const bool &is_configured, const uint32_t &table_id)
 Set the IPv4 unicast forwarding table ID to be used.
XrlCmdError redist_transaction4_0_1_start_transaction (uint32_t &tid)
 Start transaction.
XrlCmdError redist_transaction4_0_1_commit_transaction (const uint32_t &tid)
 Commit transaction.
XrlCmdError redist_transaction4_0_1_abort_transaction (const uint32_t &tid)
 Abort transaction.
XrlCmdError redist_transaction4_0_1_add_route (const uint32_t &tid, const IPv4Net &dst, const IPv4 &nexthop, const string &ifname, const string &vifname, const uint32_t &metric, const uint32_t &admin_distance, const string &cookie, const string &protocol_origin)
 Add/delete a routing entry.
XrlCmdError redist_transaction4_0_1_delete_route (const uint32_t &tid, const IPv4Net &dst, const IPv4 &nexthop, const string &ifname, const string &vifname, const uint32_t &metric, const uint32_t &admin_distance, const string &cookie, const string &protocol_origin)
XrlCmdError redist_transaction4_0_1_delete_all_routes (const uint32_t &tid, const string &cookie)
 Delete all routing entries.
XrlCmdError raw_link_0_1_send (const string &if_name, const string &vif_name, const Mac &src_address, const Mac &dst_address, const uint32_t &ether_type, const vector< uint8_t > &payload)
 Send a raw link-level packet on an interface.
XrlCmdError raw_link_0_1_register_receiver (const string &xrl_target_instance_name, const string &if_name, const string &vif_name, const uint32_t &ether_type, const string &filter_program, const bool &enable_multicast_loopback)
 Register to receive raw link-level packets.
XrlCmdError raw_link_0_1_unregister_receiver (const string &xrl_target_instance_name, const string &if_name, const string &vif_name, const uint32_t &ether_type, const string &filter_program)
 Unregister to receive raw link-level packets.
XrlCmdError raw_link_0_1_join_multicast_group (const string &xrl_target_instance_name, const string &if_name, const string &vif_name, const uint32_t &ether_type, const string &filter_program, const Mac &group_address)
 Join a MAC multicast group.
XrlCmdError raw_link_0_1_leave_multicast_group (const string &xrl_target_instance_name, const string &if_name, const string &vif_name, const uint32_t &ether_type, const string &filter_program, const Mac &group_address)
 Leave a MAC multicast group.
XrlCmdError raw_packet4_0_1_send (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 bool &ip_internet_control, const vector< uint8_t > &payload)
 Send an IPv4 packet on a raw socket.
XrlCmdError raw_packet4_0_1_register_receiver (const string &xrl_target_instance_name, const string &if_name, const string &vif_name, const uint32_t &ip_protocol, const bool &enable_multicast_loopback)
 Register to receive IPv4 packets.
XrlCmdError raw_packet4_0_1_unregister_receiver (const string &xrl_target_instance_name, const string &if_name, const string &vif_name, const uint32_t &ip_protocol)
 Unregister to receive IPv4 packets.
XrlCmdError raw_packet4_0_1_join_multicast_group (const string &xrl_target_instance_name, const string &if_name, const string &vif_name, const uint32_t &ip_protocol, const IPv4 &group_address)
 Join an IPv4 multicast group.
XrlCmdError raw_packet4_0_1_leave_multicast_group (const string &xrl_target_instance_name, const string &if_name, const string &vif_name, const uint32_t &ip_protocol, const IPv4 &group_address)
 Leave an IPv4 multicast group.
XrlCmdError socket4_0_1_tcp_open (const string &creator, string &sockid)
 Open a TCP socket.
XrlCmdError socket4_0_1_udp_open (const string &creator, string &sockid)
 Open an UDP socket.
XrlCmdError socket4_0_1_tcp_open_and_bind (const string &creator, const IPv4 &local_addr, const uint32_t &local_port, string &sockid)
 Create a bound TCP socket.
XrlCmdError socket4_0_1_udp_open_and_bind (const string &creator, const IPv4 &local_addr, const uint32_t &local_port, const string &local_dev, const uint32_t &reuse, string &sockid)
 Create a bound UDP socket.
XrlCmdError socket4_0_1_udp_open_bind_join (const string &creator, const IPv4 &local_addr, const uint32_t &local_port, const IPv4 &mcast_addr, const uint32_t &ttl, const bool &reuse, string &sockid)
 Create a bound UDP multicast socket.
XrlCmdError socket4_0_1_tcp_open_bind_connect (const string &creator, const IPv4 &local_addr, const uint32_t &local_port, const IPv4 &remote_addr, const uint32_t &remote_port, string &sockid)
 Create a bound and connected TCP socket.
XrlCmdError socket4_0_1_udp_open_bind_connect (const string &creator, const IPv4 &local_addr, const uint32_t &local_port, const IPv4 &remote_addr, const uint32_t &remote_port, string &sockid)
 Create a bound and connected UDP socket.
XrlCmdError socket4_0_1_udp_open_bind_broadcast (const string &creator, const string &ifname, const string &vifname, const uint32_t &local_port, const uint32_t &remote_port, const bool &reuse, const bool &limited, const bool &connected, string &sockid)
 Create a bound and connected UDP broadcast socket.
XrlCmdError socket4_0_1_bind (const string &sockid, const IPv4 &local_addr, const uint32_t &local_port)
 Bind a socket.
XrlCmdError socket4_0_1_udp_join_group (const string &sockid, const IPv4 &mcast_addr, const IPv4 &join_if_addr)
 Join multicast group on already bound socket.
XrlCmdError socket4_0_1_udp_leave_group (const string &sockid, const IPv4 &mcast_addr, const IPv4 &leave_if_addr)
 Leave multicast group on already bound socket.
XrlCmdError socket4_0_1_close (const string &sockid)
 Close socket.
XrlCmdError socket4_0_1_tcp_listen (const string &sockid, const uint32_t &backlog)
 Listen for inbound connections on socket.
XrlCmdError socket4_0_1_udp_enable_recv (const string &sockid)
 Enable a UDP socket for datagram reception.
XrlCmdError socket4_0_1_send (const string &sockid, const vector< uint8_t > &data)
 Send data on socket.
XrlCmdError socket4_0_1_send_to (const string &sockid, const IPv4 &remote_addr, const uint32_t &remote_port, const vector< uint8_t > &data)
 Send data on socket to a given destination.
XrlCmdError socket4_0_1_send_from_multicast_if (const string &sockid, const IPv4 &group_addr, const uint32_t &group_port, const IPv4 &ifaddr, const vector< uint8_t > &data)
 Send data on socket to a given multicast group from a given interface.
XrlCmdError socket4_0_1_set_socket_option (const string &sockid, const string &optname, const uint32_t &optval)
 Set a named socket option with an integer value.
XrlCmdError socket4_0_1_set_socket_option_txt (const string &sockid, const string &optname, const string &optval)
 Set a named socket option with a text value.
XrlCmdError profile_0_1_enable (const string &pname)
 Pure-virtual function that needs to be implemented to:
XrlCmdError profile_0_1_disable (const string &pname)
 Pure-virtual function that needs to be implemented to:
XrlCmdError profile_0_1_get_entries (const string &pname, const string &instance_name)
 Pure-virtual function that needs to be implemented to:
XrlCmdError profile_0_1_clear (const string &pname)
 Pure-virtual function that needs to be implemented to:
XrlCmdError profile_0_1_list (string &info)
 Pure-virtual function that needs to be implemented to:

Private Member Functions

int add_remove_mac (bool add, const string &ifname, const Mac &mac, string &error_msg)
 Add/remove a multicast MAC address on an interface.
int set_mac (const string &ifname, const Mac &mac, string &error_msg)
 Set the MAC address on an interface.
int add_remove_address (bool add, const string &ifname, const string &vifname, const IPv4 &ip, uint32_t prefix, string &error_msg)
int send_gratuitous_arps (const string &ifname, const Mac &mac, string &error_msg)
 Send gratuitous ARP packets for all IP addresses on on an interface.

Private Attributes

EventLoop_eventloop
FeaNode_fea_node
XrlRouter_xrl_router
Profile_profile
XrlFibClientManager_xrl_fib_client_manager
IfConfig_ifconfig
FirewallManager_firewall_manager
FibConfig_fibconfig
IoLinkManager_io_link_manager
IoIpManager_io_ip_manager
IoTcpUdpManager_io_tcpudp_manager
LibFeaClientBridge_lib_fea_client_bridge
bool _is_running
bool _is_shutdown_received

Detailed Description

FEA (Forwarding Engine Abstraction) XRL target class.


Constructor & Destructor Documentation

XrlFeaTarget::XrlFeaTarget ( EventLoop eventloop,
FeaNode fea_node,
XrlRouter xrl_router,
Profile profile,
XrlFibClientManager xrl_fib_client_manager,
LibFeaClientBridge lib_fea_client_bridge 
)

Constructor.

Parameters:
eventloopthe event loop to use.

Member Function Documentation

int XrlFeaTarget::add_remove_mac ( bool  add,
const string &  ifname,
const Mac mac,
string &  error_msg 
) [private]

Add/remove a multicast MAC address on an interface.

Parameters:
addif true, then add the address, otherwise remove it.
ifnamethe interface name.
macthe address to add/remove.
error_msgthe error message (if error).
Returns:
XORP_OK on success, otherwise XORP_ERROR.
XrlCmdError XrlFeaTarget::common_0_1_get_target_name ( string &  name) [virtual]

Pure-virtual function that needs to be implemented to:

Get name of Xrl Target

Implements XrlFeaTargetBase.

XrlCmdError XrlFeaTarget::common_0_1_get_version ( string &  version) [virtual]

Pure-virtual function that needs to be implemented to:

Get version string from Xrl Target

Implements XrlFeaTargetBase.

XrlCmdError XrlFeaTarget::common_0_1_startup ( ) [inline, virtual]

Pure-virtual function that needs to be implemented to:

Request a startup of Xrl Target

Implements XrlFeaTargetBase.

EventLoop& XrlFeaTarget::eventloop ( ) [inline]

Get the event loop this service is added to.

Returns:
the event loop this service is added to.
XrlCmdError XrlFeaTarget::fea_fib_0_1_add_fib_client4 ( const string &  client_target_name,
const bool &  send_updates,
const bool &  send_resolves 
) [virtual]

Add a FIB client.

Parameters:
client_target_namethe target name of the FIB client to add.
send_updateswhether updates should be sent.
send_resolveswhether resolve requests should be sent.
target_namethe target name of the FIB client to add.

Implements XrlFeaTargetBase.

XrlCmdError XrlFeaTarget::fea_fib_0_1_delete_fib_client4 ( const string &  client_target_name) [virtual]

Delete a FIB client.

Parameters:
target_namethe target name of the FIB client to delete.

Implements XrlFeaTargetBase.

XrlCmdError XrlFeaTarget::fea_firewall_0_1_abort_transaction ( const uint32_t &  tid) [virtual]

Abort firewall configuration transaction.

Parameters:
tidthe transaction ID for this operation.

Implements XrlFeaTargetBase.

XrlCmdError XrlFeaTarget::fea_firewall_0_1_add_entry4 ( const uint32_t &  tid,
const uint32_t &  rule_number,
const string &  ifname,
const string &  vifname,
const IPv4Net src_network,
const IPv4Net dst_network,
const uint32_t &  ip_protocol,
const uint32_t &  src_port_begin,
const uint32_t &  src_port_end,
const uint32_t &  dst_port_begin,
const uint32_t &  dst_port_end,
const string &  action 
) [virtual]

Add an IPv4 firewall entry.

Parameters:
tidthe transaction ID for this operation.
rule_numberthe rule number for this entry.
ifnamethe name of the interface where this filter is to be applied.
vifnamethe name of the vif where this filter is to be applied.
src_networkthe source IPv4 network address prefix.
dst_networkthe destination IPv4 network address prefix.
ip_protocolthe IP protocol number (1-255, or 0 if wildcard).
src_port_beginthe source TCP/UDP begin port (0-65535).
src_port_endthe source TCP/UDP end port (0-65535).
dst_port_beginthe destination TCP/UDP begin port (0-65535).
dst_port_endthe destination TCP/UDP end port (0-65535).
actionthe action to be taken when this filter is matched. It is one of the following keywords: "none", "pass", "drop", "reject".

Implements XrlFeaTargetBase.

XrlCmdError XrlFeaTarget::fea_firewall_0_1_commit_transaction ( const uint32_t &  tid) [virtual]

Commit firewall configuration transaction.

Parameters:
tidthe transaction ID for this operation.

Implements XrlFeaTargetBase.

XrlCmdError XrlFeaTarget::fea_firewall_0_1_delete_all_entries4 ( const uint32_t &  tid) [virtual]

Delete all IPv4 firewall entries.

Parameters:
tidthe transaction ID for this operation.

Implements XrlFeaTargetBase.

XrlCmdError XrlFeaTarget::fea_firewall_0_1_delete_entry4 ( const uint32_t &  tid,
const uint32_t &  rule_number,
const string &  ifname,
const string &  vifname,
const IPv4Net src_network,
const IPv4Net dst_network,
const uint32_t &  ip_protocol,
const uint32_t &  src_port_begin,
const uint32_t &  src_port_end,
const uint32_t &  dst_port_begin,
const uint32_t &  dst_port_end 
) [virtual]

Delete an IPv4 firewall entry.

Parameters:
tidthe transaction ID for this operation.
rule_numberthe rule number for this entry.
ifnamethe name of the interface where this filter is to be deleted.
vifnamethe name of the vif where this filter is to be deleted.
src_networkthe source IPv4 network address prefix.
dst_networkthe destination IPv4 network address prefix.
ip_protocolthe IP protocol number (1-255, or 0 if wildcard).
src_port_beginthe source TCP/UDP begin port (0-65535).
src_port_endthe source TCP/UDP end port (0-65535).
dst_port_beginthe destination TCP/UDP begin port (0-65535).
dst_port_endthe destination TCP/UDP end port (0-65535).

Implements XrlFeaTargetBase.

XrlCmdError XrlFeaTarget::fea_firewall_0_1_get_entry_list_next4 ( const uint32_t &  token,
uint32_t &  rule_number,
string &  ifname,
string &  vifname,
IPv4Net src_network,
IPv4Net dst_network,
uint32_t &  ip_protocol,
uint32_t &  src_port_begin,
uint32_t &  src_port_end,
uint32_t &  dst_port_begin,
uint32_t &  dst_port_end,
string &  action,
bool &  more 
) [virtual]

Get the next item in a list of IPv4 firewall entries.

Parameters:
tokenreturned by a previous call to get_entry_list_start4.
rule_numberthe rule number for this entry.
ifnamethe name of the interface where this filter exists.
vifnamethe name of the vif where this filter exists.
src_networkthe source IPv4 network address prefix.
dst_networkthe destination IPv4 network address prefix.
ip_protocolthe IP protocol number (1-255, or 0 if wildcard).
src_port_beginthe source TCP/UDP begin port (0-65535).
src_port_endthe source TCP/UDP end port (0-65535).
dst_port_beginthe destination TCP/UDP begin port (0-65535).
dst_port_endthe destination TCP/UDP end port (0-65535).
actionthe action taken when this filter is matched. It is one of the following keywords: "none", "pass", "drop", "reject".
moretrue if the list has more items remaining.

Implements XrlFeaTargetBase.

XrlCmdError XrlFeaTarget::fea_firewall_0_1_get_entry_list_start4 ( uint32_t &  token,
bool &  more 
) [virtual]

Get a token for a list of IPv4 firewall entries.

Parameters:
tokento be provided when calling get_entry_list_next4.
moretrue if the list is not empty.

Implements XrlFeaTargetBase.

XrlCmdError XrlFeaTarget::fea_firewall_0_1_replace_entry4 ( const uint32_t &  tid,
const uint32_t &  rule_number,
const string &  ifname,
const string &  vifname,
const IPv4Net src_network,
const IPv4Net dst_network,
const uint32_t &  ip_protocol,
const uint32_t &  src_port_begin,
const uint32_t &  src_port_end,
const uint32_t &  dst_port_begin,
const uint32_t &  dst_port_end,
const string &  action 
) [virtual]

Replace an IPv4 firewall entry.

Parameters:
tidthe transaction ID for this operation.
rule_numberthe rule number for this entry.
ifnamethe name of the interface where this filter is to be applied.
vifnamethe name of the vif where this filter is to be applied.
src_networkthe source IPv4 network address prefix.
dst_networkthe destination IPv4 network address prefix.
ip_protocolthe IP protocol number (1-255, or 0 if wildcard).
src_port_beginthe source TCP/UDP begin port (0-65535).
src_port_endthe source TCP/UDP end port (0-65535).
dst_port_beginthe destination TCP/UDP begin port (0-65535).
dst_port_endthe destination TCP/UDP end port (0-65535).
actionthe action to be taken when this filter is matched. It is one of the following keywords: "none", "pass", "drop", "reject".

Implements XrlFeaTargetBase.

XrlCmdError XrlFeaTarget::fea_firewall_0_1_start_transaction ( uint32_t &  tid) [virtual]

Start firewall configuration transaction.

Parameters:
tidthe transaction ID returned by this operation.

Implements XrlFeaTargetBase.

XrlCmdError XrlFeaTarget::fea_firewall_0_1_startup_firewall ( ) [virtual]

Does nothing, but allows us to have rtrmgr verify startup.

Implements XrlFeaTargetBase.

XrlCmdError XrlFeaTarget::finder_event_observer_0_1_xrl_target_birth ( const string &  target_class,
const string &  target_instance 
) [virtual]

Announce target birth to observer.

Parameters:
target_classthe target class name.
target_instancethe target instance name.

Implements XrlFeaTargetBase.

XrlCmdError XrlFeaTarget::finder_event_observer_0_1_xrl_target_death ( const string &  target_class,
const string &  target_instance 
) [virtual]

Announce target death to observer.

Parameters:
target_classthe target class name.
target_instancethe target instance name.

Implements XrlFeaTargetBase.

XrlCmdError XrlFeaTarget::fti_0_2_get_unicast_forwarding_enabled4 ( bool &  enabled) [virtual]

Pure-virtual function that needs to be implemented to:

Test whether the IPv4 unicast forwarding engine is enabled or disabled to forward packets.

Parameters:
enabledif true, then the IPv4 unicast forwarding is enabled, otherwise is disabled.

Implements XrlFeaTargetBase.

XrlCmdError XrlFeaTarget::fti_0_2_have_ipv4 ( bool &  result) [virtual]

Pure-virtual function that needs to be implemented to:

Test if the underlying system supports IPv4.

Parameters:
resulttrue if the underlying system supports IPv4, otherwise false.

Implements XrlFeaTargetBase.

XrlCmdError XrlFeaTarget::fti_0_2_lookup_route_by_dest4 ( const IPv4 dst,
IPv4Net netmask,
IPv4 nexthop,
string &  ifname,
string &  vifname,
uint32_t &  metric,
uint32_t &  admin_distance,
string &  protocol_origin 
) [virtual]

Pure-virtual function that needs to be implemented to:

Lookup a route for a destination host address.

Parameters:
dstthe destination host address to lookup.
nexthopthe address of the next-hop router toward dst.
ifnamethe name of the physical interface toward dst.
vifnamethe name of the virtual interface toward dst.
metricthe routing metric toward dst.
admin_distancethe administratively defined distance toward dst.
protocol_originthe name of the protocol that originated this routing entry.

Implements XrlFeaTargetBase.

XrlCmdError XrlFeaTarget::fti_0_2_lookup_route_by_network4 ( const IPv4Net dst,
IPv4 nexthop,
string &  ifname,
string &  vifname,
uint32_t &  metric,
uint32_t &  admin_distance,
string &  protocol_origin 
) [virtual]

Pure-virtual function that needs to be implemented to:

Lookup a route for a destination subnet address.

Parameters:
dstthe destination subnet address to lookup.
nexthopthe address of the next-hop router toward dst.
ifnamethe name of the physical interface toward dst.
vifnamethe name of the virtual interface toward dst.
metricthe routing metric toward dst.
admin_distancethe administratively defined distance toward dst.
protocol_originthe name of the protocol that originated this routing entry.

Implements XrlFeaTargetBase.

XrlCmdError XrlFeaTarget::fti_0_2_set_unicast_forwarding_enabled4 ( const bool &  enabled) [virtual]

Pure-virtual function that needs to be implemented to:

Set the IPv4 unicast forwarding engine to enable or disable forwarding of packets.

Parameters:
enabledif true, then enable IPv4 unicast forwarding, otherwise disable it.

Implements XrlFeaTargetBase.

XrlCmdError XrlFeaTarget::fti_0_2_set_unicast_forwarding_entries_retain_on_shutdown4 ( const bool &  retain) [virtual]

Set the IPv4 unicast forwarding engine whether to retain existing XORP forwarding entries on shutdown.

Parameters:
retainif true, then retain the XORP forwarding entries, otherwise delete them.

Implements XrlFeaTargetBase.

XrlCmdError XrlFeaTarget::fti_0_2_set_unicast_forwarding_entries_retain_on_startup4 ( const bool &  retain) [virtual]

Set the IPv4 unicast forwarding engine whether to retain existing XORP forwarding entries on startup.

Parameters:
retainif true, then retain the XORP forwarding entries, otherwise delete them.

Implements XrlFeaTargetBase.

XrlCmdError XrlFeaTarget::fti_0_2_set_unicast_forwarding_table_id4 ( const bool &  is_configured,
const uint32_t &  table_id 
) [virtual]

Set the IPv4 unicast forwarding table ID to be used.

Parameters:
is_configuredif true, the forwarding table ID is configured, otherwise the default table should be used.
table_idthe IPv4 unicast forwarding table ID to be used.

Implements XrlFeaTargetBase.

XrlCmdError XrlFeaTarget::ifmgr_0_1_configure_all_interfaces_from_system ( const uint32_t &  tid,
const bool &  enable 
) [virtual]

Implicitly configure all interfaces within the FEA by using information from the underlying system.

Parameters:
tidthe transaction ID.
enableif true, then enable the implicit configuration, otherwise disable it.

Implements XrlFeaTargetBase.

XrlCmdError XrlFeaTarget::ifmgr_0_1_configure_interface_from_system ( const uint32_t &  tid,
const string &  ifname,
const bool &  enable 
) [virtual]

Implicitly configure an interface within the FEA by using information from the underlying system.

Parameters:
tidthe transaction ID.
ifnamethe name of the interface to configure.
enableif true, then enable the implicit configuration, otherwise disable it.

Implements XrlFeaTargetBase.

XrlCmdError XrlFeaTarget::ifmgr_0_1_create_vif ( const uint32_t &  tid,
const string &  ifname,
const string &  vif 
) [virtual]

Pure-virtual function that needs to be implemented to:

Create a vif.

Parameters:
ifnamethe name of the physical interface associated with the new vif.
vifname for new vif, must be unique across all the vifs in the system.

Implements XrlFeaTargetBase.

XrlCmdError XrlFeaTarget::ifmgr_0_1_startup_ifmgr ( ) [virtual]

Does nothing, but allows us to have rtrmgr verify startup.

Implements XrlFeaTargetBase.

XrlCmdError XrlFeaTarget::ifmgr_replicator_0_1_register_ifmgr_mirror ( const string &  clientname) [virtual]

Pure-virtual function that needs to be implemented to:

Register remote mirror of interface state.

Implements XrlFeaTargetBase.

XrlCmdError XrlFeaTarget::ifmgr_replicator_0_1_unregister_ifmgr_mirror ( const string &  clientname) [virtual]

Pure-virtual function that needs to be implemented to:

Register remote mirror of interface state.

Implements XrlFeaTargetBase.

bool XrlFeaTarget::is_running ( ) const

Test whether the service is running.

Returns:
true if the service is still running, otherwise false.
bool XrlFeaTarget::is_shutdown_received ( ) const [inline]

Test whether a shutdown XRL request has been received.

Returns:
true if shutdown XRL request has been received, otherwise false.
XrlCmdError XrlFeaTarget::profile_0_1_clear ( const string &  pname) [virtual]

Pure-virtual function that needs to be implemented to:

Clear the profiling entries

Parameters:
pnameprofile variable

Implements XrlFeaTargetBase.

XrlCmdError XrlFeaTarget::profile_0_1_disable ( const string &  pname) [virtual]

Pure-virtual function that needs to be implemented to:

Disable profiling

Parameters:
pnameprofile variable

Implements XrlFeaTargetBase.

XrlCmdError XrlFeaTarget::profile_0_1_enable ( const string &  pname) [virtual]

Pure-virtual function that needs to be implemented to:

Enable profiling

Parameters:
pnameprofile variable

Implements XrlFeaTargetBase.

XrlCmdError XrlFeaTarget::profile_0_1_get_entries ( const string &  pname,
const string &  instance_name 
) [virtual]

Pure-virtual function that needs to be implemented to:

Get log entries.

Parameters:
pnameprofile variable
instance_nameto send the profiling info to.

Implements XrlFeaTargetBase.

XrlCmdError XrlFeaTarget::profile_0_1_list ( string &  info) [virtual]

Pure-virtual function that needs to be implemented to:

List all the profiling variables registered with this target.

Implements XrlFeaTargetBase.

XrlCmdError XrlFeaTarget::raw_link_0_1_join_multicast_group ( const string &  xrl_target_instance_name,
const string &  if_name,
const string &  vif_name,
const uint32_t &  ether_type,
const string &  filter_program,
const Mac group_address 
) [virtual]

Join a MAC multicast group.

Parameters:
xrl_target_instance_namethe receiver's XRL target instance name.
if_namethe interface through which packets should be accepted.
vif_namethe vif through which packets should be accepted.
ether_typethe EtherType protocol number or the Destination SAP that the receiver is interested in. It must be between 1536 and 65535 to specify the EtherType, or between 1 and 255 to specify the Destination SAP for IEEE 802.2 LLC frames. A protocol number of 0 is used to specify all protocols.
filter_programthe filter program to be applied on the received packets. The program uses tcpdump(1) style expression.
group_addressthe multicast group address to join.

Implements XrlFeaTargetBase.

XrlCmdError XrlFeaTarget::raw_link_0_1_leave_multicast_group ( const string &  xrl_target_instance_name,
const string &  if_name,
const string &  vif_name,
const uint32_t &  ether_type,
const string &  filter_program,
const Mac group_address 
) [virtual]

Leave a MAC multicast group.

Parameters:
xrl_target_instance_namethe receiver's XRL target instance name.
if_namethe interface through which packets should not be accepted.
vif_namethe vif through which packets should not be accepted.
ether_typethe EtherType protocol number or the Destination SAP that the receiver is not interested in anymore. It must be between 1536 and 65535 to specify the EtherType, or between 1 and 255 to specify the Destination SAP for IEEE 802.2 LLC frames. A protocol number of 0 is used to specify all protocols.
filter_programthe filter program that was applied on the received packets. The program uses tcpdump(1) style expression.
group_addressthe multicast group address to leave.

Implements XrlFeaTargetBase.

XrlCmdError XrlFeaTarget::raw_link_0_1_register_receiver ( const string &  xrl_target_instance_name,
const string &  if_name,
const string &  vif_name,
const uint32_t &  ether_type,
const string &  filter_program,
const bool &  enable_multicast_loopback 
) [virtual]

Register to receive raw link-level packets.

The receiver is expected to support raw_link_client/0.1 interface.

Parameters:
xrl_target_instance_namethe receiver's XRL target instance name.
if_namethe interface through which packets should be accepted.
vif_namethe vif through which packets should be accepted.
ether_typethe EtherType protocol number or the Destination SAP that the receiver is interested in. It must be between 1536 and 65535 to specify the EtherType, or between 1 and 255 to specify the Destination SAP for IEEE 802.2 LLC frames. A protocol number of 0 is used to specify all protocols.
filter_programthe filter program to be applied on the received packets. The program uses tcpdump(1) style expression.
enable_multicast_loopbackif true then enable delivering of multicast datagrams back to this host (assuming the host is a member of the same multicast group).

Implements XrlFeaTargetBase.

XrlCmdError XrlFeaTarget::raw_link_0_1_send ( const string &  if_name,
const string &  vif_name,
const Mac src_address,
const Mac dst_address,
const uint32_t &  ether_type,
const vector< uint8_t > &  payload 
) [virtual]

Send a raw link-level packet on an interface.

Parameters:
if_namethe interface to send the packet on.
vif_namethe vif to send the packet on.
src_addressthe MAC source address.
dst_addressthe MAC destination address.
ether_typethe EtherType protocol type or the Destination SAP. It must be between 1536 and 65535 to specify the EtherType, or between 1 and 255 to specify the Destination SAP IEEE 802.2 LLC frames.
payloadthe payload, everything after the MAC header.

Implements XrlFeaTargetBase.

XrlCmdError XrlFeaTarget::raw_link_0_1_unregister_receiver ( const string &  xrl_target_instance_name,
const string &  if_name,
const string &  vif_name,
const uint32_t &  ether_type,
const string &  filter_program 
) [virtual]

Unregister to receive raw link-level packets.

Parameters:
xrl_target_instance_namethe receiver's XRL target instance name.
if_namethe interface through which packets should not be accepted.
vif_namethe vif through which packets should not be accepted.
ether_typethe EtherType protocol number or the Destination SAP that the receiver is not interested in anymore. It must be between 1536 and 65535 to specify the EtherType, or between 1 and 255 to specify the Destination SAP for IEEE 802.2 LLC frames. A protocol number of 0 is used to specify all protocols.
filter_programthe filter program that was applied on the received packets. The program uses tcpdump(1) style expression.

Implements XrlFeaTargetBase.

XrlCmdError XrlFeaTarget::raw_packet4_0_1_join_multicast_group ( const string &  xrl_target_instance_name,
const string &  if_name,
const string &  vif_name,
const uint32_t &  ip_protocol,
const IPv4 group_address 
) [virtual]

Join an IPv4 multicast group.

Parameters:
xrl_target_instance_namethe receiver's XRL target instance name.
if_namethe interface through which packets should be accepted.
vif_namethe vif through which packets should be accepted.
ip_protocolthe IP protocol number that the receiver is interested in. It must be between 0 and 255. A protocol number of 0 is used to specify all protocols.
group_addressthe multicast group address to join.

Implements XrlFeaTargetBase.

XrlCmdError XrlFeaTarget::raw_packet4_0_1_leave_multicast_group ( const string &  xrl_target_instance_name,
const string &  if_name,
const string &  vif_name,
const uint32_t &  ip_protocol,
const IPv4 group_address 
) [virtual]

Leave an IPv4 multicast group.

Parameters:
xrl_target_instance_namethe receiver's XRL target instance name.
if_namethe interface through which packets should not be accepted.
vif_namethe vif through which packets should not be accepted.
ip_protocolthe IP protocol number that the receiver is not interested in anymore. It must be between 0 and 255. A protocol number of 0 is used to specify all protocols.
group_addressthe multicast group address to leave.

Implements XrlFeaTargetBase.

XrlCmdError XrlFeaTarget::raw_packet4_0_1_register_receiver ( const string &  xrl_target_instance_name,
const string &  if_name,
const string &  vif_name,
const uint32_t &  ip_protocol,
const bool &  enable_multicast_loopback 
) [virtual]

Register to receive IPv4 packets.

The receiver is expected to support raw_packet4_client/0.1 interface.

Parameters:
xrl_target_instance_namethe receiver's XRL target instance name.
if_namethe interface through which packets should be accepted.
vif_namethe vif through which packets should be accepted.
ip_protocolthe IP protocol number that the receiver is interested in. It must be between 0 and 255. A protocol number of 0 is used to specify all protocols.
enable_multicast_loopbackif true then enable delivering of multicast datagrams back to this host (assuming the host is a member of the same multicast group.

Implements XrlFeaTargetBase.

XrlCmdError XrlFeaTarget::raw_packet4_0_1_send ( 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 bool &  ip_internet_control,
const vector< uint8_t > &  payload 
) [virtual]

Send an IPv4 packet on a raw socket.

Parameters:
if_namethe interface to send the packet on. It is essential for multicast. In the unicast case this field may be empty.
vif_namethe vif to send the packet on. It is essential for multicast. In the unicast case this field may be empty.
src_addressthe IP source address.
dst_addressthe IP destination address.
ip_protocolthe IP protocol number. It must be between 1 and 255.
ip_ttlthe IP TTL (hop-limit). If it has a negative value, the TTL will be set internally before transmission.
ip_tosthe Type Of Service (Diffserv/ECN bits for IPv4). If it has a negative value, the TOS will be set internally before transmission.
ip_router_alertif true, then add the IP Router Alert option to the IP packet.
ip_internet_controlif true, then this is IP control traffic.
payloadthe payload, everything after the IP header and options.

Implements XrlFeaTargetBase.

XrlCmdError XrlFeaTarget::raw_packet4_0_1_unregister_receiver ( const string &  xrl_target_instance_name,
const string &  if_name,
const string &  vif_name,
const uint32_t &  ip_protocol 
) [virtual]

Unregister to receive IPv4 packets.

Parameters:
xrl_target_instance_namethe receiver's XRL target instance name.
if_namethe interface through which packets should not be accepted.
vif_namethe vif through which packets should not be accepted.
ip_protocolthe IP Protocol number that the receiver is not interested in anymore. It must be between 0 and 255. A protocol number of 0 is used to specify all protocols.

Implements XrlFeaTargetBase.

XrlCmdError XrlFeaTarget::redist_transaction4_0_1_abort_transaction ( const uint32_t &  tid) [virtual]

Abort transaction.

Parameters:
tidthe transaction ID of this transaction.

Implements XrlFeaTargetBase.

XrlCmdError XrlFeaTarget::redist_transaction4_0_1_add_route ( const uint32_t &  tid,
const IPv4Net dst,
const IPv4 nexthop,
const string &  ifname,
const string &  vifname,
const uint32_t &  metric,
const uint32_t &  admin_distance,
const string &  cookie,
const string &  protocol_origin 
) [virtual]

Add/delete a routing entry.

Parameters:
tidthe transaction ID of this transaction.
dstdestination network.
nexthopnexthop router address.
ifnameinterface name associated with nexthop.
vifnamevirtual interface name with nexthop.
metricorigin routing protocol metric for route.
admin_distanceadministrative distance of origin routing protocol.
cookievalue set by the requestor to identify redistribution source. Typical value is the originating protocol name.
protocol_originthe name of the protocol that originated this routing entry.

Implements XrlFeaTargetBase.

XrlCmdError XrlFeaTarget::redist_transaction4_0_1_commit_transaction ( const uint32_t &  tid) [virtual]

Commit transaction.

Parameters:
tidthe transaction ID of this transaction.

Implements XrlFeaTargetBase.

XrlCmdError XrlFeaTarget::redist_transaction4_0_1_delete_all_routes ( const uint32_t &  tid,
const string &  cookie 
) [virtual]

Delete all routing entries.

Parameters:
tidthe transaction ID of this transaction.
cookievalue set by the requestor to identify redistribution source. Typical value is the originating protocol name.

Implements XrlFeaTargetBase.

XrlCmdError XrlFeaTarget::redist_transaction4_0_1_start_transaction ( uint32_t &  tid) [virtual]

Start transaction.

Parameters:
tidthe transaction ID to use for this transaction.

Implements XrlFeaTargetBase.

int XrlFeaTarget::send_gratuitous_arps ( const string &  ifname,
const Mac mac,
string &  error_msg 
) [private]

Send gratuitous ARP packets for all IP addresses on on an interface.

Parameters:
ifnamethe interface name.
macthe MAC address that is to be updated.
error_msgthe error message (if error).
Returns:
XORP_OK on success, otherwise XORP_ERROR.
int XrlFeaTarget::set_mac ( const string &  ifname,
const Mac mac,
string &  error_msg 
) [private]

Set the MAC address on an interface.

Parameters:
ifnamethe interface name.
macthe address to set.
error_msgthe error message (if error).
Returns:
XORP_OK on success, otherwise XORP_ERROR.
int XrlFeaTarget::shutdown ( )

Shutdown the service operation.

Returns:
XORP_OK on success, otherwise XORP_ERROR.
XrlCmdError XrlFeaTarget::socket4_0_1_bind ( const string &  sockid,
const IPv4 local_addr,
const uint32_t &  local_port 
) [virtual]

Bind a socket.

Parameters:
sockidthe socket ID of the socket to bind.
local_addrthe interface address to bind socket to.
local_portthe port to bind socket to.

Implements XrlFeaTargetBase.

XrlCmdError XrlFeaTarget::socket4_0_1_close ( const string &  sockid) [virtual]

Close socket.

Parameters:
sockidunique socket ID of socket to be closed.

Implements XrlFeaTargetBase.

XrlCmdError XrlFeaTarget::socket4_0_1_send ( const string &  sockid,
const vector< uint8_t > &  data 
) [virtual]

Send data on socket.

Parameters:
sockidunique socket ID.
datablock of data to be sent.

Implements XrlFeaTargetBase.

XrlCmdError XrlFeaTarget::socket4_0_1_send_from_multicast_if ( const string &  sockid,
const IPv4 group_addr,
const uint32_t &  group_port,
const IPv4 ifaddr,
const vector< uint8_t > &  data 
) [virtual]

Send data on socket to a given multicast group from a given interface.

Parameters:
sockidunique socket ID.
group_addrdestination address for data.
group_portdestination port for data.
ifaddrinterface address

Implements XrlFeaTargetBase.

XrlCmdError XrlFeaTarget::socket4_0_1_send_to ( const string &  sockid,
const IPv4 remote_addr,
const uint32_t &  remote_port,
const vector< uint8_t > &  data 
) [virtual]

Send data on socket to a given destination.

The packet is not routed as the forwarding engine sending the packet may not have access to the full routing table.

Parameters:
sockidunique socket ID.
remote_addrdestination address for data.
remote_portdestination port for data.
datablock of data to be sent.

Implements XrlFeaTargetBase.

XrlCmdError XrlFeaTarget::socket4_0_1_set_socket_option ( const string &  sockid,
const string &  optname,
const uint32_t &  optval 
) [virtual]

Set a named socket option with an integer value.

Parameters:
sockidunique socket ID.
optnamename of option to be set. Valid values are: "onesbcast" "receive_broadcast" "reuseport" "send_broadcast" "tos" "ttl" "multicast_loopback" "multicast_ttl"
optvalvalue of option to be set. If value is logically boolean then zero represents false and any non-zero value true.

Implements XrlFeaTargetBase.

XrlCmdError XrlFeaTarget::socket4_0_1_set_socket_option_txt ( const string &  sockid,
const string &  optname,
const string &  optval 
) [virtual]

Set a named socket option with a text value.

XXX: The "bindtodevice" option exists to workaround an architectural issue in the Linux Ipv4 stack. It SHOULD NOT be used for new code.

Parameters:
sockidunique socket ID.
optnamename of option to be set. Valid values are: "bindtodevice"
optvalvalue of option to be set. If value is logically boolean then zero represents false and any non-zero value true.

Implements XrlFeaTargetBase.

XrlCmdError XrlFeaTarget::socket4_0_1_tcp_listen ( const string &  sockid,
const uint32_t &  backlog 
) [virtual]

Listen for inbound connections on socket.

When a connection request received the socket creator will receive notification through socket4_user/0.1/connect_event.

Parameters:
sockidthe unique socket ID of the socket to perform listen.
backlogthe maximum number of pending connections.

Implements XrlFeaTargetBase.

XrlCmdError XrlFeaTarget::socket4_0_1_tcp_open ( const string &  creator,
string &  sockid 
) [virtual]

Open a TCP socket.

Parameters:
creatorthe Xrl Target instance name of the socket creator. The named target must implement socket4_user/0.1.
sockidreturn parameter that contains unique socket ID when socket instantiation is successful.

Implements XrlFeaTargetBase.

XrlCmdError XrlFeaTarget::socket4_0_1_tcp_open_and_bind ( const string &  creator,
const IPv4 local_addr,
const uint32_t &  local_port,
string &  sockid 
) [virtual]

Create a bound TCP socket.

Parameters:
creatorthe Xrl Target instance name of the socket creator. The named target must implement socket4_user/0.1.
local_addrthe interface address to bind socket to.
local_portthe port to bind socket to.
sockidreturn parameter that contains unique socket ID when socket instantiation is successful.

Implements XrlFeaTargetBase.

XrlCmdError XrlFeaTarget::socket4_0_1_tcp_open_bind_connect ( const string &  creator,
const IPv4 local_addr,
const uint32_t &  local_port,
const IPv4 remote_addr,
const uint32_t &  remote_port,
string &  sockid 
) [virtual]

Create a bound and connected TCP socket.

Parameters:
creatorthe Xrl Target instance name of the socket creator. The named target must implement socket4_user/0.1.
local_addrthe interface address to bind socket to.
local_portthe port to bind socket to.
remote_addrthe address to connect to.
remote_portthe remote port to connect to.
sockidreturn parameter that contains unique socket ID when socket instantiation is successful.

Implements XrlFeaTargetBase.

XrlCmdError XrlFeaTarget::socket4_0_1_udp_enable_recv ( const string &  sockid) [virtual]

Enable a UDP socket for datagram reception.

If a UDP socket has been created without using the usual convenience XRLs, it is necessary to hook up its FEA internal input path by calling this XRL. It is similar in intent to tcp_listen, but named differently as it never uses the listen() socket API.

Parameters:
sockidthe unique socket ID of the socket to enable for datagram reception.

Implements XrlFeaTargetBase.

XrlCmdError XrlFeaTarget::socket4_0_1_udp_join_group ( const string &  sockid,
const IPv4 mcast_addr,
const IPv4 join_if_addr 
) [virtual]

Join multicast group on already bound socket.

Parameters:
sockidunique socket ID.
mcast_addrgroup to join.
join_if_addrinterface address to perform join on.

Implements XrlFeaTargetBase.

XrlCmdError XrlFeaTarget::socket4_0_1_udp_leave_group ( const string &  sockid,
const IPv4 mcast_addr,
const IPv4 leave_if_addr 
) [virtual]

Leave multicast group on already bound socket.

Parameters:
sockidunique socket ID.
mcast_addrgroup to leave.
leave_if_addrinterface address to perform leave on.

Implements XrlFeaTargetBase.

XrlCmdError XrlFeaTarget::socket4_0_1_udp_open ( const string &  creator,
string &  sockid 
) [virtual]

Open an UDP socket.

Parameters:
creatorthe Xrl Target instance name of the socket creator. The named target must implement socket4_user/0.1.
sockidreturn parameter that contains unique socket ID when socket instantiation is successful.

Implements XrlFeaTargetBase.

XrlCmdError XrlFeaTarget::socket4_0_1_udp_open_and_bind ( const string &  creator,
const IPv4 local_addr,
const uint32_t &  local_port,
const string &  local_dev,
const uint32_t &  reuse,
string &  sockid 
) [virtual]

Create a bound UDP socket.

Parameters:
creatorthe Xrl Target instance name of the socket creator. The named target must implement socket4_user/0.1.
local_addrthe interface address to bind socket to.
local_portthe port to bind socket to.
sockidreturn parameter that contains unique socket ID when socket instantiation is successful.

Implements XrlFeaTargetBase.

XrlCmdError XrlFeaTarget::socket4_0_1_udp_open_bind_broadcast ( const string &  creator,
const string &  ifname,
const string &  vifname,
const uint32_t &  local_port,
const uint32_t &  remote_port,
const bool &  reuse,
const bool &  limited,
const bool &  connected,
string &  sockid 
) [virtual]

Create a bound and connected UDP broadcast socket.

This socket may be used for sending and receiving IPv4 broadcasts on a named if/vif. The TTL is always set to 1 on creation. The creator must specify if this socket is to be used for limited broadcasts (255.255.255.255) as this is a special case on many platforms.

Parameters:
creatorthe Xrl Target instance name of the socket creator. The named target must implement socket4_user/0.1.
ifnamethe interface name to bind socket to.
vifnamethe vif to bind socket to.
local_portthe port to bind socket to.
remote_portthe remote port to connect to.
reuseallow other sockets to bind to same port.
limitedset the socket up for transmission to the limited broadcast address 255.255.255.255.
connectedconnect the socket for use with send() not sendto().
sockidreturn parameter that contains unique socket ID when socket instantiation is successful.

Implements XrlFeaTargetBase.

XrlCmdError XrlFeaTarget::socket4_0_1_udp_open_bind_connect ( const string &  creator,
const IPv4 local_addr,
const uint32_t &  local_port,
const IPv4 remote_addr,
const uint32_t &  remote_port,
string &  sockid 
) [virtual]

Create a bound and connected UDP socket.

Parameters:
creatorthe Xrl Target instance name of the socket creator. The named target must implement socket4_user/0.1.
local_addrthe interface address to bind socket to.
local_portthe port to bind socket to.
remote_addrthe address to connect to.
remote_portthe remote port to connect to.
sockidreturn parameter that contains unique socket ID when socket instantiation is successful.

Implements XrlFeaTargetBase.

XrlCmdError XrlFeaTarget::socket4_0_1_udp_open_bind_join ( const string &  creator,
const IPv4 local_addr,
const uint32_t &  local_port,
const IPv4 mcast_addr,
const uint32_t &  ttl,
const bool &  reuse,
string &  sockid 
) [virtual]

Create a bound UDP multicast socket.

Parameters:
creatorthe Xrl Target instance name of the socket creator. The named target must implement socket4_user/0.1.
local_addrthe interface address to bind socket to.
local_portthe port to bind socket to.
mcast_addrthe multicast group address to join.
ttlthe TTL to use for this multicast socket.
reuseallow other sockets to bind to same multicast group.
sockidreturn parameter that contains unique socket ID when socket instantiation is successful.

Implements XrlFeaTargetBase.

int XrlFeaTarget::startup ( )

Startup the service operation.

Returns:
XORP_OK on success, otherwise XORP_ERROR.

The documentation for this class was generated from the following files:
 All Classes Namespaces Functions Variables Typedefs Enumerations