File: README.md

package info (click to toggle)
rust-mozim 0.2.7-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 440 kB
  • sloc: sh: 47; makefile: 2
file content (35 lines) | stat: -rw-r--r-- 1,109 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# Mozim -- DHCP Client Library

Still doing code sign, no real work this project can do yet.
Check again in 2022.

DONE:
 * raw socket with BPF applied and accepting all mac address.
 * DHCP discovery and request.
 * Renew, rebind.
 * DHCP IP apply via cli tool `mzc`.
 * Route
 * Timeout and retry

TODO:
 * Verify XID.
 * Handle vendor difference: https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues/848
 * Support multiple DHCP servers with `DHCPNAK` reply.
 * Support DHCPNAK
 * Support `DHCPDECLINE`: Client to server indicating network address is
   already in use.
 * Support `DHCPINFORM`: Client to server, asking only for local configuration
   parameters; client already has externally configured network address.
 * Rate control -- Token bucket (RFC 2698)
 * Initial sleep before discovery/solicit(need check RFC)

# Try out

```bash
# Below script will create veth eth1/eth1.ep.
# The `eth1.ep` is DHCP server interface running dnsmasq in `mozim` network
# namespace.
sudo ./utils/test_env_mozim &
cargo run --example mozim_dhcpv4_async
cargo run --example mozim_dhcpv6_sync
```