diff options
author | Tom Gundersen <teg@jklm.no> | 2014-03-31 23:28:58 +0200 |
---|---|---|
committer | Tom Gundersen <teg@jklm.no> | 2014-04-01 00:32:51 +0200 |
commit | 66a67effcc5beaf8a61e1c1147c3114b02a96439 (patch) | |
tree | f2adf5d8fdf729bfa22483d6bd95f796eb344e88 /src/libsystemd-network/dhcp-network.c | |
parent | 208612034e16c6af0406fa0572da975bf8747d2e (diff) | |
download | systemd-66a67effcc5beaf8a61e1c1147c3114b02a96439.tar.gz systemd-66a67effcc5beaf8a61e1c1147c3114b02a96439.tar.bz2 systemd-66a67effcc5beaf8a61e1c1147c3114b02a96439.zip |
sd-dhcp-client: --omg-optimized
Passing the protocol to socket() is redundant as it will be specified again in
bind(). Dropping the redundancy reduces the cost of bind() from ~30ms to ~0ms.
For details see [0].
networkd in a container (i.e., with next to no network latency) can now
negotiate a DHCP lease in 0.7 - 5 ms.
Thanks to Kay for help with debugging and to Daniel Borkmann for the pointer
to fix the problem.
[0]: <https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=902fefb82ef72a50c78cb4a20cc954b037a98d1c>
Diffstat (limited to 'src/libsystemd-network/dhcp-network.c')
-rw-r--r-- | src/libsystemd-network/dhcp-network.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/src/libsystemd-network/dhcp-network.c b/src/libsystemd-network/dhcp-network.c index 29e915c473..ecc94b9be7 100644 --- a/src/libsystemd-network/dhcp-network.c +++ b/src/libsystemd-network/dhcp-network.c @@ -37,8 +37,7 @@ int dhcp_network_bind_raw_socket(int index, union sockaddr_union *link) assert(index > 0); assert(link); - s = socket(AF_PACKET, SOCK_DGRAM | SOCK_CLOEXEC | SOCK_NONBLOCK, - htons(ETH_P_IP)); + s = socket(AF_PACKET, SOCK_DGRAM | SOCK_CLOEXEC | SOCK_NONBLOCK, 0); if (s < 0) return -errno; |