From ef48b85e54ce5db99ac343d06ff4ec60ec439bcb Mon Sep 17 00:00:00 2001 From: Baptiste Wicht Date: Mon, 26 Sep 2016 10:28:26 +0200 Subject: [PATCH] Handle MAC broadcast --- kernel/src/net/ip_layer.cpp | 5 +++++ 1 file changed, 5 insertions(+) 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);