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