Platform SDK: Quality of Service

Overriding Default RSVP Filter Style Settings

Default RSVP filter style settings can be overridden through the use of the RSVP_RESERVE_INFO object by specifying one of the following values in the Style member of the RSVP_RESERVE_INFO object, along with required flowdescriptors.

The RSVP_FIXED_FILTER_STYLE Object

The RSVP_FIXED_FILTER_STYLE object may be specified in the Style member of the RSVP_RESERVE_INFO object to override default settings of the wildcard filter (WF) RSVP filter style setting for multicast or unconnected UDP unicast receivers. This capability is useful when a multicast session has multiple senders; rather than accepting the default WF reservation that provides a shared reservation among all senders, you can use RSVP_FIXED_FILTER_STYLE to set up individual reservations for each sender. Another similar situation is when the receiver is using unconnected UDP to receive from multiple senders, in which a RSVP_FIXED_FILTER_STYLE can again be used to set up individual reservations for each sender.

Note that flowdescriptors must be specified when using the RSVP_FIXED_FILTER_STYLE object, and the NumFlowDesc member of RSVP_RESERVE_INFO is set to the number of senders, and FlowDescList of RSVP_RESERVE_INFO is set to each sender's address/port. This is only appropriate when multiple senders are involved.

The RSVP_WILDCARD_STYLE Object

The RSVP_WILDCARD_STYLE object may be specified in the Style member of the RSVP_RESERVE_INFO object to override default settings of the fixed filter (FF) RSVP filter style setting for unicast receivers.

Note that flowdescriptors must not be specified when using the RSVP_WILDCARD_STYLE object, such that the NumFlowDesc member of RSVP_RESERVE_INFO is set to zero, and FlowDescList of RSVP_RESERVE_INFO is set to NULL.

The RSVP_SHARED_EXPLICIT_STYLE Object

The RSVP_SHARED_EXPLICIT_STYLE object may be specified in the Style member of the RSVP_RESERVE_INFO object to override default RSVP filter style settings. The RSVP_SHARED_EXPLICIT_STYLE object is used to create an RSVP Shared Explicit (SE) reservation (see Base RSVP Reservation Styles). Note that the only way to create connections that use the shared explicit (SE) RSVP filter style is through this mechanism.

The RSVP_SHARED_EXPLICIT_STYLE object cannot be applied to TCP receivers or to connected UDP receivers.

When the RSVP_SHARED_EXPLICIT_STYLE is used, the flow's resources are shared between all senders listed in the FilterSpec. Also, when using the RSVP_SHARED_EXPLICIT_STYLE object, flowdescriptors must be specified, such that the NumFlowDesc member of RSVP_RESERVE_INFO is set to 1, and FlowDescList of RSVP_RESERVE_INFO is not set to NULL.

It is important to note that the number of senders included in any individual Shared Explicit reservation should be limited to a reasonable number of senders (such as 10). If more than 10 senders will be included in a given reservation, senders should use the WF reservation style.

Generating Multiple Fixed Filter Reservations in a Single Reservation

It may be useful in certain situations to enable a receiver to reserve mutually exclusive flows for multiple, explicitly identified sources. This is achieved by generating multiple fixed filter (FF) RSVP reservations in a single reservation.

To do this, specify RSVP_FIXED_FILTER_STYLE in the Style member of the RSVP_RESERVE_INFO object, followed by a list of multiple flowdescriptors. So for n explicitly identified sources, the NumFlowDesc member of the RSVP_RESERVE_INFO object is set to n, and the FlowDescList member of the RSVP_RESERVE_INFO object is set to n sender addresses/ports.

Note that this cannot be done with TCP receivers, as TCP receivers are assumed connected to a single-peer sender. This should not be applied to UDP receivers that have been connected using the WSAConnect function. In these cases, the transport discards data from all senders other than the sender specified in the WSAConnect function call.