| 
 
 | 
 | |||||||||||||||||
| ProtoNode (int init_family, xorp_module_id init_module_id,
	      EventLoop& init_eventloop) | ProtoNode | 
Constructor for a given address family, module ID, and event loop.
Parameters:
| init_family | the address family (AF_INET or AF_INET6 for IPv4 and IPv6 respectively). | 
| init_module_id | the module ID XORP_MODULE_* (xorp_module_id). | 
| init_eventloop | the event loop to use. | 
| ~ProtoNode () | ~ProtoNode | 
[virtual]
Destructor
| int		 start () | start | 
Reimplemented from ProtoState.
| int		 stop () | stop | 
Reimplemented from ProtoState.
| void	 enable () | enable | 
Reimplemented from ProtoState.
| void	 disable () | disable | 
Reimplemented from ProtoState.
| inline uint16_t  vif_name2vif_index (const string& vif_name) | vif_name2vif_index | 
[const]
Map a vif name to a vif index.
Parameters:
| vif_name | the vif name to map to a vif index. | 
Returns: the virtual interface index for vif name vif_name.
| inline uint16_t  find_unused_vif_index () | find_unused_vif_index | 
[const]
Find an unused vif index.
Returns: the smallest unused vif index if there is one available, otherwise return Vif::VIF_INDEX_INVALID.
| inline V * vif_find_by_name (const string& name) | vif_find_by_name | 
[const]
Find a virtual interface for a given name.
Parameters:
| name | the name to search for. | 
Returns: the virtual interface with name name if found, otherwise NULL.
| inline V * vif_find_by_addr (const IPvX& ipaddr_test) | vif_find_by_addr | 
[const]
Find a virtual interface for a given address.
Parameters:
| ipaddr_test | the address to search for. | 
Returns: the virtual interface with address ipaddr_test if found, otherwise NULL.
| inline V * vif_find_by_pif_index (uint16_t pif_index) | vif_find_by_pif_index | 
[const]
Find a virtual interface for a given physical interface index.
Parameters:
| pif_index | the physical interface index to search for. | 
Returns: the virtual interface with physical interface index pif_index if found, otherwise NULL.
| inline V * vif_find_by_vif_index (uint16_t vif_index) | vif_find_by_vif_index | 
[const]
Find a virtual interface for a given virtual interface index.
Parameters:
| vif_index | the virtual interface index to search for. | 
Returns: the vvirtual interface with virtual interface index vif_index if found, otherwise NULL.
| inline V * vif_find_same_subnet (const IPvXNet& subnet_test) | vif_find_same_subnet | 
[const]
Find a virtual interface that belongs to the same subnet as a given subnet address.
Parameters:
| subnet_test | the subnet address to search by. | 
Returns: the virtual interface that belongs to the same subnet address subnet_test if found, otherwise NULL.
| inline V * vif_find_same_subnet_or_p2p (const IPvX& ipaddr_test) | vif_find_same_subnet_or_p2p | 
[const]
Find a virtual interface that belongs to the same subnet or point-to-point link as a given address.
Parameters:
| ipaddr_test | the address to search by. | 
Returns: the virtual interface that belongs to the same subnet or point-to-point link as address ipaddr_test if found, otherwise NULL.
| bool  is_my_addr (const IPvX& ipaddr_test) | is_my_addr | 
[const]
Test if an address belongs to one of my virtual interfaces.
Parameters:
| ipaddr_test | the address to test. | 
Returns: true if ipaddr_test belongs to one of my virtual interfaces, otherwise false.
| inline int  add_vif (V *vif) | add_vif | 
Add a virtual interface.
Parameters:
| vif | a pointer to the virtual interface to add. | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
| inline int  delete_vif (const V *vif) | delete_vif | 
Delete a virtual interface.
Note: the vif itself is not deleted, only its place in the array of protocol vifs.
Parameters:
| vif | a pointer to the virtual interface to delete. | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
| vector<V *>&  proto_vifs () | proto_vifs | 
Get the array of pointers to the virtual interfaces.
Returns: the array of pointers to the virtual interfaces.
| const vector<V *>&  const_proto_vifs () | const_proto_vifs | 
[const]
Get the array of pointers to the virtual interfaces.
Returns: the array of pointers to the virtual interfaces.
| uint16_t	 maxvifs () | maxvifs | 
[const]
Get the maximum number of vifs.
Note: the interfaces that are not configured or are down are also included.
Returns: the maximum number of vifs we can have.
| EventLoop&  eventloop () | eventloop | 
Get the event loop this node is added to.
Returns: the event loop this node is added to.
| bool  is_vif_setup_completed () | is_vif_setup_completed | 
[const]
Test if the vif setup is completed.
Returns: true if the vif setup is completed, otherwise false.
| void  set_vif_setup_completed (bool v) | set_vif_setup_completed | 
Set/reset the flag that indicates whether the vif setup is completed.
Parameters:
| v | if true, set the flag that the vif setup is completed, otherwise reset it. | 
| int	 proto_recv (const string& src_module_instance_name,
			   xorp_module_id src_module_id,
			   uint16_t vif_index,
			   const IPvX& src,
			   const IPvX& dst,
			   int ip_ttl,
			   int ip_tos,
			   bool router_alert_bool,
			   const uint8_t *rcvbuf,
			   size_t rcvlen) | proto_recv | 
