162 lines
4 KiB
C
162 lines
4 KiB
C
|
//=============================================================================
|
||
|
// Copyright (c) 1997 Microsoft Corporation
|
||
|
// File Name: mgmigmp.h
|
||
|
//
|
||
|
// Abstract:
|
||
|
// This file contains prototypes for functions implemented in mgmigmp.h
|
||
|
//
|
||
|
// Author: K.S.Lokesh (lokeshs@) 11-1-97
|
||
|
//=============================================================================
|
||
|
|
||
|
|
||
|
#ifndef _MGMIGMP_H_
|
||
|
#define _MGMIGMP_H_
|
||
|
|
||
|
|
||
|
#define MGM_ADD_GROUP_MEMBERSHIP_ENTRY(pite,NHAddr, Src,Mask1,Group,Mask2,Flag) {\
|
||
|
DWORD RetVal;\
|
||
|
if (CAN_ADD_GROUPS_TO_MGM(pite)) {\
|
||
|
RetVal = MgmAddGroupMembershipEntry(g_MgmIgmprtrHandle,\
|
||
|
Src, Mask1, Group, Mask2, (pite)->IfIndex, NHAddr, Flag);\
|
||
|
Trace5(MGM, "Add <%d.%d.%d.%d: %d.%d.%d.%d> If:%0x to MGM Mode:%d [%d]",\
|
||
|
PRINT_IPADDR(Group), PRINT_IPADDR(Src), pite->IfIndex, Flag, RetVal);\
|
||
|
}\
|
||
|
}
|
||
|
|
||
|
#define MGM_DELETE_GROUP_MEMBERSHIP_ENTRY(pite,NHAddr, Src,Mask1,Group,Mask2,Flag){\
|
||
|
DWORD RetVal;\
|
||
|
if (CAN_ADD_GROUPS_TO_MGM(pite)){\
|
||
|
RetVal = MgmDeleteGroupMembershipEntry(g_MgmIgmprtrHandle,\
|
||
|
Src, Mask1, Group, Mask2, (pite)->IfIndex, NHAddr, Flag);\
|
||
|
Trace5(MGM, "Delete <%d.%d.%d.%d: %d.%d.%d.%d> If:%0x from MGM Mode:%d [%d]",\
|
||
|
PRINT_IPADDR(Group), PRINT_IPADDR(Src), pite->IfIndex,Flag,RetVal);\
|
||
|
}\
|
||
|
}
|
||
|
|
||
|
typedef struct _PROXY_ALERT_ENTRY {
|
||
|
LIST_ENTRY Link;
|
||
|
DWORD Group;
|
||
|
DWORD Source;
|
||
|
DWORD bPrune;
|
||
|
} PROXY_ALERT_ENTRY, *PPROXY_ALERT_ENTRY;
|
||
|
|
||
|
VOID
|
||
|
WF_ProcessProxyAlert (
|
||
|
PVOID pContext
|
||
|
);
|
||
|
|
||
|
|
||
|
DWORD
|
||
|
RegisterProtocolWithMgm(
|
||
|
DWORD ProxyOrRouter
|
||
|
);
|
||
|
|
||
|
|
||
|
DWORD
|
||
|
IgmpRpfCallback (
|
||
|
DWORD dwSourceAddr,
|
||
|
DWORD dwSourceMask,
|
||
|
DWORD dwGroupAddr,
|
||
|
DWORD dwGroupMask,
|
||
|
PDWORD dwInIfIndex,
|
||
|
PDWORD dwInIfNextHopAddr,
|
||
|
PDWORD dwUpstreamNeighbor,
|
||
|
DWORD dwHdrSize,
|
||
|
PBYTE pbPacketHdr,
|
||
|
PBYTE pbBuffer
|
||
|
);
|
||
|
|
||
|
|
||
|
DWORD
|
||
|
ProxyRpfCallback (
|
||
|
DWORD dwSourceAddr,
|
||
|
DWORD dwSourceMask,
|
||
|
DWORD dwGroupAddr,
|
||
|
DWORD dwGroupMask,
|
||
|
DWORD *dwInIfIndex,
|
||
|
DWORD *dwInIfNextHopAddr,
|
||
|
DWORD *dwUpstreamNeighbor,
|
||
|
DWORD dwHdrSize,
|
||
|
PBYTE pbPacketHdr,
|
||
|
PBYTE pbBuffer
|
||
|
);
|
||
|
|
||
|
DWORD
|
||
|
IgmpRtrCreationAlertCallback (
|
||
|
DWORD Source,
|
||
|
DWORD dwSourceMask,
|
||
|
DWORD Group,
|
||
|
DWORD dwGroupMask,
|
||
|
DWORD dwInIfIndex,
|
||
|
DWORD dwInIfNextHopAddr,
|
||
|
DWORD dwIfCount,
|
||
|
PMGM_IF_ENTRY Oif
|
||
|
);
|
||
|
|
||
|
DWORD
|
||
|
ProxyCreationAlertCallback (
|
||
|
DWORD dwSourceAddr,
|
||
|
DWORD dwSourceMask,
|
||
|
DWORD dwGroupAddr,
|
||
|
DWORD dwGroupMask,
|
||
|
DWORD dwInIfIndex,
|
||
|
DWORD dwInIfNextHopAddr,
|
||
|
DWORD dwIfCount,
|
||
|
PMGM_IF_ENTRY pmieOutIfList
|
||
|
);
|
||
|
|
||
|
DWORD
|
||
|
ProxyPruneAlertCallback (
|
||
|
DWORD dwSourceAddr,
|
||
|
DWORD dwSourceMask,
|
||
|
DWORD dwGroupAddr,
|
||
|
DWORD dwGroupMask,
|
||
|
DWORD dwIfIndex,
|
||
|
DWORD dwIfNextHopAddr,
|
||
|
BOOL bMemberDelete,
|
||
|
PDWORD pdwTimeout
|
||
|
);
|
||
|
|
||
|
DWORD
|
||
|
ProxyJoinAlertCallback (
|
||
|
DWORD dwSourceAddr,
|
||
|
DWORD dwSourceMask,
|
||
|
DWORD dwGroupAddr,
|
||
|
DWORD dwGroupMask,
|
||
|
BOOL bMemberUpdate
|
||
|
);
|
||
|
|
||
|
DWORD
|
||
|
ProcessProxyGroupChange (
|
||
|
DWORD dwSourceAddr,
|
||
|
DWORD dwGroup,
|
||
|
BOOL bAddFlag,
|
||
|
BOOL bStaticGroup
|
||
|
);
|
||
|
|
||
|
|
||
|
DWORD
|
||
|
RefreshAllMembersCallback (
|
||
|
DWORD IfIndex
|
||
|
);
|
||
|
|
||
|
DWORD
|
||
|
IgmpRefreshJoinsCallback (
|
||
|
DWORD dwIfIndex,
|
||
|
DWORD dwNHAddr
|
||
|
);
|
||
|
|
||
|
DWORD
|
||
|
MgmChangeIgmprtrStatus (
|
||
|
DWORD IfIndex,
|
||
|
BOOL Flag
|
||
|
);
|
||
|
|
||
|
DWORD
|
||
|
RefreshMgmIgmprtrGroups (
|
||
|
PIF_TABLE_ENTRY pite,
|
||
|
BOOL Flag
|
||
|
);
|
||
|
|
||
|
#endif //_MGMIGMP_H_
|