[SEBA-842] Doubletagging DHCP packets going to VOLTHA
Change-Id: I8e7d2af217228e96dcdc3bc94318b5e29b71f676
diff --git a/internal/bbsim/packetHandlers/filters.go b/internal/bbsim/packetHandlers/filters.go
index 3233c8c..0748839 100644
--- a/internal/bbsim/packetHandlers/filters.go
+++ b/internal/bbsim/packetHandlers/filters.go
@@ -17,6 +17,7 @@
package packetHandlers
import (
+ "errors"
"github.com/google/gopacket"
"github.com/google/gopacket/layers"
"net"
@@ -29,6 +30,9 @@
return false
}
+// return true if the packet is coming in the OLT from the NNI port
+// it uses the ack to check if the source is the one we assigned to the
+// dhcp server
func IsIncomingPacket(packet gopacket.Packet) bool {
if ipLayer := packet.Layer(layers.LayerTypeIPv4); ipLayer != nil {
@@ -41,3 +45,15 @@
}
return false
}
+
+// returns the Desctination 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)
+
+ if eth.DstMAC != nil {
+ return eth.DstMAC, nil
+ }
+ }
+ return nil, errors.New("cant-find-mac-address")
+}