[VOL-2778] Handling IGMP
Change-Id: I54c26bc438a144c7d4c64a9b3d543461fc743ab2
diff --git a/internal/bbsim/packetHandlers/filters.go b/internal/bbsim/packetHandlers/filters.go
index 9ada88c..c46f87d 100644
--- a/internal/bbsim/packetHandlers/filters.go
+++ b/internal/bbsim/packetHandlers/filters.go
@@ -30,6 +30,13 @@
return false
}
+func IsIgmpPacket(pkt gopacket.Packet) bool {
+ if igmpLayer := pkt.Layer(layers.LayerTypeIGMP); igmpLayer != nil {
+ return true
+ }
+ return false
+}
+
func IsLldpPacket(pkt gopacket.Packet) bool {
if layer := pkt.Layer(layers.LayerTypeLinkLayerDiscovery); layer != nil {
return true
@@ -78,11 +85,13 @@
}
// returns wether it's an EAPOL or DHCP packet, error if it's none
-func IsEapolOrDhcp(pkt gopacket.Packet) (PacketType, error) {
+func GetPktType(pkt gopacket.Packet) (PacketType, error) {
if pkt.Layer(layers.LayerTypeEAP) != nil || pkt.Layer(layers.LayerTypeEAPOL) != nil {
return EAPOL, nil
} else if IsDhcpPacket(pkt) {
return DHCP, nil
+ } else if IsIgmpPacket(pkt) {
+ return IGMP, nil
}
- return UNKNOWN, errors.New("packet-is-neither-eapol-or-dhcp")
+ return UNKNOWN, errors.New("unknown-packet-type")
}