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.
Item | Description |
---|---|
dl_primitive | Specifies the DL_ENABMULTI primitive. |
dl_addr_length | Specifies the length of the multicast address. |
dl_addr_offset | Indicates where the multicast address begins. The value of this parameter is the offset from the beginning of the M_PROTO message block. |
Item | Description |
---|---|
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. |
Item | Description |
---|---|
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. |
Item | Description |
---|---|
DL_BADADDR | Indicates the data link service access point (DLSAP) address information is invalid or is in an incorrect format. |
DL_NOTSUPPORTED | Indicates the primitive is known but not supported by the DLS provider. |
DL_OUTSTATE | Indicates the primitive was issued from an invalid state, or the responding stream was not in a valid state for establishing a connection. |
DL_TOOMANY | Indicates the limit has been exceeded for the maximum number of DLSAPs per stream. |
DL_SYSERR | Indicates a system error. The DL_ERROR_ACK primitive indicates the error. |