| 
 | 
 | ||||||||||||||||
| IoTcpUdpManager (FeaNode& fea_node, const IfTree& iftree) | IoTcpUdpManager | 
Constructor for IoTcpUdpManager.
| ~IoTcpUdpManager () | ~IoTcpUdpManager | 
[virtual]
| int  tcp_open (int family, const string& creator, string& sockid,
		 string& error_msg) | tcp_open | 
Open a TCP socket.
Parameters:
| family | the address family (AF_INET or AF_INET6 for IPv4 and IPv6 respectively). | 
| creator | the name of the socket creator. | 
| sockid | return parameter that contains unique socket ID when socket instantiation is successful. | 
| error_msg | the error message (if error). | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
| int  udp_open (int family, const string& creator, string& sockid,
		 string& error_msg) | udp_open | 
Open an UDP socket.
Parameters:
| family | the address family (AF_INET or AF_INET6 for IPv4 and IPv6 respectively). | 
| creator | the name of the socket creator. | 
| sockid | return parameter that contains unique socket ID when socket instantiation is successful. | 
| error_msg | the error message (if error). | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
| int  tcp_open_and_bind (int family, const string& creator,
			  const IPvX& local_addr, uint16_t local_port,
			  string& sockid, string& error_msg) | tcp_open_and_bind | 
Create a bound TCP socket.
Parameters:
| family | the address family (AF_INET or AF_INET6 for IPv4 and IPv6 respectively). | 
| creator | the name of the socket creator. | 
| local_addr | the interface address to bind socket to. | 
| local_port | the port to bind socket to. | 
| sockid | return parameter that contains unique socket ID when socket instantiation is successful. | 
| error_msg | the error message (if error). | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
| int  udp_open_and_bind (int family, const string& creator,
			  const IPvX& local_addr, uint16_t local_port,
			  string& sockid, string& error_msg) | udp_open_and_bind | 
Create a bound UDP socket.
Parameters:
| family | the address family (AF_INET or AF_INET6 for IPv4 and IPv6 respectively). | 
| creator | the name of the socket creator. | 
| local_addr | the interface address to bind socket to. | 
| local_port | the port to bind socket to. | 
| sockid | return parameter that contains unique socket ID when socket instantiation is successful. | 
| error_msg | the error message (if error). | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
| int  udp_open_bind_join (int family, const string& creator,
			   const IPvX& local_addr, uint16_t local_port,
			   const IPvX& mcast_addr, uint8_t ttl, bool reuse,
			   string& sockid, string& error_msg) | udp_open_bind_join | 
Create a bound UDP multicast socket.
Parameters:
| family | the address family (AF_INET or AF_INET6 for IPv4 and IPv6 respectively). | 
| creator | the name of the socket creator. | 
| local_addr | the interface address to bind socket to. | 
| local_port | the port to bind socket to. | 
| mcast_addr | the multicast group address to join. | 
| ttl | the TTL to use for this multicast socket. | 
| reuse | allow other sockets to bind to same multicast group. | 
| sockid | return parameter that contains unique socket ID when socket instantiation is successful. | 
| error_msg | the error message (if error). | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
| int  tcp_open_bind_connect (int family, const string& creator,
			      const IPvX& local_addr, uint16_t local_port,
			      const IPvX& remote_addr, uint16_t remote_port,
			      string& sockid, string& error_msg) | tcp_open_bind_connect | 
Create a bound and connected TCP socket.
Parameters:
| family | the address family (AF_INET or AF_INET6 for IPv4 and IPv6 respectively). | 
| creator | the name of the socket creator. | 
| local_addr | the interface address to bind socket to. | 
| local_port | the port to bind socket to. | 
| remote_addr | the address to connect to. | 
| remote_port | the remote port to connect to. | 
| sockid | return parameter that contains unique socket ID when socket instantiation is successful. | 
| error_msg | the error message (if error). | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
| int  udp_open_bind_connect (int family, const string& creator,
			      const IPvX& local_addr, uint16_t local_port,
			      const IPvX& remote_addr, uint16_t remote_port,
			      string& sockid, string& error_msg) | udp_open_bind_connect | 
