[SEBA-836] BBSim Reflector

Change-Id: Ib4ae5a2c24880dc62209bebb81188eca5f57865d
diff --git a/internal/bbsim/packetHandlers/filters.go b/internal/bbsim/packetHandlers/filters.go
index 0748839..b43b677 100644
--- a/internal/bbsim/packetHandlers/filters.go
+++ b/internal/bbsim/packetHandlers/filters.go
@@ -39,14 +39,14 @@
 		ip, _ := ipLayer.(*layers.IPv4)
 
 		// FIXME find a better way to filter outgoing packets
-		if ip.SrcIP.Equal(net.ParseIP("182.21.0.128")) {
+		if ip.SrcIP.Equal(net.ParseIP("192.168.254.1")) {
 			return true
 		}
 	}
 	return false
 }
 
-// returns the Desctination Mac Address contained in the packet
+// returns the Destination Mac Address contained in the packet
 func GetDstMacAddressFromPacket(packet gopacket.Packet) (net.HardwareAddr, error) {
 	if ethLayer := packet.Layer(layers.LayerTypeEthernet); ethLayer != nil {
 		eth, _ := ethLayer.(*layers.Ethernet)
@@ -57,3 +57,25 @@
 	}
 	return nil, errors.New("cant-find-mac-address")
 }
+
+// returns the Source Mac Address contained in the packet
+func GetSrcMacAddressFromPacket(packet gopacket.Packet) (net.HardwareAddr, error) {
+	if ethLayer := packet.Layer(layers.LayerTypeEthernet); ethLayer != nil {
+		eth, _ := ethLayer.(*layers.Ethernet)
+
+		if eth.DstMAC != nil {
+			return eth.SrcMAC, nil
+		}
+	}
+	return nil, errors.New("cant-find-mac-address")
+}
+
+// returns wether it's an EAPOL or DHCP packet, error if it's none
+func IsEapolOrDhcp(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
+	}
+	return UNKNOWN, errors.New("packet-is-neither-eapol-or-dhcp")
+}