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,
|
.notify = eoib_notify,
|
||||||
.remove = eoib_remove,
|
.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