mirror of https://github.com/ipxe/ipxe.git
[eoib] Silently ignore EoIB heartbeat packets
Some EoIB implementations transmit a vendor-proprietary heartbeat packet on the same multicast group used to provide the EoIB broadcast domain. Silently ignore these heartbeat packets, to avoid cluttering up the network interface error statistics. Signed-off-by: Michael Brown <mcb30@ipxe.org>pull/46/head
parent
9154d7a65c
commit
ecd93cfc11
|
@ -752,3 +752,48 @@ struct ib_driver eoib_driver __ib_driver = {
|
|||
.notify = eoib_notify,
|
||||
.remove = eoib_remove,
|
||||
};
|
||||
|
||||
/****************************************************************************
|
||||
*
|
||||
* EoIB heartbeat packets
|
||||
*
|
||||
****************************************************************************
|
||||
*/
|
||||
|
||||
/**
|
||||
* Silently ignore incoming EoIB heartbeat packets
|
||||
*
|
||||
* @v iobuf I/O buffer
|
||||
* @v netdev Network device
|
||||
* @v ll_source Link-layer source address
|
||||
* @v flags Packet flags
|
||||
* @ret rc Return status code
|
||||
*/
|
||||
static int eoib_heartbeat_rx ( struct io_buffer *iobuf,
|
||||
struct net_device *netdev __unused,
|
||||
const void *ll_dest __unused,
|
||||
const void *ll_source __unused,
|
||||
unsigned int flags __unused ) {
|
||||
free_iob ( iobuf );
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Transcribe EoIB heartbeat address
|
||||
*
|
||||
* @v net_addr EoIB heartbeat address
|
||||
* @ret string "<EoIB>"
|
||||
*
|
||||
* This operation is meaningless for the EoIB heartbeat protocol.
|
||||
*/
|
||||
static const char * eoib_heartbeat_ntoa ( const void *net_addr __unused ) {
|
||||
return "<EoIB>";
|
||||
}
|
||||
|
||||
/** EoIB heartbeat network protocol */
|
||||
struct net_protocol eoib_heartbeat_protocol __net_protocol = {
|
||||
.name = "EoIB",
|
||||
.net_proto = htons ( EOIB_MAGIC ),
|
||||
.rx = eoib_heartbeat_rx,
|
||||
.ntoa = eoib_heartbeat_ntoa,
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue