|
|
|
|
SNAP-IX uses this data indication to route an MDS_MU to an MDS-level application in the following cases:
A remote MDS-level application has sent an MDS_MU, and this application has used REGISTER_MS_APPLICATION to accept MDS_MUs.
A remote application has sent an NMVT, and this application has used REGISTER_NMVT_APPLICATION to accept NMVTs after conversion to MDS_MUs. For information about how SNAP-IX determines which MS application receives an incoming NMVT, see NMVT Routing.
To return the MDS_MU_RECEIVED indication, SNAP-IX uses the callback routine that the application supplied on the REGISTER_MS_APPLICATION or REGISTER_NMVT_APPLICATION verb. For more information about the requirements for this callback routine, see The Callback Routine Specified on the ms_async Entry Point.
typedef struct mds_mu_received
{
AP_UINT16 opcode; /* Verb operation code */
unsigned char reserv2; /* reserved */
unsigned char format; /* reserved */
AP_UINT16 primary_rc; /* Primary return code */
AP_UINT32 secondary_rc; /* Secondary return code */
unsigned char first_message; /* First message for current MDS_MU */
unsigned char last_message; /* Last message for current MDS_MU */
unsigned char pu_name[8]; /* Physical unit name */
unsigned char reserv3[8]; /* reserved */
AP_UINT16 mds_mu_length; /* Length of incoming MDS_MU */
unsigned char *mds_mu; /* MDS_MU data */
} MDS_MU_RECEIVED;
SNAP-IX includes the following parameters when it sends the MDS_MU_RECEIVED indication to the MS application:
Indicates whether this message is the first, or only, message for this MDS_MU. The MDS_MU is normally sent to the application as a single message (both first_message and last_message are AP_YES). However, if the MDS_MU is larger than the max_rcv_size specified when the application issued REGISTER_MS_APPLICATION, SNAP-IX segments the MDS_MU and sends it to the application as multiple messages. Possible values are:
First or only message for this MDS_MU.
Second or subsequent message for this MDS_MU.
Indicates whether this message is the last, or only, message for this MDS_MU. The MDS_MU is normally sent to the application as a single message (both first_message and last_message are AP_YES). However, if the MDS_MU is larger than the max_rcv_size specified when the application issued REGISTER_MS_APPLICATION, SNAP-IX segments the MDS_MU and sends it to the application as multiple messages. Possible values are:
Last or only message for this MDS_MU.
First or subsequent message for a segmented MDS_MU. At least one more message follows.
If the MDS_MU was converted from an incoming NMVT, this parameter is the name of the physical unit from which the NMVT was received. If the NMVT requires a response, the application must send the response using the SEND_MDS_MU verb, and must set the pu_name parameter of the SEND_MDS_MU to this name.
The MDS_MU was converted from an incoming NMVT only if the application used the REGISTER_NMVT_APPLICATION verb to register itself as an MDS-level application that accepts NMVTs after conversion to MDS_MUs. If the MDS_MU was received from the MDS-level transport mechanism, this parameter is set to binary zeros.
Length of MDS_MU data included on this message. This can be a complete MDS_MU or a segment of complete MDS_MU, depending on the first_message and last_message parameters.
A pointer to the MDS_MU data string.
|
|
|
|
|