|
|
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.