Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

161 lines
4.0 KiB

  1. //=============================================================================
  2. // Copyright (c) 1997 Microsoft Corporation
  3. // File Name: mgmigmp.h
  4. //
  5. // Abstract:
  6. // This file contains prototypes for functions implemented in mgmigmp.h
  7. //
  8. // Author: K.S.Lokesh (lokeshs@) 11-1-97
  9. //=============================================================================
  10. #ifndef _MGMIGMP_H_
  11. #define _MGMIGMP_H_
  12. #define MGM_ADD_GROUP_MEMBERSHIP_ENTRY(pite,NHAddr, Src,Mask1,Group,Mask2,Flag) {\
  13. DWORD RetVal;\
  14. if (CAN_ADD_GROUPS_TO_MGM(pite)) {\
  15. RetVal = MgmAddGroupMembershipEntry(g_MgmIgmprtrHandle,\
  16. Src, Mask1, Group, Mask2, (pite)->IfIndex, NHAddr, Flag);\
  17. Trace5(MGM, "Add <%d.%d.%d.%d: %d.%d.%d.%d> If:%0x to MGM Mode:%d [%d]",\
  18. PRINT_IPADDR(Group), PRINT_IPADDR(Src), pite->IfIndex, Flag, RetVal);\
  19. }\
  20. }
  21. #define MGM_DELETE_GROUP_MEMBERSHIP_ENTRY(pite,NHAddr, Src,Mask1,Group,Mask2,Flag){\
  22. DWORD RetVal;\
  23. if (CAN_ADD_GROUPS_TO_MGM(pite)){\
  24. RetVal = MgmDeleteGroupMembershipEntry(g_MgmIgmprtrHandle,\
  25. Src, Mask1, Group, Mask2, (pite)->IfIndex, NHAddr, Flag);\
  26. Trace5(MGM, "Delete <%d.%d.%d.%d: %d.%d.%d.%d> If:%0x from MGM Mode:%d [%d]",\
  27. PRINT_IPADDR(Group), PRINT_IPADDR(Src), pite->IfIndex,Flag,RetVal);\
  28. }\
  29. }
  30. typedef struct _PROXY_ALERT_ENTRY {
  31. LIST_ENTRY Link;
  32. DWORD Group;
  33. DWORD Source;
  34. DWORD bPrune;
  35. } PROXY_ALERT_ENTRY, *PPROXY_ALERT_ENTRY;
  36. VOID
  37. WF_ProcessProxyAlert (
  38. PVOID pContext
  39. );
  40. DWORD
  41. RegisterProtocolWithMgm(
  42. DWORD ProxyOrRouter
  43. );
  44. DWORD
  45. IgmpRpfCallback (
  46. DWORD dwSourceAddr,
  47. DWORD dwSourceMask,
  48. DWORD dwGroupAddr,
  49. DWORD dwGroupMask,
  50. PDWORD dwInIfIndex,
  51. PDWORD dwInIfNextHopAddr,
  52. PDWORD dwUpstreamNeighbor,
  53. DWORD dwHdrSize,
  54. PBYTE pbPacketHdr,
  55. PBYTE pbBuffer
  56. );
  57. DWORD
  58. ProxyRpfCallback (
  59. DWORD dwSourceAddr,
  60. DWORD dwSourceMask,
  61. DWORD dwGroupAddr,
  62. DWORD dwGroupMask,
  63. DWORD *dwInIfIndex,
  64. DWORD *dwInIfNextHopAddr,
  65. DWORD *dwUpstreamNeighbor,
  66. DWORD dwHdrSize,
  67. PBYTE pbPacketHdr,
  68. PBYTE pbBuffer
  69. );
  70. DWORD
  71. IgmpRtrCreationAlertCallback (
  72. DWORD Source,
  73. DWORD dwSourceMask,
  74. DWORD Group,
  75. DWORD dwGroupMask,
  76. DWORD dwInIfIndex,
  77. DWORD dwInIfNextHopAddr,
  78. DWORD dwIfCount,
  79. PMGM_IF_ENTRY Oif
  80. );
  81. DWORD
  82. ProxyCreationAlertCallback (
  83. DWORD dwSourceAddr,
  84. DWORD dwSourceMask,
  85. DWORD dwGroupAddr,
  86. DWORD dwGroupMask,
  87. DWORD dwInIfIndex,
  88. DWORD dwInIfNextHopAddr,
  89. DWORD dwIfCount,
  90. PMGM_IF_ENTRY pmieOutIfList
  91. );
  92. DWORD
  93. ProxyPruneAlertCallback (
  94. DWORD dwSourceAddr,
  95. DWORD dwSourceMask,
  96. DWORD dwGroupAddr,
  97. DWORD dwGroupMask,
  98. DWORD dwIfIndex,
  99. DWORD dwIfNextHopAddr,
  100. BOOL bMemberDelete,
  101. PDWORD pdwTimeout
  102. );
  103. DWORD
  104. ProxyJoinAlertCallback (
  105. DWORD dwSourceAddr,
  106. DWORD dwSourceMask,
  107. DWORD dwGroupAddr,
  108. DWORD dwGroupMask,
  109. BOOL bMemberUpdate
  110. );
  111. DWORD
  112. ProcessProxyGroupChange (
  113. DWORD dwSourceAddr,
  114. DWORD dwGroup,
  115. BOOL bAddFlag,
  116. BOOL bStaticGroup
  117. );
  118. DWORD
  119. RefreshAllMembersCallback (
  120. DWORD IfIndex
  121. );
  122. DWORD
  123. IgmpRefreshJoinsCallback (
  124. DWORD dwIfIndex,
  125. DWORD dwNHAddr
  126. );
  127. DWORD
  128. MgmChangeIgmprtrStatus (
  129. DWORD IfIndex,
  130. BOOL Flag
  131. );
  132. DWORD
  133. RefreshMgmIgmprtrGroups (
  134. PIF_TABLE_ENTRY pite,
  135. BOOL Flag
  136. );
  137. #endif //_MGMIGMP_H_