mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager
synced 2024-10-15 04:24:32 +00:00
e12e5a2ad4
Currently the internal DHCP client sets traffic class "CS6" in the DS
field of the IP header for outgoing packets.
dhclient sets the field according to the definition of TOS (RFC 1349),
which was was deprecated in 1998 by RFC 2474 in favor of DSCP.
Introduce a new property IPvX.dhcp-dscp (currently valid only for
IPv4) to specify a custom DSCP value for DHCP backends that support it
(currently, only the internal one).
Define the default value to CS0, because:
- section 4.9 of RFC 4594 specifies that DHCP should use the standard
(CS0 = 0) service class;
- section 3.2 says that class CS6 is for "transmitting packets
between network devices (routers) that require control (routing)
information to be exchanged between nodes", listing "OSPF, BGP,
ISIS, RIP" as examples of such traffic. Furthermore, it says that:
User traffic is not allowed to use this service class. By user
traffic, we mean packet flows that originate from user-controlled
end points that are connected to the network.
- we got reports of some Cisco switches dropping DHCP packets because
of the CS6 marking.
(cherry picked from commit
|
||
---|---|---|
.. | ||
meson.build | ||
nm-auth-subject.c | ||
nm-auth-subject.h | ||
nm-common-macros.h | ||
nm-libnm-core-utils.c | ||
nm-libnm-core-utils.h | ||
README.md |
libnm-core-aux-intern
libnm-core-aux-intern
is a static library that:
- uses parts of
libnm-core-impl
, that are public API oflibnm
(i.e.libnm-core-public
). - that is statically linked into
libnm-core-impl
(and thuslibnm
and NetworkManager core. - that can also be statically linked into other users of
libnm
.
Basically, it is a static library with utility functions that extends
libnm-core-impl
(the part that is public API of libnm),
but it is also used by libnm-core-impl
itself.
That means:
- you can use it everywhere where you either statically link
with
libnm-core-impl
, or dynamically link withlibnm
. - you can even use it inside of
libnm-core-impl
itself. This is the difference betweenlibnm-core-aux-intern
andlibnm-core-aux-extern
.
Note that libnm-core-aux-intern
only uses public API of libnm
.
This directory should not be added to the include search path. Instead,
users should fully qualify the include like #include "libnm-core-aux-intern/nm-auth-subject.h"
.