30 lines
2.0 KiB
C
30 lines
2.0 KiB
C
/*
|
|
* File: load.h
|
|
* Description: This file contains function prototypes for the load
|
|
* module packet filtering extensions.
|
|
* History: Created by shouse, 1.11.02
|
|
*/
|
|
|
|
/* This function retrieves all necessary state from the load module in order to determine whether
|
|
a given packet would be accepted by the load module in its current state and why or why not. */
|
|
void LoadFilter (ULONG64 pLoad, ULONG dwClientIPAddress, ULONG dwClientPort, ULONG dwServerIPAddress, ULONG dwServerPort, USHORT wProtocol, UCHAR cFlags, BOOL bLimitMap, BOOL bReverse);
|
|
|
|
/* This function retrieves the appropriate port rule given the server side parameters of the connection. */
|
|
ULONG64 LoadPortRuleLookup (ULONG64 pLoad, ULONG dwServerIPAddress, ULONG dwServerPort, BOOL bIsTCP, BOOL * bIsDefault);
|
|
|
|
/* This function searches for and returns any existing descriptor matching the given IP tuple; otherwise, it returns NULL (0). */
|
|
ULONG64 LoadFindDescriptor (ULONG64 pLoad, ULONG index, ULONG dwServerIPAddress, ULONG dwServerPort, ULONG dwClientIPAddress, ULONG dwClientPort, USHORT wProtocol);
|
|
|
|
/* This function determines whether a given IP tuple matches a given connection descriptor. */
|
|
BOOL LoadConnectionMatch (ULONG64 pDescriptor, ULONG dwServerIPAddress, ULONG dwServerPort, ULONG dwClientIPAddress, ULONG dwClientPort, USHORT wProtocol);
|
|
|
|
/* This function determines whether or not a given NLB instance is configured for BDA teaming and returns the
|
|
load module pointer that should be used. */
|
|
BOOL AcquireLoad (ULONG64 pContext, PULONG64 pLoad, BOOL * pbRefused);
|
|
|
|
/* This function is a simple hash based on the IP 4-tuple used to locate state for the connection. */
|
|
ULONG LoadSimpleHash (ULONG dwServerIPAddress, ULONG dwServerPort, ULONG dwClientIPAddress, ULONG dwClientPort);
|
|
|
|
/* This is the conventional NLB hashing algorithm, which ends up invoking a light-weight encryption algorithm to calculate a hash. */
|
|
ULONG LoadComplexHash (ULONG dwServerIPAddress, ULONG dwServerPort, ULONG dwClientIPAddress, ULONG dwClientPort, ULONG dwAffinity, BOOL bReverse, BOOL bLimitMap);
|