diff --git a/kernel/src/net/ip_layer.cpp b/kernel/src/net/ip_layer.cpp index a8733760..6a98271b 100644 --- a/kernel/src/net/ip_layer.cpp +++ b/kernel/src/net/ip_layer.cpp @@ -66,6 +66,11 @@ void prepare_packet(network::ethernet::packet& packet, network::interface_descri } std::expected get_target_mac(network::interface_descriptor& interface, network::ip::address target_ip){ + // Handle broadcast + if(target_ip == network::ip::make_address(255, 255, 255, 255)){ + return 0xFFFFFFFFFFFF; + } + // For loopback, there is no gateway if(interface.is_loopback()){ return network::arp::get_mac_force(interface, target_ip, ARP_TIMEOUT);