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_
|