Platform SDK: Quality of Service |
The LPM_GetRsvpObjects function allows the PCM to query LPMs for policy data. The data is forwarded by the PCM to the SBM for inclusion in RSVP refresh messages that require policy data.
Results from the LPM_GetRsvpObjects function can be returned synchronously or asynchronously. Asynchronous results are returned by calling the cbpGetRsvpObjects callback function.
ULONG APIENTRY LPM_GetRsvpObjects ( RHANDLE PcmReqHandle, ULONG MaxPdSize, RSVP_HOP *SendingIntfAddr, RSVP_MSG_OBJS *pRsvpMsgObjs, int *pRsvpObjectsCount, RsvpObjHdr ***pppRsvpObjects, void *Reserved );
Value | Meaning |
---|---|
RsvpMsgType | RSVP message type, as defined in the RSVP protocol. This can be used by an LPM to locate the state from which it can generate policy data objects. |
RsvpSession | RSVP session for which the SBM requires policy information. This can be used by an LPM to locate the state from which it can generate policy data objects. |
RsvpHop | The HOP to which the RSVP message is being forwarded. Since a PATH message is sent directory to the session address, this HOP pointer is NULL for PATH messages. For all other messages, the address in the HOP object is the node address and the LIH is unused. |
RsvpStyle | RSVP reservation style, as defined in the RSVP protocol. If an RESV message is being sent out by the SBM, RsvpStyle specifies the reservation style. If a PATH message is being sent, RsvpStyle is NULL. |
RsvpScope | The RSVP scope of an outgoing RESV message, as long as the SCOPE object is not NULL. Used only for WF-style reservations. For all other RSVP reservation styles, RsvpScope is NULL. |
FlowDescCount | Number of flow descriptors. |
FlowDescList | Array of flow descriptor pointers in the outgoing RSVP message. For PATH messages, there will be only one FlowDescriptor containing sender template and sender TSPEC. |
If an LPM doesn't have policy data to return from the LPM_GetRsvpObjects function call, it should synchronously return LPM_RESULT_READY, set pppRsvpObjects to NULL, and set pRsvpObjectsCount to zero. If a synchronous return isn't possible, an LPM should return LPM_RESULT_DEFER, and return the result by calling the cbpGetRsvpObjects callback function. If the LPM does not have any policy data objects to return, it can set pppRsvpObjects to NULL and pRsvpObjectsCount to zero.
If any LPM returns LPV_DROP_MSG, the SBM will not send out an RSVP refresh message, and will free the policy data objects returned by other LPMs (those that did not return LPM_DROP_MSG, if any). By not sending out RSVP refresh messages, a flow's RSVP state both upstream and downstream will begin to age, and eventually get deleted.
Note The SBM will send out the RSVP refresh message even if some or all LPMs fail to return policy data objects in a timely fashion, even though such an outgoing RSVP message may not contain all policy data objects it should.
Windows NT/2000: Requires Windows 2000.
Windows 95/98: Unsupported.
Header: Declared in Lpmapi.h.