2.2.1.2.6 FILTER_INFO

The FILTER_INFO structure MUST specify the five-tuple filter to be used in FILTER_DESCRIPTOR (section 2.2.1.2.5).

 typedef struct _FILTER_INFO {
   DWORD dwSrcAddr;
   DWORD dwSrcMask;
   DWORD dwDstAddr;
   DWORD dwDstMask;
   DWORD dwProtocol;
   DWORD fLateBound;
   WORD wSrcPort;
   WORD wDstPort;
 } FILTER_INFO,
  *PFILTER_INFO;

dwSrcAddr: A 32-bit, unsigned integer in network byte order that MUST contain the IPv4 source address for which the filter (2) applies. A value of 0x00000000 in this field signifies ANY.

dwSrcMask: A 32-bit, unsigned integer in network byte order that MUST contain the subnet mask for the source address. See [RFC950].

dwDstAddr: A 32-bit, unsigned integer in network byte order that MUST contain the IPv4 destination address for the filter. A value of 0x00000000 in this field signifies ANY.

dwDstMask: A 32-bit, unsigned integer in network byte order that MUST be the subnet mask for the destination address in network byte order. See [RFC950].

dwProtocol: A 32-bit, unsigned integer in little-endian byte order that MUST be the protocol number (such as TCP or UDP) for the filter. Possible values include the following.

Value

Meaning

0x00000000

ANY

0x00000001

ICMP

0x0000003A

ICMPv6

0x00000006

TCP

0x00000011

UDP

The complete list is specified in [RFC1700].

fLateBound: A 32-bit, unsigned integer in little-endian byte order that indicates to the RRAS server if the fields in the filter can be dynamically replaced by the RRAS server with values for specific endpoints at the time those endpoints request network access. This MUST be a combination of one or more of the following values.

Value

Meaning

0x00000000

No source or destination address or mask replacement.

0x00000001

Source address replaceable with a new address.

0x00000004

Destination address replaceable with a new address.

0x00000010

Source address mask replaceable with a new mask.

0x00000020

Destination address mask replaceable with a new mask.

wSrcPort: If the protocol is TCP or UDP, this MUST be a 16-bit, unsigned integer in network byte order that specifies a port number for the corresponding protocol. If the protocol is ICMP or ICMPv6, this MUST be a 16-bit, unsigned integer in little-endian byte order that specifies a type indicator for ICMP or ICMPv6 correspondingly. For all other protocol values, this MUST be set to 0 (byte order does not matter).

wDstPort: If the protocol is TCP or UDP, this MUST be a 16-bit, unsigned integer in network byte order that specifies a port number for the corresponding protocol. If the protocol is ICMP or ICMPv6, this MUST be a 16-bit, unsigned integer in little-endian byte order that specifies a code indicator for ICMP or ICMPv6 correspondingly. For all other protocol values, this MUST be set to 0 (byte order does not matter).