[Previous] [Contents] [Index] [Next]

Caution: This version of this document is no longer maintained. For the latest documentation, see http://www.qnx.com/developers/docs.

io_net_msg_mcast

Structure used for multicast address filtering

Synopsis:

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;
};

Description:

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:

type
The type of request. If it's set to _IO_NET_JOIN_MCAST, the request specifies a range of multicast addresses for which reception should be enabled. If it's set to IO_NET_REMOVE_MCAST, the request specifies a range of addresses for which multicast packet reception should no longer be enabled. (In this case, the address range was previously enabled via an _IO_NET_JOIN_MCAST request.)

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.

flags
Currently only one flag is defined:
next
Used to chain multiple _io_net_msg_mcast structures into a linked-list when the driver issues a DCMD_IO_NET_CHANGE devctl. When the driver traverses the list, it accesses the entire database of currently enabled multicast address ranges.
mc_min and mc_max
Specifies the minimum and maximum addresses within a range of multicast addresses. The LLADDR macro, defined in <net/if_dl.h>, can be used to obtain a pointer to the actual, physical MAC address, e.g. if mcast points to struct io_net_msg_mcast, the start and end of the address range can be obtained as follows:
    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.

Classification:

QNX Neutrino


[Previous] [Contents] [Index] [Next]