diff --git a/Kernel/FileSystem/SysFS/Subsystems/Kernel/Network/Adapters.cpp b/Kernel/FileSystem/SysFS/Subsystems/Kernel/Network/Adapters.cpp index c476212687d..9390ed49da8 100644 --- a/Kernel/FileSystem/SysFS/Subsystems/Kernel/Network/Adapters.cpp +++ b/Kernel/FileSystem/SysFS/Subsystems/Kernel/Network/Adapters.cpp @@ -44,6 +44,7 @@ ErrorOr SysFSNetworkAdaptersStats::try_generate(KBufferBuilder& builder) TRY(obj.add("link_speed"sv, adapter.link_speed())); TRY(obj.add("link_full_duplex"sv, adapter.link_full_duplex())); TRY(obj.add("mtu"sv, adapter.mtu())); + TRY(obj.add("packets_dropped"sv, adapter.packets_dropped())); TRY(obj.finish()); return {}; })); diff --git a/Kernel/Net/NetworkAdapter.cpp b/Kernel/Net/NetworkAdapter.cpp index eac82148842..8b0692d98e4 100644 --- a/Kernel/Net/NetworkAdapter.cpp +++ b/Kernel/Net/NetworkAdapter.cpp @@ -76,7 +76,7 @@ void NetworkAdapter::did_receive(ReadonlyBytes payload) m_bytes_in += payload.size(); if (m_packet_queue_size == max_packet_buffers) { - // FIXME: Keep track of the number of dropped packets + m_packets_dropped++; return; } diff --git a/Kernel/Net/NetworkAdapter.h b/Kernel/Net/NetworkAdapter.h index ddf9d69118a..d676550122b 100644 --- a/Kernel/Net/NetworkAdapter.h +++ b/Kernel/Net/NetworkAdapter.h @@ -90,6 +90,7 @@ public: u32 bytes_in() const { return m_bytes_in; } u32 packets_out() const { return m_packets_out; } u32 bytes_out() const { return m_bytes_out; } + u32 packets_dropped() const { return m_packets_dropped; } RefPtr acquire_packet_buffer(size_t); void release_packet_buffer(PacketWithTimestamp&); @@ -126,6 +127,7 @@ private: u32 m_packets_out { 0 }; u32 m_bytes_out { 0 }; u32 m_mtu { 1500 }; + u32 m_packets_dropped { 0 }; }; }