3.2.4.1 Abstract Interface for Setting an Access-Accept Message

SendRadiusAccessAccept: An abstract interface for setting information to be encapsulated in a RADIUS Access-Accept response that is sent from the RNAS Policy Server back to the original RADIUS requestor. Encapsulating this information in the Access-Accept message is specified in section 3.2.5.2. The interface is defined as follows:

 HRESULT SendRadiusAccessAccept(
     [in] IPv4Filter ipv4Filter,
     [in] IPv6Filter ipv6Filter,
     [in] DWORD rdgDeviceRedirection
 );

Unless otherwise specified, all multibyte elements are in host-byte order.

The following abstract type definitions are common to several parameters.

 enum LateBoundFlags
 {
     NoReplacement = 0x00,
     ReplaceSourceAddress = 0x01,
     ReplaceDestinationAddress = 0x04,
     ReplaceSourceMaskOrPrefix = 0x10,
     ReplaceDestinationMaskOrPrefix = 0x20,
 }
  
 enum ForwardAction
 {
     Forward = 0,
     Drop = 1
 }
  
 struct IPv4Address
 {
     Byte[4] bytes;
 }
  
 struct IPv6Address
 {
     Byte[16] bytes;
 }
  

The remainder of this section describes the individual parameters of the SendRadiusAccessAccept abstract interface.

ipv4Filter: An object of an IPv4Filter abstract type that specifies the network access scope of the endpoint. The IPv4Filter abstract type is defined as follows.

 struct Filter_IPv4
 {
     IPv4Address sourceAddress;
     IPv4Address sourceMask;
     IPv4Address destinationAddress;
     IPv4Address destinationMask;
     DWORD protocol;
     DWORD lateBoundFlags; // Bitwise combination of LateBoundFlags values
 }
  
 struct FilterSet­_IPv4
 {
     ForwardAction forwardAction;
     Filter_IPv4[] filters;
 }
  
 enum InfoType_IPv4
 {
     InputFilter = 0xffff0001,
     OutputFilter = 0xffff0002,
     SiteToSiteConnection = 0xffff0009
 }
  
 struct FilterSetEntry_IPv4
 {
     InfoType_IPv4 infoType;
     FilterSet_IPv4[] filterSets;
 }
  
 struct IPv4Filter
 {
     FilterSetEntry_IPv4[] filterEntries;
 }

ipv6Filter: An object of an IPv6Filter abstract type that specifies the network access scope of the endpoint. The IPv6Filter abstract type is defined as follows.

 struct Filter_IPv6
 {
     IPv6Address sourceAddress;
     DWORD sourcePrefixLength;
     IPv6Address destinationAddress;
     DWORD destinationPrefixLength;
     DWORD protocol;
     DWORD lateBoundFlags; // Bitwise combination of LateBoundFlags values
 }
  
 struct FilterSet_IPv6
 {
     ForwardAction forwardAction;
     Filter_IPv6[] filters;
 }
  
 enum InfoType_IPv6
 {
     InputFilter = 0xffff0011,
     OutputFilter = 0xffff0012
 }
  
 struct FilterSetEntry_IPv6
 {
     InfoType_IPv6 infoType;
     FilterSet_IPv6[] filterSets;
 }
  
 struct IPv6Filter
 {
     FilterSetEntry_IPv6[] filterEntries;
 }

rdgDeviceRedirection: A DWORD value that specifies the device redirection options. For more information about possible values, see section 2.2.1.10. This parameter is applicable only when the client is an RDG server. Otherwise, it should be ignored.