This version of this document is no longer maintained. For the latest documentation, see http://www.qnx.com/developers/docs. |
Structure used for multicast address filtering
typedef struct _io_net_msg_mcast; struct _io_net_msg_mcast { uint16_t type; uint32_t flags; uint16_t next; uint32_t mc_min; uint32_t mc_max; };
The io_net_msg_mcast structure contains information concerning the changes required to multicast addresses that have been identified by the DCMD_IO_NET_CHANGE_MCAST devctl.
The members include:
If the field doesn't contain either of these two values, it means that the networking subsystem is responding to a DCMD_IO_NET_CHANGE_MCAST devctl that the driver issued.
If the type field was set to _IO_NET_JOIN_MCAST, the device should be put into promiscuous multicast mode.
If the type field was set to _IO_NET_REMOVE_MCAST, the device should be taken out of promiscuous multicast mode, in which case the device should revert to filtering based on the enabled range(s) of multicast addresses. When in promiscuous mode, the device should receive all multicast packets.
LLADDR(mcast->mc_min.addr_dl) LLADDR(mcast->mc_max.addr_dl)
If type was _IO_NET_JOIN_MCAST, the driver should enable reception of packets whose destination addresses are within these inclusive address ranges.
If type was _IO_NET_REMOVE_MCAST, the driver should disable reception of packets whose destination addresses are within these inclusive address ranges (in this case, the address range will have previously been enabled via an _IO_NET_JOIN_MCAST message).
If the _IO_NET_MCAST_ALL flag was set, mc_min and mc_max are irrelevant, and shouldn't be referenced.
QNX Neutrino