[pure virtual]
Receive a protocol message.
This is a pure virtual function, and it must be implemented by the particular protocol node class that inherits this base class.
Parameters:
| src_module_instance_name | the module instance name of the module-origin of the message. | 
| src_module_id | the module ID (xorp_module_id) of the module-origin of the message. | 
| vif_index | the vif index of the interface used to receive this message. | 
| src | the source address of the message. | 
| dst | the destination address of the message. | 
| ip_ttl | the IP TTL (Time To Live) of the message. If it has a negative value, it should be ignored. | 
| ip_tos | the IP TOS (Type of Service) of the message. If it has a negative value, it should be ignored. | 
| router_alert_bool | if true, the Router Alert IP option for the IP packet of the incoming message was set. | 
| rcvbuf | the data buffer with the received message. | 
| rcvlen | the data length in rcvbuf. | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
| int	 proto_send (const string& dst_module_instance_name,
			   xorp_module_id dst_module_id,
			   uint16_t vif_index,
			   const IPvX& src,
			   const IPvX& dst,
			   int ip_ttl,
			   int ip_tos,
			   bool router_alert_bool,
			   const uint8_t *sndbuf,
			   size_t sndlen) | proto_send | 
[pure virtual]
Send a protocol message.
This is a pure virtual function, and it must be implemented by the particular protocol node class that inherits this base class.
Parameters:
| dst_module_instance_name | the module instance name of the module-recepient of the message. | 
| dst_module_id | the module ID (xorp_module_id) of the module-recepient of the message. | 
| vif_index | the vif index of the interface to send this message. | 
| src | the source address of the message. | 
| dst | the destination address of the message. | 
| ip_ttl | the IP TTL of the message. If it has a negative value, the TTL will be set by the lower layers. | 
| ip_tos | the IP TOS of the message. If it has a negative value, the TOS will be set by the lower layers. | 
| router_alert_bool | if true, set the Router Alert IP option for the IP packet of the outgoung message. | 
| sndbuf | the data buffer with the outgoing message. | 
| sndlen | the data length in sndbuf. | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
| int	 signal_message_recv (const string& src_module_instance_name,
				    xorp_module_id src_module_id,
				    int message_type,
				    uint16_t vif_index,
				    const IPvX& src,
				    const IPvX& dst,
				    const uint8_t *rcvbuf,
				    size_t rcvlen) | signal_message_recv | 
[pure virtual]
Receive a signal message.
This is a pure virtual function, and it must be implemented by the particular protocol node class that inherits this base class.
Parameters:
| src_module_instance_name | the module instance name of the module-origin of the message. | 
| src_module_id | the module ID (xorp_module_id) of the module-origin of the message. | 
| message_type | the message type. The particular values are specific for the origin and recepient of this signal message. | 
| vif_index | the vif index of the related interface (message-specific relation). | 
| src | the source address of the message. The exact meaning of this address is message-specific. | 
| dst | the destination address of the message. The exact meaning of this address is message-specific. | 
| rcvbuf | the data buffer with the additional information in the message. | 
| rcvlen | the data length in rcvbuf. | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
| int	 signal_message_send (const string& dst_module_instance_name,
				    xorp_module_id dst_module_id,
				    int message_type,
				    uint16_t vif_index,
				    const IPvX& src,
				    const IPvX& dst,
				    const uint8_t *sndbuf,
				    size_t sndlen) | signal_message_send | 
