diff --git a/src/network/packet.rs b/src/network/packet.rs index 1fa0b12..8b2dff9 100644 --- a/src/network/packet.rs +++ b/src/network/packet.rs @@ -391,6 +391,12 @@ async fn handle_packet_register_ack( return Ok(()); }; + let via_multicast = is_multi_broadcast(&dst_mac); + if via_multicast && src_mac == eee.device_config.get_mac() { + debug!("skipping register ack from self"); + return Ok(()); + } + debug!( "Rx REGISTER ACK from {} [{}] to {} via {}", mac_to_string(&src_mac), @@ -661,10 +667,7 @@ async fn register_with_new_peer( } async fn register_with_local_peers(eee: &Node) { - if eee.config.allow_p2p { - debug!("send register to multicast sock"); - send_register(eee, &eee.multicast_sock, NULL_MAC, &None).await; - } + send_register(eee, &eee.multicast_sock, NULL_MAC, &None).await; } async fn send_register(eee: &Node, sock: &SdlanSock, mac: Mac, _v6_info: &Option) { diff --git a/src/network/tun_linux.rs b/src/network/tun_linux.rs index 7c12123..66a5840 100644 --- a/src/network/tun_linux.rs +++ b/src/network/tun_linux.rs @@ -352,8 +352,8 @@ impl TunTapPacketHandler for Iface { } } - println!("got ip packet"); - println!("got data: {:?}", rest); + // println!("got ip packet"); + // println!("got data: {:?}", rest); match edge.device.send(rest) { Ok(size) => { debug!("send to tun {} bytes", size); diff --git a/src/network/tuntap.rs b/src/network/tuntap.rs index bbc3cd3..abc7978 100644 --- a/src/network/tuntap.rs +++ b/src/network/tuntap.rs @@ -5,7 +5,7 @@ use etherparse::Ethernet2Header; use once_cell::sync::OnceCell; use sdlan_sn_rs::{ config::SDLAN_DEFAULT_TTL, - utils::{aes_encrypt, get_current_timestamp, ip_to_string, mac_to_string, Mac}, + utils::{aes_encrypt, get_current_timestamp, ip_to_string, Mac}, }; use tracing::error; @@ -14,6 +14,7 @@ use crate::{ network::{form_ethernet_packet, send_packet_to_net}, pb::{encode_to_udp_message, SdlData}, tcp::PacketType, + utils::mac_to_string, }; use super::get_edge;