Commit graph

13 commits

Author SHA1 Message Date
Andreas Kling
bc1da7f1fd Kernel: Snooze the NetworkTask until there are incoming packets to process.
This is accomplished using a new Alarm class and a BlockedSnoozing state.
Basically, you call Process::snooze_until(some_alarm) and then the scheduler
won't wake up the process until some_alarm.is_ringing() returns true.
2019-03-20 17:09:46 +01:00
Andreas Kling
313ee8dd19 Move Lock from AK to Kernel, since it only works inside the kernel. 2019-03-16 13:18:22 +01:00
Andreas Kling
7bcd386338 NetworkAdapter: Use a ByteBuffer instead of kmalloc/kfree in send(). 2019-03-13 13:12:29 +01:00
Andreas Kling
8e667747f0 Kernel: Add a way to look up NetworkAdapters by IPv4 address. 2019-03-12 13:30:36 +01:00
Andreas Kling
87ecf290f4 Kernel: More work on the ICMP and IPv4 support. 2019-03-12 12:43:30 +01:00
Andreas Kling
9858be636f Kernel: Fix up the ICMP implementation to generate correct Echo replies.
Serenity now responds to ping. :^)
2019-03-12 11:44:38 +01:00
Andreas Kling
5bd9844dd6 Kernel: Start adding IPv4 support, starting with ICMP echo messages.
This doesn't work correctly yet, but it's getting nice enough to commit.
2019-03-12 04:11:20 +01:00
Andreas Kling
d5dbb602b8 Kernel: Tidy up networking code with some named constants. 2019-03-12 01:30:49 +01:00
Andreas Kling
318b01e055 Kernel: Bring up enough networking code that we can respond to ARP requests.
This is all pretty rickety but we can now respond to "arping" from the host
while running inside QEMU. Very cool. :^)
2019-03-11 23:21:38 +01:00
Andreas Kling
35098cbde1 Kernel: Add a NetworkTask and a received network packet queue.
It will be easier to deal with incoming packets in a separate task.
2019-03-11 12:43:45 +01:00
Andreas Kling
1678ac69ef Kernel: More work on Ethernet support. 2019-03-10 23:40:09 +01:00
Andreas Kling
4641ee49b5 Kernel: Add a simple MACAddress class. 2019-03-10 19:15:22 +01:00
Andreas Kling
405413c354 Kernel: Start adding support for E1000 network adapters. 2019-03-10 15:25:33 +01:00