Create a bound and connected UDP socket.
Parameters:
| family | the address family (AF_INET or AF_INET6 for IPv4 and IPv6 respectively). | 
| creator | the name of the socket creator. | 
| local_addr | the interface address to bind socket to. | 
| local_port | the port to bind socket to. | 
| remote_addr | the address to connect to. | 
| remote_port | the remote port to connect to. | 
| sockid | return parameter that contains unique socket ID when socket instantiation is successful. | 
| error_msg | the error message (if error). | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
| int  udp_open_bind_broadcast (int family, const string& creator,
			        const string& ifname, const string& vifname,
			        uint16_t local_port, uint16_t remote_port,
			        bool reuse, bool limited, bool connected,
			        string& sockid, string& error_msg) | udp_open_bind_broadcast | 
Create a bound and connected UDP broadcast socket.
Parameters:
| family | the address family (AF_INET or AF_INET6 for IPv4 and IPv6 respectively). | 
| creator | the name of the socket creator. | 
| ifname | the interface name to bind socket to. | 
| vifname | the vif to bind socket to. | 
| local_port | the port to bind socket to. | 
| remote_port | the remote port to connect to. | 
| reuse | allow other sockets to bind to same port. | 
| limited | set the socket up for transmission to the limited broadcast address 255.255.255.255. | 
| connected | connect the socket for use with send() not sendto(). | 
| sockid | return parameter that contains unique socket ID when socket instantiation is successful. | 
| error_msg | the error message (if error). | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
| int  bind (int family, const string& sockid, const IPvX& local_addr,
	     uint16_t local_port, string& error_msg) | bind | 
Bind a socket.
Parameters:
| family | the address family (AF_INET or AF_INET6 for IPv4 and IPv6 respectively). | 
| sockid | the socket ID of the socket to bind. | 
| local_addr | the interface address to bind socket to. | 
| local_port | the port to bind socket to. | 
| error_msg | the error message (if error). | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
| int  udp_join_group (int family, const string& sockid,
		       const IPvX& mcast_addr, const IPvX& join_if_addr,
		       string& error_msg) | udp_join_group | 
Join multicast group on already bound socket.
Parameters:
| family | the address family (AF_INET or AF_INET6 for IPv4 and IPv6 respectively). | 
| sockid | unique socket ID. | 
| mcast_addr | group to join. | 
| join_if_addr | interface address to perform join on. | 
| error_msg | the error message (if error). | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
| int  udp_leave_group (int family, const string& sockid,
			const IPvX& mcast_addr, const IPvX& leave_if_addr,
			string& error_msg) | udp_leave_group | 
Leave multicast group on already bound socket.
Parameters:
| family | the address family (AF_INET or AF_INET6 for IPv4 and IPv6 respectively). | 
| sockid | unique socket ID. | 
| mcast_addr | group to leave. | 
| leave_if_addr | interface address to perform leave on. | 
| error_msg | the error message (if error). | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
| int  close (int family, const string& sockid, string& error_msg) | close | 
Close socket.
Parameters:
| family | the address family (AF_INET or AF_INET6 for IPv4 and IPv6 respectively). | 
| sockid | unique socket ID of socket to be closed. | 
| error_msg | the error message (if error). | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
| int  tcp_listen (int family, const string& sockid, uint32_t backlog,
		   string& error_msg) | tcp_listen | 
Listen for inbound connections on socket.
When a connection request is received the socket creator will receive notification.
Parameters:
| family | the address family (AF_INET or AF_INET6 for IPv4 and IPv6 respectively). | 
| sockid | the unique socket ID of the socket to perform listen. | 
| backlog | the maximum number of pending connections. | 
| error_msg | the error message (if error). | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
| int  udp_enable_recv (int family, const string& sockid, string& error_msg) | udp_enable_recv | 
Enable a UDP socket for datagram reception.
Parameters:
| family | the address family (AF_INET or AF_INET6 for IPv4 and IPv6 respectively). | 
| sockid | the unique socket ID of the socket to enable datagram reception for. | 
| error_msg | the error message (if error). | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
| int  send (int family, const string& sockid, const vector<uint8_t>& data,
	     string& error_msg) | send | 
