[VOL-2778] Handling IGMP

Change-Id: I54c26bc438a144c7d4c64a9b3d543461fc743ab2
diff --git a/internal/bbsim/packetHandlers/filters_test.go b/internal/bbsim/packetHandlers/filters_test.go
index 8d5f96a..c182e82 100644
--- a/internal/bbsim/packetHandlers/filters_test.go
+++ b/internal/bbsim/packetHandlers/filters_test.go
@@ -20,6 +20,7 @@
 	"github.com/google/gopacket"
 	"github.com/google/gopacket/layers"
 	"github.com/opencord/bbsim/internal/bbsim/packetHandlers"
+	"github.com/opencord/bbsim/internal/bbsim/responders/igmp"
 	"gotest.tools/assert"
 	"net"
 	"testing"
@@ -62,6 +63,29 @@
 	assert.Equal(t, res, false)
 }
 
+func Test_IsIgmpPacket(t *testing.T) {
+	igmp := &igmp.IGMP{
+		Type:         layers.IGMPMembershipReportV2, //IGMPV2 Membership Report
+		Checksum:     0,
+		GroupAddress: net.IPv4(224, 0, 0, 22),
+		Version:      2,
+	}
+	buffer := gopacket.NewSerializeBuffer()
+	options := gopacket.SerializeOptions{
+		ComputeChecksums: true,
+		FixLengths:       true,
+	}
+
+	if err := gopacket.SerializeLayers(buffer, options, igmp); err != nil {
+		t.Fatal(err)
+	}
+
+	pkt := gopacket.NewPacket(buffer.Bytes(), layers.LayerTypeIGMP, gopacket.DecodeOptions{})
+
+	res := packetHandlers.IsIgmpPacket(pkt)
+	assert.Equal(t, res, true)
+}
+
 func Test_IsLldpPacket_True(t *testing.T) {
 	layer := &layers.LinkLayerDiscovery{
 		PortID: layers.LLDPPortID{