|
My Kernel v0.1.0
|

Modules | |
| Layer 3 - Address Resolution Protocol (ARP) | |
| TCP/IP Illustrated Vol I - Chapter 4 - ARP RFC 826 | |
| Layer 2 - Ethernet | |
| Network Interfaces | |
| Layer 3 - Internet Protocol (IPv4) | |
| TCP/IP Illustrated Vol I - Chapter 5 - IP RFC 791 | |
| Packet | |
| BSD Sockets | |
| Berkley Sockets implementation. | |
Macros | |
| #define | hton(_x) |
| Convert an interger to its network representation (big endian) | |
| #define | ntoh(_x) |
| Convert an interger from its network representation to that of the host. | |
Functions | |
| u16 | net_internet_checksum (const u16 *addr, size_t size) |
Compute Internet Checksum for size bytes beginning at location addr. More... | |
This is the core of the kernel's networking API.
The goal for this API is to follow the OSI model's philosophy and organize things in a hierarchical manner.
There should be one sub-api for each "protocol" of each layer. These functions should only interact with THEIR part of the packet, and call the lower/higher layer API's function to process the next part of the packet.
For example, when sending a TCP packet over ethernet, the codepath should look like so:
| u16 net_internet_checksum | ( | const u16 * | addr, |
| size_t | size | ||
| ) |
Compute Internet Checksum for size bytes beginning at location addr.