| 
  | ||||||||||||||||
|  MfeaVif (MfeaNode& mfea_node, const Vif& vif)
 | MfeaVif | 
Constructor for a given MFEA node and a generic virtual interface.
Parameters:
| mfea_node | the MfeaNode this interface belongs to. | 
| vif | the generic Vif interface that contains various information. | 
|  MfeaVif (MfeaNode& mfea_node, const MfeaVif& mfea_vif)
 | MfeaVif | 
Copy Constructor for a given MFEA node and MFEA-specific virtual interface.
Parameters:
| mfea_node | the MfeaNode this interface belongs to. | 
| mfea_vif | the origin MfeaVif interface that contains the initialization information. | 
|   ~MfeaVif ()
 | ~MfeaVif | 
[virtual]
| int		 start (string& error_msg)
 | start | 
Start MFEA on a single virtual interface.
Parameters:
| error_msg | the error message (if error). | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
| int		 stop (string& error_msg)
 | stop | 
Stop MFEA on a single virtual interface.
Parameters:
| error_msg | the error message (if error). | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
| void	 enable ()
 | enable | 
Enable MFEA on a single virtual interface.
If an unit is not enabled, it cannot be start, or pending-start.
| void	 disable ()
 | disable | 
Disable MFEA on a single virtual interface.
If an unit is disabled, it cannot be start or pending-start. If the unit was runnning, it will be stop first.
| int		 start_protocol (const string& module_instance_name,
			       xorp_module_id module_id)
 | start_protocol | 
Start a protocol on a single virtual interface.
Parameters:
| module_instance_name | the module instance name of the protocol to start on this vif. | 
| module_id | the module ID (xorp_module_id) of the protocol to start on this vif. | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
| int		 stop_protocol (const string& module_instance_name,
			      xorp_module_id module_id)
 | stop_protocol | 
Stop a protocol on a single virtual interface.
Parameters:
| module_instance_name | the module instance name of the protocol to stop on this vif. | 
| module_id | the module ID (xorp_module_id) of the protocol to stop on this vif. | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
| int		 leave_all_multicast_groups ()
 | leave_all_multicast_groups | 
Leave all previously joined multicast groups on this interface.
Returns: the number of groups that were successfully left, or XORP_ERROR if error.
| int		 leave_all_multicast_groups (const string& module_instance_name,
					   xorp_module_id module_id)
 | leave_all_multicast_groups | 
Leave all previously joined multicast groups on this interface by a given module.
Leave all previously joined multicast groups on this interface that were joined by a module with name module_instance_name and module ID module_id.
Parameters:
| module_instance_name | the module instance name of the protocol that leaves all groups. | 
| module_id | the module ID of the protocol that leaves all groups | 
Returns: the number of groups that were successfully left, or XORP_ERROR if error.
| uint8_t	 min_ttl_threshold ()
 | min_ttl_threshold | 
[const]
Get the minimum TTL a multicast packet must have to be forwarded on this virtual interface.
Returns: the minimum TTL a multicast packet must have to be forwarded on this virtual interface.
| void	 set_min_ttl_threshold (uint8_t v)
 | set_min_ttl_threshold | 
Set the minimum TTL a multicast packet must have to be forwarded on this virtual interface.
Parameters:
| v | the value of the minimum TTL a multicast packet must have to be forwarded on this virtual interface. | 
| uint32_t	 max_rate_limit ()
 | max_rate_limit | 
[const]
Get the maximum multicast bandwidth rate allowed on this virtual interface.
Returns: the maximum multicast bandwidth rate allowed on this virtual interface.
| void	 set_max_rate_limit (uint32_t v)
 | set_max_rate_limit | 
Set the maximum multicast bandwidth rate allowed on this virtual interface.
Parameters:
| v | the value of the maximum multicast bandwidth rate allowed on this virtual interface. | 
| ProtoRegister&  proto_register ()
 | proto_register | 
Get the set of protocol instances that are registered to send/receive data packets on this vif.
Returns: the set of protocol instances that are registered to send/receive data packets on this vif.
| int	 add_multicast_group (const string& module_instance_name,
			    xorp_module_id module_id,
			    const IPvX& group)
 | add_multicast_group | 
Add a multicast group to the set of groups joined on this virtual interface.
Parameters:
| module_instance_name | the module instance name of the protocol that has joined the group. | 
| module_id | the module ID (xorp_module_id) of the protocol that has joined the group. | 
| group | the group address. | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
| int	 delete_multicast_group (const string& module_instance_name,
			       xorp_module_id module_id,
			       const IPvX& group)
 | delete_multicast_group | 
Delete a multicast group from the set of groups joined on this virtual interface.
Parameters:
| module_instance_name | the module instance name of the protocol that has left the group. | 
| module_id | the module ID (xorp_module_id) of the protocol that has left the group. | 
| group | the group address. | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
| bool	 has_multicast_group (const IPvX& group)
 | has_multicast_group | 
[const]
Test if a multicast group is still joined on this virtual interface.
Parameters:
| group | the group address. | 
Returns: true if group is still joined on this virtual address, otherwise false.