1#include "defs.h"
2
3static int igmpSState = 0;
4
5// Local function Prototypes
6int igmpProxyInit();
7void igmpProxyCleanUp();
8
9void
10setIgmpSState(int state)
11{
12    igmpSState = state;
13}
14
15int
16getIgmpSState()
17{
18    return igmpSState;
19}
20
21/**
22*   Handles the initial startup of IGMP SNOOPING
23*/
24int
25igmpSnoopInit()
26{
27    atlog(LOG_DEBUG, 0, "igmpSnoopInit...");
28    initFdbTable();
29//    enableHwIGMPS();
30
31    //Disable unknown multicast packets over vlans.
32    // marked by Kane, to avoid switch block ipv6 packets
33//    setMultiOnVlan(0);
34
35    //Insert 224.0.0.1 into ARL table
36    addMFdb(0xe0000001,30);
37
38    //initSnoopBr();
39
40    return 1;
41}
42
43/**
44*   Clean up all on exit...
45*/
46void
47igmpSnoopCleanUp()
48{
49    atlog(LOG_DEBUG, 0, "igmpSnoopCleanUp...");
50    //clearSnoopBr();
51
52    //Enable unknow multicaset packets over vlans.
53    // marked by Kane, to avoid switch block ipv6 packets
54//    setMultiOnVlan(1);
55
56    // delete 224.0.0.1 from ARL table.
57    delMFdb(0xe0000001);
58
59    clearAllFdbs();
60    disableHwIGMPS();
61
62}
63