The dhcp server is systemd-networkd, and the dhcp plugin can request an ip but can not renew it. The systemd-networkd just ignore the renew request. ``` 2024/09/14 21:46:00 no DHCP packet received within 10s 2024/09/14 21:46:00 retrying in 31.529038 seconds 2024/09/14 21:46:42 no DHCP packet received within 10s 2024/09/14 21:46:42 retrying in 63.150490 seconds 2024/09/14 21:47:45 98184616c91f15419f5cacd012697f85afaa2daeb5d3233e28b0ec21589fb45a/iot/eth1: no more tries 2024/09/14 21:47:45 98184616c91f15419f5cacd012697f85afaa2daeb5d3233e28b0ec21589fb45a/iot/eth1: renewal time expired, rebinding 2024/09/14 21:47:45 Link "eth1" down. Attempting to set up 2024/09/14 21:47:45 98184616c91f15419f5cacd012697f85afaa2daeb5d3233e28b0ec21589fb45a/iot/eth1: lease rebound, expiration is 2024-09-14 22:47:45.309270751 +0800 CST m=+11730.048516519 ``` Follow the https://datatracker.ietf.org/doc/html/rfc2131#section-4.3.6, following options must not be sent in renew - Requested IP Address - Server Identifier Since the upstream code has been inactive for 6 years, we should switch to another dhcpv4 library. The new selected one is https://github.com/insomniacslk/dhcp. Signed-off-by: Songmin Li <lisongmin@protonmail.com>
3.7 KiB
3.7 KiB
CHANGELOG
v0.5.1
- [Improvement]: revert
go.modto Go 1.20 to resolve an issue around Go module version upgrades.
v0.5.0
This is the first release of package socket that only supports Go 1.21+. Users on older versions of Go must use v0.4.1.
- [Improvement]: drop support for older versions of Go.
- [New API]: add
socket.Connwrappers for variousGetsockoptandSetsockoptsystem calls.
v0.4.1
- [Bug Fix] commit:
ensure
socket.Conncan be used with non-socket file descriptors by handlingENOTSOCKin the constructor.
v0.4.0
This is the first release of package socket that only supports Go 1.18+. Users on older versions of Go must use v0.3.0.
- [Improvement]: drop support for older versions of Go so we can begin using
modern versions of
x/sysand other dependencies.
v0.3.0
This is the last release of package socket that supports Go 1.17 and below.
- [New API/API change] PR:
numerous
socket.Connmethods now support context cancelation. Future releases will continue adding support as needed.- New
ReadContextandWriteContextmethods. Connect,Recvfrom,Recvmsg,Sendmsg, andSendtomethods now accept a context.Sendtoparameter order was also fixed to match the underlying syscall.
- New
v0.2.3
- [New API] commit:
socket.Connhas newPidfd*methods for wrapping thepidfd_*(2)family of system calls.
v0.2.2
- [New API] commit:
socket.Connhas newIoctlKCM*methods for wrappingioctl(2)forAF_KCMoperations.
v0.2.1
- [New API] commit:
socket.Connhas a newSetsockoptPacketMreqmethod for wrappingsetsockopt(2)forAF_PACKETsocket options.
v0.2.0
- [New API] commit:
socket.FileConncan be used to create asocket.Connfrom an existingos.File, which may be provided by systemd socket activation or another external mechanism. - [API change] commit:
socket.Conn.Connectnow returns theunix.Sockaddrvalue provided bygetpeername(2), since we have to invoke that system call anyway to verify that a connection to a remote peer was successfully established. - [Bug Fix] commit:
check the correct error from
unix.GetsockoptIntin thesocket.Conn.Connectmethod. Thanks @vcabbage!
v0.1.2
- [Bug Fix]:
socket.Conn.Connectnow properly checks theSO_ERRORsocket option value after callingconnect(2)to verify whether or not a connection could successfully be established. This means thatConnectshould now report an error for anAF_INETTCP connection refused orAF_VSOCKconnection reset by peer. - [New API]: add
socket.Conn.Getpeernamefor use inConnect, but also for use by external callers.
v0.1.1
- [New API]:
socket.Connnow hasCloseRead,CloseWrite, andShutdownmethods. - [Improvement]: internal rework to more robustly handle various errors.
v0.1.0
- Initial unstable release. Most functionality has been developed and ported
from package
netlink.