LPM_GetRsvpObjects function (lpmapi.h)

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 cbGetRsvpObjects callback function.

Syntax

ULONG LPM_GetRsvpObjects(
  [in]  RHANDLE       PcmReqHandle,
  [in]  ULONG         MaxPdSize,
  [in]  RSVP_HOP      *SendingIntfAddr,
  [in]  RSVP_MSG_OBJS *pRsvpMsgObjs,
  [out] int           *pRsvpObjectsCount,
  [out] RsvpObjHdr    ***pppRsvpObjects,
  [out] void          *Reserved
);

Parameters

[in] PcmReqHandle

Unique handle that distinguishes this request from all other requests. LPMs should use this PcmReqHandle when returning results asynchronously using the cbGetRsvpObjects callback function.

[in] MaxPdSize

Maximum allowable size of the returned policy data.

[in] SendingIntfAddr

Pointer to the interface on which the RSVP message will be sent out. The sending interface IP address is supplied as the RSVP HOP object, which equates to PHOP for PATH messages and NHOP for RESV messages. The Logical Interface Handle is set to the SNMP Index. Note that interface index numbers can change with the addition and deletion of interfaces, due to the Plug and Play features of Windows 2000.

[in] pRsvpMsgObjs

RSVP objects generated by the SBM. All RSVP objects are in host order. The objects in the following table are supplied.

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 directly 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.

[out] pRsvpObjectsCount

Pointer to the number of policy objects being returned. When an LPM is immediately returning results, the pRsvpObjectsCount and pppRsvpObjects parameters should be used to return policy data objects. Note that the buffer containing the policy data objects should be allocated using the memory allocation function PALLOCMEM, supplied within the LPM_Initialize function.

[out] pppRsvpObjects

Pointer to an array of policy data object pointers returned in response to the request. Note that the buffer containing the policy data objects, and this array of policy data object pointers, should be allocated using the memory allocation function PALLOCMEM, supplied within the LPM_Initialize function.

[out] Reserved

Reserved for future use.

Return value

This function returns ULONG.

Remarks

If an LPM does not 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 is not possible, an LPM should return LPM_RESULT_DEFER, and return the result by calling the cbGetRsvpObjects 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.
 

Requirements

Requirement Value
Minimum supported client Windows 2000 Professional [desktop apps only]
Minimum supported server Windows 2000 Server [desktop apps only]
Target Platform Windows
Header lpmapi.h

See also

LPM_Initialize

PALLOCMEM

cbAdmitResult

cbGetRsvpObjects