diff --git a/src/Groundstation/Automated/Hub.cpp b/src/Groundstation/Automated/Hub.cpp
index 523568364cb10c1b4058794a0ceb4c4bd1f7acc6..f77e4bcaf5406fa271946389038354f4fc01e5d3 100644
--- a/src/Groundstation/Automated/Hub.cpp
+++ b/src/Groundstation/Automated/Hub.cpp
@@ -247,7 +247,8 @@ void Hub::dispatchOutgoingMsg(const mavlink_message_t& msg)
         msg.msgid == MAVLINK_MSG_ID_ROCKET_STATS_TM)
     {
         TRACE(
-            "[info] Hub: A MAIN packet was received from ground packet "
+            "[info][SNIFFING] Hub: A MAIN packet was received from ground "
+            "packet "
             "(ethernet probably and NOT radio)\n");
         /* The message received by ethernet (outgoing) in reality is not a
          * command but the telemetry spoofed, therefore is then used as incoming
@@ -272,7 +273,8 @@ void Hub::dispatchIncomingMsg(const mavlink_message_t& msg)
         mavlink_msg_rocket_flight_tm_decode(&msg, &rocketTM);
         uint64_t timestamp = mavlink_msg_rocket_flight_tm_get_timestamp(&msg);
         TRACE(
-            "[info] Hub: A FLIGHT_ROCKET_TM packet was received from ground "
+            "[info][Radio/Sniffing] Hub: A FLIGHT_ROCKET_TM packet was "
+            "received "
             "packet with ts %llu\n",
             timestamp);
         /* Messages older and within the discard interval are treated as old
@@ -280,8 +282,10 @@ void Hub::dispatchIncomingMsg(const mavlink_message_t& msg)
         if (timestamp <= lastFlightTMTimestamp &&
             lastFlightTMTimestamp > timestamp + DISCARD_MSG_DELAY)
             return;
-        TRACE("[info] Hub: A FLIGHT_ROCKET_TM packet is valid with ts %llu\n",
-              timestamp);
+        TRACE(
+            "[info][Radio/Sniffing] Hub: A FLIGHT_ROCKET_TM packet is valid "
+            "with ts %llu\n",
+            timestamp);
         lastFlightTMTimestamp = timestamp;
         NASState nasState{
             mavlink_msg_rocket_flight_tm_get_timestamp(&msg),
@@ -302,7 +306,7 @@ void Hub::dispatchIncomingMsg(const mavlink_message_t& msg)
         mavlink_rocket_stats_tm_t rocketST;
         mavlink_msg_rocket_stats_tm_decode(&msg, &rocketST);
         TRACE(
-            "[info] Hub: A ROCKET_STAT_TM packet was received from ground "
+            "[info][Radio/Sniffing] Hub: A ROCKET_STAT_TM packet was received "
             "packet with ts %llu\n",
             rocketST.timestamp);
         /* Messages older and within the discard interval are treated as old
@@ -310,8 +314,10 @@ void Hub::dispatchIncomingMsg(const mavlink_message_t& msg)
         if (rocketST.timestamp <= lastStatsTMTimestamp &&
             lastStatsTMTimestamp > rocketST.timestamp + DISCARD_MSG_DELAY)
             return;
-        TRACE("[info] Hub: A ROCKET_STAT_TM packet is valid, with ts %llu\n",
-              rocketST.timestamp);
+        TRACE(
+            "[info][Radio/Sniffing] Hub: A ROCKET_STAT_TM packet is valid, "
+            "with ts %llu\n",
+            rocketST.timestamp);
         lastStatsTMTimestamp = rocketST.timestamp;
 
         // TODO: The origin should have its own struct since only timestamp and
diff --git a/src/Groundstation/Common/Ports/EthernetBase.cpp b/src/Groundstation/Common/Ports/EthernetBase.cpp
index dbae923398a5de4a357da89095135aad164cf97e..76e66d89a1a3e7ce7d47cd129a48152a8e690fc2 100644
--- a/src/Groundstation/Common/Ports/EthernetBase.cpp
+++ b/src/Groundstation/Common/Ports/EthernetBase.cpp
@@ -85,6 +85,17 @@ bool EthernetBase::start(std::shared_ptr<Boardcore::Wiz5500> wiz5500)
         WizMac mac = MAC_BASE;
         // Add to the mac address the offset set on the dipswitch
         mac.c += 1 + ipOffset;
+        // In case of sniffing change ulteriorly the MAC to avoid switch to
+        // filter based on not whole MAC...
+        if (sniffOtherGs)
+        {
+            mac.a += 1;
+            mac.b += 1;
+            mac.c += 1;
+            mac.d += 1;
+            mac.e += 1;
+            mac.f += 1;
+        }
         this->wiz5500->setSourceMac(mac);
     }
     else
@@ -115,7 +126,7 @@ bool EthernetBase::start(std::shared_ptr<Boardcore::Wiz5500> wiz5500)
     if (sniffOtherGs)
     {
         getModule<EthernetSniffer>()->init(1, SEND_PORT, RECV_PORT);
-        if (!getModule<EthernetSniffer>()->start(wiz5500))
+        if (!getModule<EthernetSniffer>()->start(this->wiz5500))
             return false;
     }
 
diff --git a/src/Groundstation/Common/Ports/EthernetSniffer.cpp b/src/Groundstation/Common/Ports/EthernetSniffer.cpp
index 564024f893ad963d69c63ce4ec9ab24e561ae07b..e08e1c538c3f842536cf6097bde48d7572b11d7e 100644
--- a/src/Groundstation/Common/Ports/EthernetSniffer.cpp
+++ b/src/Groundstation/Common/Ports/EthernetSniffer.cpp
@@ -51,9 +51,9 @@ Boardcore::Wiz5500::PhyState EthernetSniffer::getState()
 void EthernetSniffer::init(uint16_t portNumber, uint16_t srcPort,
                            uint16_t dstPort)
 {
-    portNr  = portNumber;
-    srcPort = srcPort;
-    dstPort = dstPort;
+    portNr        = portNumber;
+    this->srcPort = srcPort;
+    this->dstPort = dstPort;
 }
 
 bool EthernetSniffer::start(std::shared_ptr<Boardcore::Wiz5500> wiz5500)
@@ -62,7 +62,7 @@ bool EthernetSniffer::start(std::shared_ptr<Boardcore::Wiz5500> wiz5500)
 
     TRACE("[info] Opening sniffing UDP socket\n");
     // We open the UDP socket for sniffing
-    if (!this->wiz5500->openUdp(1, SEND_PORT, {255, 255, 255, 255}, RECV_PORT,
+    if (!this->wiz5500->openUdp(portNr, srcPort, {255, 255, 255, 255}, dstPort,
                                 500))
     {
         return false;