NetworkManager/src/core/settings
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
..
plugins libnm,nmcli: add ipvx.dhcp-dscp property 2024-02-06 17:02:30 +01:00
nm-agent-manager.c style: various minor adjustments 2022-10-25 08:41:45 +02:00
nm-agent-manager.h all: use _NM_G_TYPE_CHECK_INSTANCE_CAST() for internal uses 2022-12-16 10:55:03 +01:00
nm-secret-agent.c doc: replace all (allow-none) annotations by (optional) and/or (nullable) 2023-03-27 11:49:43 +02:00
nm-secret-agent.h all: use _NM_G_TYPE_CHECK_INSTANCE_CAST() for internal uses 2022-12-16 10:55:03 +01:00
nm-settings-connection.c settings: fix passing force_rename flag to _update_connection_to_plugin() 2023-06-29 14:05:27 +02:00
nm-settings-connection.h settings,libnm: add version-id to settings/remote connection 2023-06-26 10:35:35 +02:00
nm-settings-plugin.c format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-settings-plugin.h all: use _NM_G_TYPE_CHECK_INSTANCE_CAST() for internal uses 2022-12-16 10:55:03 +01:00
nm-settings-storage.c all: use nm_uuid_is_normalized() for checking valid UUID for "connection.uuid" 2021-06-04 09:29:23 +02:00
nm-settings-storage.h all: use _NM_G_TYPE_CHECK_INSTANCE_CAST() for internal uses 2022-12-16 10:55:03 +01:00
nm-settings-utils.c format: reformat source tree with clang-format 13.0 2021-11-29 09:31:09 +00:00
nm-settings-utils.h all: move "src/" directory to "src/core/" 2021-02-08 09:56:41 +01:00
nm-settings.c all: use nm_strv_contains() instead of nm_strv_find_first() for membership check 2023-10-23 10:09:07 +02:00
nm-settings.h core: expose accessors to NMManager in NMSettings, NMSettingsConnection, NMDevice 2023-02-22 22:38:03 +00:00