[SEBA-875] Filtering out LLDP packets

Change-Id: Ia25771e307daf724a00f9fa263a69ba280b4df9a
diff --git a/internal/bbsim/devices/nni.go b/internal/bbsim/devices/nni.go
index 3a36287..ad01f2f 100644
--- a/internal/bbsim/devices/nni.go
+++ b/internal/bbsim/devices/nni.go
@@ -74,34 +74,43 @@
 // sendNniPacket will send a packet out of the NNI interface.
 // We will send upstream only DHCP packets and drop anything else
 func sendNniPacket(packet gopacket.Packet) error {
-	if isDhcp := packetHandlers.IsDhcpPacket(packet); !isDhcp {
+	isDhcp := packetHandlers.IsDhcpPacket(packet)
+	isLldp := packetHandlers.IsLldpPacket(packet)
+
+	if isDhcp == false && isLldp == false {
 		nniLogger.WithFields(log.Fields{
 			"packet": packet,
 		}).Trace("Dropping NNI packet as it's not DHCP")
+		return nil
 	}
 
-	packet, err := packetHandlers.PopDoubleTag(packet)
-	if err != nil {
-		nniLogger.WithFields(log.Fields{
-			"packet": packet,
-		}).Errorf("Can't remove double tags from packet: %v", err)
-		return err
-	}
+	if isDhcp {
+		packet, err := packetHandlers.PopDoubleTag(packet)
+		if err != nil {
+			nniLogger.WithFields(log.Fields{
+				"packet": packet,
+			}).Errorf("Can't remove double tags from packet: %v", err)
+			return err
+		}
 
-	handle, err := getVethHandler(nniVeth)
-	if err != nil {
-		return err
-	}
+		handle, err := getVethHandler(nniVeth)
+		if err != nil {
+			return err
+		}
 
-	err = handle.WritePacketData(packet.Data())
-	if err != nil {
-		nniLogger.WithFields(log.Fields{
-			"packet": packet,
-		}).Errorf("Failed to send packet out of the NNI: %s", err)
-		return err
-	}
+		err = handle.WritePacketData(packet.Data())
+		if err != nil {
+			nniLogger.WithFields(log.Fields{
+				"packet": packet,
+			}).Errorf("Failed to send packet out of the NNI: %s", err)
+			return err
+		}
 
-	nniLogger.Infof("Sent packet out of NNI")
+		nniLogger.Infof("Sent packet out of NNI")
+	} else if isLldp {
+		// TODO rework this when BBSim supports data-plane packets
+		nniLogger.Trace("Received LLDP Packet, ignoring it")
+	}
 	return nil
 }