Send data on socket.
Parameters:
| family | the address family (AF_INET or AF_INET6 for IPv4 and IPv6 respectively). | 
| sockid | unique socket ID. | 
| data | block of data to be sent. | 
| error_msg | the error message (if error). | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
| int  send_to (int family, const string& sockid, const IPvX& remote_addr,
		uint16_t remote_port, const vector<uint8_t>& data,
		string& error_msg) | send_to | 
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:
| family | the address family (AF_INET or AF_INET6 for IPv4 and IPv6 respectively). | 
| sockid | unique socket ID. | 
| remote_addr | destination address for data. | 
| remote_port | destination port for data. | 
| data | block of data to be sent. | 
| error_msg | the error message (if error). | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
| int  send_from_multicast_if (int family, const string& sockid,
			       const IPvX& group_addr, uint16_t group_port,
			       const IPvX& ifaddr, const vector<uint8_t>& data,
			       string& error_msg) | send_from_multicast_if | 
Send data on socket to a given multicast group from a given interface.
Parameters:
| family | the address family (AF_INET or AF_INET6 for IPv4 and IPv6 respectively). | 
| sockid | unique socket ID. | 
| group_addr | destination address for data. | 
| group_port | destination port for data. | 
| ifaddr | interface address. | 
| error_msg | the error message (if error). | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
| int  set_socket_option (int family, const string& sockid,
			  const string& optname, uint32_t optval,
			  string& error_msg) | set_socket_option | 
Set a named socket option with an integer value.
Parameters:
| family | the address family (AF_INET or AF_INET6 for IPv4 and IPv6 respectively). | 
| sockid | unique socket ID. | 
| optname | name of option to be set. Valid values are: "onesbcast" "receive_broadcast" "reuseport" "send_broadcast" "tos" "ttl" "multicast_loopback" "multicast_ttl" | 
| optval | value of option to be set. If value is logically boolean then zero represents false and any non-zero value true. | 
| error_msg | the error message (if error). | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
| int  set_socket_option (int family, const string& sockid,
			  const string& optname, const string& optval,
			  string& error_msg) | set_socket_option | 
Set a named socket option with a string value.
Parameters:
| family | the address family (AF_INET or AF_INET6 for IPv4 and IPv6 respectively). | 
| sockid | unique socket ID. | 
| optname | name of option to be set. Valid values are: "bindtodevice" | 
| optval | value of option to be set. | 
| error_msg | the error message (if error). | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
| int  accept_connection (int family, const string& sockid, bool is_accepted,
			  string& error_msg) | accept_connection | 
Accept or reject a pending connection.
Parameters:
| family | the address family (AF_INET or AF_INET6 for IPv4 and IPv6 respectively). | 
| sockid | unique socket ID. | 
| is_accepted | if true, the connection is accepted, otherwise is rejected. | 
| error_msg | the error message (if error). | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
| void  recv_event (const string&		receiver_name,
		    const string&		sockid,
		    const string&		if_name,
		    const string&		vif_name,
		    const IPvX&			src_host,
		    uint16_t			src_port,
		    const vector<uint8_t>&	data) | recv_event | 
Data received event.
Parameters:
| receiver_name | the name of the receiver to send the data to. | 
| sockid | unique socket ID. | 
| if_name | the interface name the packet arrived on, if known. If unknown, then it is an empty string. | 
| vif_name | the vif name the packet arrived on, if known. If unknown, then it is an empty string. | 
| src_host | the originating host IP address. | 
| src_port | the originating host port number. | 
| data | the data received. | 
Reimplemented from IoTcpUdpManagerReceiver.
| void  inbound_connect_event (const string&	receiver_name,
			       const string&	sockid,
			       const IPvX&	src_host,
			       uint16_t		src_port,
			       const string&	new_sockid) | inbound_connect_event | 
