| 
 | 
 | ||||||||||||||||
A class that handles raw link I/O communication for a specific protocol.
It also allows arbitrary filters to receive the raw link-level data for that protocol.
| InputFilter (class) | InputFilter | 
| JoinedMulticastGroup (class) | JoinedMulticastGroup | 
| IoLinkComm (IoLinkManager& io_link_manager, const IfTree& iftree,
	       const string& if_name, const string& vif_name,
	       uint16_t ether_type, const string& filter_program) | IoLinkComm | 
Constructor for IoLinkComm.
Parameters:
| io_link_manager | the corresponding I/O Link manager (IoLinkManager). | 
| iftree | the interface tree to use. | 
| if_name | the interface name. | 
| vif_name | the vif name. | 
| ether_type | the EtherType protocol number. | 
| filter_program | the optional filter program to be applied on the received packets. | 
| ~IoLinkComm () | ~IoLinkComm | 
[virtual]
| void  allocate_io_link_plugins () | allocate_io_link_plugins | 
Allocate the I/O Link plugins (one per data plane manager).
| void  deallocate_io_link_plugins () | deallocate_io_link_plugins | 
Deallocate the I/O Link plugins (one per data plane manager).
| void  allocate_io_link_plugin (FeaDataPlaneManager* fea_data_plane_manager) | allocate_io_link_plugin | 
Allocate an I/O Link plugin for a given data plane manager.
Parameters:
| fea_data_plane_manager | the data plane manager. | 
| void  deallocate_io_link_plugin (FeaDataPlaneManager* fea_data_plane_manager) | deallocate_io_link_plugin | 
Deallocate the I/O Link plugin for a given data plane manager.
Parameters:
| fea_data_plane_manager | the data plane manager. | 
| void  start_io_link_plugins () | start_io_link_plugins | 
| void  stop_io_link_plugins () | stop_io_link_plugins | 
| int  add_filter (InputFilter* filter) | add_filter | 
Add a filter to list of input filters.
The IoLinkComm class assumes that the callee will be responsible for managing the memory associated with the filter and will call remove_filter() if the filter is deleted or goes out of scope.
Parameters:
| filter | the filter to add. | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
| int  remove_filter (InputFilter* filter) | remove_filter | 
Remove filter from list of input filters.
Parameters:
| filter | the filter to remove. | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
| bool  no_input_filters () | no_input_filters | 
[const]
Returns: true if there are no filters associated with this instance.
| int		 send_packet (const Mac&		src_address,
			    const Mac&		dst_address,
			    uint16_t		ether_type,
			    const vector<uint8_t>& payload,
			    string&		error_msg) | send_packet | 
Send a raw link-level packet.
Parameters:
| src_address | the MAC source address. | 
| dst_address | the MAC destination address. | 
| ether_type | the EtherType protocol number. | 
| payload | the payload, everything after the MAC header. | 
| error_msg | the error message (if error). | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
| void  recv_packet (const Mac&		src_address,
			     const Mac&		dst_address,
			     uint16_t		ether_type,
			     const vector<uint8_t>& payload) | recv_packet | 
[virtual]
Received a raw link-level packet.
Parameters:
| src_address | the MAC source address. | 
| dst_address | the MAC destination address. | 
| ether_type | the EtherType protocol number. | 
| packet | the payload, everything after the MAC header. | 
Reimplemented from IoLinkReceiver.
| int		 join_multicast_group (const Mac&		group_address,
				     const string&	receiver_name,
				     string&		error_msg) | join_multicast_group | 
Join a MAC multicast group.
Parameters:
| group_address | the multicast group address to join. | 
| receiver_name | the name of the receiver. | 
| error_msg | the error message (if error). | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
| int		 leave_multicast_group (const Mac&	group_address,
				      const string&	receiver_name,
				      string&		error_msg) | leave_multicast_group | 
Leave a MAC multicast group.
Parameters:
| group_address | the multicast group address to leave. | 
| receiver_name | the name of the receiver. | 
| error_msg | the error message (if error). | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
| const string&  if_name () | if_name | 
[const]
Get the interface name.
Returns: the interface name.
| const string&  vif_name () | vif_name | 
[const]
Get the vif name.
Returns: the vif name.
| uint16_t  ether_type () | ether_type | 
[const]
Get the EtherType protocol number.
Returns: the EtherType protocol number.
| const string&  filter_program () | filter_program | 
[const]
Get the filter program.
Returns: the filter program.