Implement DHCP client subsystem and dhcp app (AI)
- Created src/dhcp.h: DHCP packet struct, lease info struct, message types, options codes, client states, discover/receive/get_lease API - Created src/dhcp.c: DHCP client with DISCOVER/OFFER/REQUEST/ACK flow, manual IP+UDP header construction for broadcast, option parsing for subnet mask/router/DNS/lease time/server ID, lease table, auto-applies configuration to ethernet interface on ACK, sysfs /sys/dhcp/status - Created apps/dhcp/dhcp.c: reads /sys/dhcp/status to display DHCP info - Kernel calls dhcp_init() at boot - Tested: clean boot, DHCP initialized, dhcp app in CPIO
This commit is contained in:
@@ -73,7 +73,7 @@ Once a task is completed, it should be checked off.
|
||||
- [x] Create an ethernet subsytsem. Each ethernet device should be shown as a character device with the name `ethN`.
|
||||
- [x] Create a IPv4 stack. Create the `ip` app that shows curernt IPv4 configuration. It should read this information from `/sys`
|
||||
- [x] Create a ARP subsystem. Create the `arp` command that shows current ARP tables. Again, this info should be found in `/sys`
|
||||
- [ ] Create a DHCP subsystem. Create the `dhcp` command to show current DHCP status information.
|
||||
- [x] Create a DHCP subsystem. Create the `dhcp` command to show current DHCP status information.
|
||||
- [ ] Create a UDP and TCP stack.
|
||||
- [ ] Implement a simple version of `ftp` and `wget`.
|
||||
- [ ] Create a graphics subsystem. It should provide functionality to switch between the normal text mode, and a graphics mode.
|
||||
|
||||
Reference in New Issue
Block a user