Inbound connection request received event.
It applies only to TCP sockets.
Parameters:
| receiver_name | the name of the receiver to send the event to. | 
| sockid | unique socket ID. | 
| src_host | the originating host IP address. | 
| src_port | the originating host port number. | 
| new_sockid | the new socket ID. | 
Reimplemented from IoTcpUdpManagerReceiver.
| void  outgoing_connect_event (int		family,
				const string&	receiver_name,
				const string&	sockid) | outgoing_connect_event | 
Outgoing connection request completed event.
It applies only to TCP sockets.
Parameters:
| family | the address family (AF_INET or AF_INET6 for IPv4 and IPv6 respectively). | 
| receiver_name | the name of the receiver to send the event to. | 
| sockid | unique socket ID. | 
Reimplemented from IoTcpUdpManagerReceiver.
| void  error_event (int			family,
		     const string&		receiver_name,
		     const string&		sockid,
		     const string&		error,
		     bool			fatal) | error_event | 
Error occured event.
Parameters:
| family | the address family (AF_INET or AF_INET6 for IPv4 and IPv6 respectively). | 
| receiver_name | the name of the receiver to send the event to. | 
| sockid | unique socket ID. | 
| error | a textual description of the error. | 
| fatal | indication of whether socket is shutdown because of error. | 
Reimplemented from IoTcpUdpManagerReceiver.
| void  disconnect_event (int			family,
			  const string&		receiver_name,
			  const string&		sockid) | disconnect_event | 
Connection closed by peer event.
It applies only to TCP sockets. This method is not called if the socket is gracefully closed through close().
Parameters:
| family | the address family (AF_INET or AF_INET6 for IPv4 and IPv6 respectively). | 
| receiver_name | the name of the receiver to send the event to. | 
| sockid | unique socket ID. | 
Reimplemented from IoTcpUdpManagerReceiver.
| void  instance_birth (const string& instance_name) | instance_birth | 
Inform the watcher that a component instance is alive.
Parameters:
| instance_name | the name of the instance that is alive. | 
Reimplemented from InstanceWatcher.
| void  instance_death (const string& instance_name) | instance_death | 
Inform the watcher that a component instance is dead.
Parameters:
| instance_name | the name of the instance that is dead. | 
Reimplemented from InstanceWatcher.
| void  set_io_tcpudp_manager_receiver (IoTcpUdpManagerReceiver* v) | set_io_tcpudp_manager_receiver | 
Set the instance that is responsible for sending IP packets to a receiver.
| const IfTree&	 iftree () | iftree | 
[const]
Get a reference to the interface tree.
Returns: a reference to the interface tree (IfTree).
| int  register_data_plane_manager (FeaDataPlaneManager* fea_data_plane_manager,
				    bool is_exclusive) | register_data_plane_manager | 
Register FeaDataPlaneManager data plane manager.
Parameters:
| fea_data_plane_manager | the data plane manager to register. | 
| is_exclusive | if true, the manager is registered as the exclusive manager, otherwise is added to the list of managers. | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
| int  unregister_data_plane_manager (FeaDataPlaneManager* fea_data_plane_manager) | unregister_data_plane_manager | 
Unregister FeaDataPlaneManager data plane manager.
Parameters:
| fea_data_plane_manager | the data plane manager to unregister. | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
| list<FeaDataPlaneManager*>&  fea_data_plane_managers () | fea_data_plane_managers | 
Get the list of registered data plane managers.
Returns: the list of registered data plane managers.
| IoTcpUdpComm*  connect_io_tcpudp_comm (int family,
					 bool is_tcp,
					 const string& creator,
					 const string& listener_sockid,
					 const IPvX& peer_host,
					 uint16_t peer_port,
					 IoTcpUdp* new_io_tcpudp) | connect_io_tcpudp_comm | 
Connect IoTcpUdpComm entry to a new plugin.
Parameters:
| family | the address family. | 
| is_tcp | if true this is TCP entry, otherwise UDP. | 
| creator | the name of the creator. | 
| listener_sockid | the socket ID of the listener socket. | 
| peer_host | the peer host IP address. | 
| peer_port | the peer host port number. | 
| new_io_tcpudp | the handler for the new connection. | 
Returns: an entry (IoTcpUdpComm) to handle the connection from the new plugin.