mozim

Crates.iomozim
lib.rsmozim
version0.2.7
created_at2022-12-01 13:36:45.770743+00
updated_at2025-08-15 07:13:59.993521+00
descriptionDHCP Client Library
homepage
repositoryhttps://github.com/nispor/mozim
max_upload_size
id727632
size999,031
Gris Ge (cathay4t)

documentation

README

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

# 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
Commit count: 69

cargo fmt