Contents

setMulticastList

Sets the list of multicast addresses a multicast filter should use to match against the destination address of an incoming frame.

Declaration

virtual IOReturn setMulticastList(
 IOEthernetAddress *addrs, 
 UInt32count);

Parameters

  • addrs:

    An array of Ethernet addresses. This argument must be ignored if the count argument is 0.

  • count:

    The number of Ethernet addresses in the list. This value will be zero when the list becomes empty.

Return Value

Returns kIOReturnUnsupported. Drivers must return kIOReturnSuccess to indicate success, or an error return code otherwise.

Overview

This method sets the list of multicast addresses that the multicast filter should use to match against the destination address of an incoming frame. The frame should be accepted when a match occurs. Called when the multicast group membership of an interface object is changed. Drivers that support kIOPacketFilterMulticast should override this method and update the hardware multicast filter using the list of Ethernet addresses provided. Perfect multicast filtering is preferred if supported by the hardware, in order to reduce the number of unwanted packets received. If the number of multicast addresses in the list exceeds what the hardware is capable of supporting, or if perfect filtering is not supported, then ideally the hardware should be programmed to perform imperfect filtering, through some form of hash filtering mechanism. Only as a last resort should the driver enable reception of all multicast packets to satisfy this request. This method is called from the workloop context, and only if the driver reports kIOPacketFilterMulticast support in getPacketFilters().

See Also

Miscellaneous