[pure virtual]
Send a signal message.
This is a pure virtual function, and it must be implemented by the particular protocol node class that inherits this base class.
Parameters:
| dst_module_instance_name | the module instance name of the module-recepient of the message. | 
| dst_module_id | the module ID (xorp_module_id) of the module-recepient of the message. | 
| message_type | the message type. The particular values are specific for the origin and recepient of this signal message. | 
| vif_index | the vif index of the related interface (message-specific relation). | 
| src | the source address of the message. The exact meaning of this address is message-specific. | 
| dst | the destination address of the message. The exact meaning of this address is message-specific. | 
| sndbuf | the data buffer with the outgoing message. | 
| sndlen | the data length in sndbuf. | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
| ProcessStatus  node_status () | node_status | 
[const]
Get the node status (see ProcessStatus).
Returns: the node status (see ProcessStatus).
| void  set_node_status (ProcessStatus v) | set_node_status | 
Set the node status (see ProcessStatus).
Parameters:
| v | the value to set the node status to. | 
| int		 start_config (string& error_msg) | start_config | 
Start a set of configuration changes.
Note that it may change the node status.
@error_msg: The error message (if error).
Returns: XORP_OK on success, otherwise XORP_ERROR.
| int		 end_config (string& error_msg) | end_config | 
End a set of configuration changes.
Note that it may change the node status.
@error_msg: The error message (if error).
Returns: XORP_OK on success, otherwise XORP_ERROR.
| inline uint16_t  find_unused_config_vif_index () | find_unused_config_vif_index | 
[const]
Find an unused vif index from the set of configured vifs.
Returns: the smallest unused vif index from the set of configured vifs if there is one available, otherwise return Vif::VIF_INDEX_INVALID.
| int		 add_config_vif (const Vif& vif, string& error_msg) | add_config_vif | 
Add a configured vif.
Parameters:
| vif | the vif with the information to add. @error_msg: The error message (if error). | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
| int		 add_config_vif (const string& vif_name, uint16_t vif_index,
			       string& error_msg) | add_config_vif | 
Add a configured vif.
Parameters:
| vif_name | the name of the vif to add. | 
| vif_index | the vif index of the vif to add. @error_msg: The error message (if error). | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
| int		 delete_config_vif (const string& vif_name, string& error_msg) | delete_config_vif | 
Delete a configured vif.
Parameters:
| vif_name | the name of the vif to delete. @error_msg: The error message (if error). | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
| int		 add_config_vif_addr (const string& vif_name,
				    const IPvX& addr,
				    const IPvXNet& subnet,
				    const IPvX& broadcast,
				    const IPvX& peer,
				    string& error_msg) | add_config_vif_addr | 
Add an address to a configured vif.
Parameters:
| vif_name | the name of the vif. | 
| addr | the address to add. | 
| subnet | the subnet address to add. | 
| broadcast | the broadcast address to add. | 
| peer | the peer address to add. @error_msg: The error message (if error). | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
| int		 delete_config_vif_addr (const string& vif_name,
				       const IPvX& addr,
				       string& error_msg) | delete_config_vif_addr | 
Delete an address from a configured vif.
Parameters:
| vif_name | the name of the vif. | 
| addr | the address to delete. @error_msg: The error message (if error). | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
| int		 set_config_pif_index (const string& vif_name,
				     uint16_t pif_index,
				     string& error_msg) | set_config_pif_index | 
Set the pif_index to a configured vif.
Parameters:
| vif_name | the name of the vif. | 
| pif_index | the physical interface index. @error_msg: The error message (if error). | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
| int		 set_config_vif_flags (const string& vif_name,
				     bool is_pim_register,
				     bool is_p2p,
				     bool is_loopback,
				     bool is_multicast,
				     bool is_broadcast,
				     bool is_up,
				     string& error_msg) | set_config_vif_flags | 
Set the vif flags to a configured vif.
Parameters:
| vif_name | the name of the vif. | 
| is_pim_register | true if the vif is a PIM Register interface. | 
| is_p2p | true if the vif is point-to-point interface. | 
| is_loopback | true if the vif is a loopback interface. | 
| is_multicast | true if the vif is multicast capable. | 
| is_broadcast | true if the vif is broadcast capable. | 
| is_up | true if the underlying vif is UP. @error_msg: The error message (if error). | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
| map<string, Vif>&  configured_vifs () | configured_vifs | 
Get the map with configured vifs.
Returns: a reference for the map with configured vifs.
| Generated by: pavlin on possum.icir.org on Thu Aug 28 12:52:07 2003, using kdoc 2.0a54+XORP. |