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