NetworkManager/src/libnm-core-aux-intern
Beniamino Galvani e12e5a2ad4 libnm,nmcli: add ipvx.dhcp-dscp property
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 fcd907e062)
2024-02-06 17:02:30 +01:00
..
meson.build build/meson: cleanup dependencies for libnm-core-aux-intern 2021-02-28 10:42:05 +01:00
nm-auth-subject.c all: use NM_MIN() instead of MIN() 2023-11-15 09:32:20 +01:00
nm-auth-subject.h all: use _NM_G_TYPE_CHECK_INSTANCE_CAST() for internal uses 2022-12-16 10:55:03 +01:00
nm-common-macros.h wifi: add "wifi.cloned-mac-address=stable-ssid" 2023-11-16 13:07:54 +01:00
nm-libnm-core-utils.c libnm,nmcli: add ipvx.dhcp-dscp property 2024-02-06 17:02:30 +01:00
nm-libnm-core-utils.h libnm,nmcli: add ipvx.dhcp-dscp property 2024-02-06 17:02:30 +01:00
README.md build: move "libnm-core/" to "src/" and split it 2021-02-18 19:46:51 +01:00

libnm-core-aux-intern

libnm-core-aux-intern is a static library that:

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:

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".