Requests that the data link service (DLS) provider enable specific multicast addresses on a per stream basis.
The primitive consists of one M_PROTO message block, which contains the following structure:
typedef struct { ulong dl_primitive; ulong dl_addr_length; ulong dl_addr_offset; } dl_enabmulti_req_t;
This structure is defined in /usr/include/sys/dlpi.h.
The DL_ENABMULTI primitive requests that the DLS provider enable specific multicast addresses on a per stream basis. It is invalid for a DLS provider to pass upstream messages that are destined for any address other than those explicitly enabled on that stream by the DLS user.
If a duplicate address is requested, the system returns a DL_OK_ACK primitive, with no operation performed. If the stream is closed, all multicast addresses associated with the stream will be unregistered.
The DLS provider must not run in the interrupt environment. If the DLS provider runs in the interrupt environment, the system returns a DL_ERROR_ACK primitive with a DL_SYSERR error code and an operating system error code of 0.
Valid | The primitive is valid in any state in which a local acknowledgement is not pending, with the exception of the DL_UNATTACH state. |
New | The resulting state is unchanged. |
Successful | The DL_OK_ACK primitive is sent to the DLS user. |
Unsuccessful | The DL_ERROR_ACK primitive is returned, and the resulting state is unchanged. |
This primitive is part of Base Operating System (BOS) Runtime.
The DL_OK_ACK primitive, DL_ERROR_ACK primitive, DL_DISABMULTI_REQ primitive.