{"object_kind":"push","event_name":"push","before":"ce61dde31642799aa3a21f16a783ac67dd103a61","after":"9a499491f4e924d3fe02b03306ea82a5e9656369","ref":"refs/heads/bg/ethtool-netlink","ref_protected":false,"checkout_sha":"9a499491f4e924d3fe02b03306ea82a5e9656369","message":null,"user_id":1050,"user_name":"Beniamino Galvani","user_username":"bgalvani","user_email":"","user_avatar":"https://gitlab.freedesktop.org/uploads/-/system/user/avatar/1050/avatar.png","project_id":411,"project":{"id":411,"name":"NetworkManager","description":"NetworkManager — network management daemon","web_url":"https://gitlab.freedesktop.org/NetworkManager/NetworkManager","avatar_url":"https://gitlab.freedesktop.org/uploads/-/system/project/avatar/411/nm_logo.png","git_ssh_url":"git@ssh.gitlab.freedesktop.org:NetworkManager/NetworkManager.git","git_http_url":"https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git","namespace":"NetworkManager","visibility_level":20,"path_with_namespace":"NetworkManager/NetworkManager","default_branch":"main","ci_config_path":"","homepage":"https://gitlab.freedesktop.org/NetworkManager/NetworkManager","url":"git@ssh.gitlab.freedesktop.org:NetworkManager/NetworkManager.git","ssh_url":"git@ssh.gitlab.freedesktop.org:NetworkManager/NetworkManager.git","http_url":"https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git"},"commits":[{"id":"fe0b6ad68c23eca8da3a47257fa6b7ec6dd5cfb7","message":"merge: branch 'lr/oci-vm-new-conn'\n\nhttps://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/2180\n","title":"merge: branch 'lr/oci-vm-new-conn'","timestamp":"2025-04-11T12:09:49+02:00","url":"https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/commit/fe0b6ad68c23eca8da3a47257fa6b7ec6dd5cfb7","author":{"name":"Lubomir Rintel","email":"lkundrak@v3.sk"},"added":[],"modified":["src/nm-cloud-setup/main.c","src/nm-cloud-setup/nm-cloud-setup-utils.c","src/nm-cloud-setup/nm-cloud-setup-utils.h","src/tests/client/test-client.check-on-disk/test_002.expected","src/tests/client/test-client.check-on-disk/test_003.expected","src/tests/client/test-client.check-on-disk/test_004.expected","src/tests/client/test-client.py","tools/test-networkmanager-service.py"],"removed":[]},{"id":"163c2574d885a2983702612788b3458c3d6ecc0d","message":"device: renew dhcp lease only if carrier was down\n\nMake sure nm_device_update_dynamic_ip_setup is called every time a carrier was down before and the link is now up again.\nPreviously the dhcp lease was not renewed if the carrier went down and then up again quickly enough.\nThis led to cases where an old IP was retained even though the device was connected to a different network with a different DHCP server.\n\nThis commit introduces device_link_carrier_changed_down\n\nFixes: d6429d3ddbc7 ('device: ensure DHCP is restarted every time the link goes up')\n","title":"device: renew dhcp lease only if carrier was down","timestamp":"2025-04-14T07:04:03+02:00","url":"https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/commit/163c2574d885a2983702612788b3458c3d6ecc0d","author":{"name":"Friedrich Altheide","email":"friedrich.altheide@w34you.de"},"added":[],"modified":["src/core/devices/nm-device.c"],"removed":[]},{"id":"fcf304bbf1d00355428ba5242dcb9b624dd35729","message":"merge: branch 'carrier-down'\n\ndevice: renew dhcp lease if carrier was down\n\nCloses #1663\n\nhttps://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/2173","title":"merge: branch 'carrier-down'","timestamp":"2025-04-14T07:48:44+00:00","url":"https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/commit/fcf304bbf1d00355428ba5242dcb9b624dd35729","author":{"name":"Beniamino Galvani","email":"bgalvani@redhat.com"},"added":[],"modified":["src/core/devices/nm-device.c"],"removed":[]},{"id":"bb850fda0ed98988a48f81928b8dedfa7ae65b6e","message":"nmcli: connection: process port-type, type and controller first\n\nIf the connection is a port we need to set the connection.port-type\nproperty. Usually this property is guessed by nmcli depending on the\nconnection type or the chosen controller, so it doesn't need to be\nspecified by the user. However, if it is explicitly set by the user\nwe should not guess, but just use it.\n\nWhen we process arguments like \"controller\" or \"type\" we call custom\nfunctions like set_connection_controller that will guess the port-type\nif needed. By processing port-type first, it will be set in the\nconnection by the time that these other properties are processed, so they\nwon't try to guess.\n\nAfter port-type, process connection.type and connection.controller, as we\nare usually capable of deducing the port-type from them. Type needs to\nbe processed first because some types like bond-slave or ovs-port have\nonly one possible port-type value so we must not try to guess from the\ncontroller.\n\nFixes: c5324ed285af ('nmcli: streamline connection addition')\n","title":"nmcli: connection: process port-type, type and controller first","timestamp":"2025-04-14T10:08:01+00:00","url":"https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/commit/bb850fda0ed98988a48f81928b8dedfa7ae65b6e","author":{"name":"Íñigo Huguet","email":"ihuguet@redhat.com"},"added":[],"modified":["src/nmcli/connections.c","src/nmcli/connections.h","src/nmcli/devices.c"],"removed":[]},{"id":"6a133d10a1e54c21fbacf7893f69c71fc6a41f48","message":"nmcli: connection: don't overwrite port-type if explicitly set\n\nWhen processing the \"type\" property we deduce the port-type in some\ncases and set it. If the user has chosen a port-type we must not\noverwrite it. In any case, we should raise an error when validating the\nconnection.\n\nFixes: c5324ed285af ('nmcli: streamline connection addition')\n","title":"nmcli: connection: don't overwrite port-type if explicitly set","timestamp":"2025-04-14T10:08:01+00:00","url":"https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/commit/6a133d10a1e54c21fbacf7893f69c71fc6a41f48","author":{"name":"Íñigo Huguet","email":"ihuguet@redhat.com"},"added":[],"modified":["src/nmcli/connections.c"],"removed":[]},{"id":"87a5d89f750d03a27402f5fd5470bed6723c5a98","message":"nmcli: choose the right port-type for OVS\n\nNormally it is possible not to define port-type in nmcli and it deduces\nit from connection.type or connection.controller. Some types like 'bond-slave'\nhave a single possible value for port-type. In other cases nmcli deduces\nthe port-type by getting the controller's type, like 'bond'.\n\nFor OVS connections, the second method of guessing by the controller's\ntype was used. However, in OVS it is common to have different devices\nwith the same name, causing nmcli to use \"ovs-interface\" as port-type\nif it matched by controller name.\n\nFix if by deducing the port-type from the connection's type. An ovs-port\nconnection must always have port-type=ovs-bridge, and an ovs-interface\nconnection must always have port-type=ovs-port.\n\nNote that this is something that should be done in the daemon, not in\nthe clients, but this is a small patch that makes it to work in nmcli,\nat least. Without this, the mechanism of guessing from the parent would\nact, leading to wrong results.\n\nIdeally, all this should be done in the daemon, but currently many\nchecks in nmcli/libnm depends on having the port-type set, and it\nwould be lot of work to change it.\n\nFixes: c5324ed285af ('nmcli: streamline connection addition')\n","title":"nmcli: choose the right port-type for OVS","timestamp":"2025-04-14T10:08:01+00:00","url":"https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/commit/87a5d89f750d03a27402f5fd5470bed6723c5a98","author":{"name":"Íñigo Huguet","email":"ihuguet@redhat.com"},"added":[],"modified":["src/nmcli/connections.c"],"removed":[]},{"id":"9f6562869b664f330aab36085457bda1487c8631","message":"nmcli: improve the warning message about no controller found\n\nWhen nmcli tries to match a controller it filters by its type. The\ncontroller's type must match with the port's port-type. If no controller\nmatches, the printed warning was \"doesn't refer to any existing\nprofile\". However, the profile might exist, but with wrong type. Improve\nthe message so it makes that clear.\n\nFixes: aa12bb353bca ('cli: discover slave type for a connection with a master')\n","title":"nmcli: improve the warning message about no controller found","timestamp":"2025-04-14T10:08:01+00:00","url":"https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/commit/9f6562869b664f330aab36085457bda1487c8631","author":{"name":"Íñigo Huguet","email":"ihuguet@redhat.com"},"added":[],"modified":["src/nmcli/connections.c"],"removed":[]},{"id":"26f2673b9061dabccdd3ed937b49f737201d0cf5","message":"merge: branch 'ih/nmcli-ovs-port-type'\n\nnmcli: connection: process port-type, type and controller properties first\n\nhttps://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/2165","title":"merge: branch 'ih/nmcli-ovs-port-type'","timestamp":"2025-04-14T10:08:28+00:00","url":"https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/commit/26f2673b9061dabccdd3ed937b49f737201d0cf5","author":{"name":"Íñigo Huguet","email":"inigohuguet@hotmail.com"},"added":[],"modified":["src/nmcli/connections.c","src/nmcli/connections.h","src/nmcli/devices.c"],"removed":[]},{"id":"37d8945b13fd04d474667c443c95333c8542312e","message":"libnm: fix memory leak when parsing IP configuration\n\nWhen the dictionary contains keys \"address\" and \"uri\", the first value\nis leaked.\n\n ==4730== 14 bytes in 1 blocks are definitely lost in loss record 51 of 1,755\n ==4730== at 0x4841866: malloc (vg_replace_malloc.c:446)\n ==4730== by 0x4CC5CB9: g_malloc (gmem.c:100)\n ==4730== by 0x4CDF518: g_strdup (gstrfuncs.c:323)\n ==4730== by 0x496A6B8: g_strdup_inline (gstrfuncs.h:321)\n ==4730== by 0x496A6B8: nm_inet_ntop_dup (nm-inet-utils.h:355)\n ==4730== by 0x496A95B: nm_inet_parse_str (nm-inet-utils.c:539)\n ==4730== by 0x48AF3A3: _notify_update_prop_nameservers (nm-ip-config.c:179)\n\nFixes: 4422b1470496 ('core, libnm: support per-connection DNS URIs')\n\nhttps://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/2184\n","title":"libnm: fix memory leak when parsing IP configuration","timestamp":"2025-04-14T13:36:57+02:00","url":"https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/commit/37d8945b13fd04d474667c443c95333c8542312e","author":{"name":"Beniamino Galvani","email":"bgalvani@redhat.com"},"added":[],"modified":["src/libnm-client-impl/nm-ip-config.c"],"removed":[]},{"id":"14106431fbe7091ba41e593afbf2346c7ed6fdc3","message":"libnm-core: set ovs-dpdk and ovs-patch as non-base settings\n\nSettings \"ovs-dpdk\" and \"ovs-patch\" are currently marked with priority\nNM_SETTING_PRIORITY_HW_BASE, which makes them \"base\" settings. This\nmeans that they can be used as connection type, for example via \"nmcli\nconnection add type ovs-dpdk ...\".\n\nThis is wrong, as both settings can only belong to a connection of\ntype \"ovs-interface\". Decrease their priority and make them non-base\nsettings.\n\nThe problem was spotted when trying to add a ovs-patch connection via\nnmcli:\n\n # nmcli connection add type ovs-patch ifname p con-name q ovs-patch.peer r controller s port-type ovs-port\n Warning: controller='s' doesn't refer to any existing profile.\n\n (process:4580): nm-CRITICAL **: 10:15:42.807: file ../src/libnm-core-impl/nm-connection.c: line 1682 (_normalize_ovs_interface_type): should not be reached\n\n (process:4580): nm-WARNING **: 10:15:42.807: connection did not verify after normalization: ??\n\n (process:4580): nm-CRITICAL **: 10:15:42.807: file ../src/libnm-core-impl/nm-connection.c: line 2170 (_connection_normalize): should not be reached\n Error: Failed to add 'q' connection: ovs-interface.type: A connection with 'ovs-patch' setting must be of connection.type \"ovs-interface\" but is \"ovs-patch\"\n\nFixes: d0ec5011638e ('cli: assert that valid_parts are set for base types')\n\nhttps://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/2178\n","title":"libnm-core: set ovs-dpdk and ovs-patch as non-base settings","timestamp":"2025-04-14T13:39:13+02:00","url":"https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/commit/14106431fbe7091ba41e593afbf2346c7ed6fdc3","author":{"name":"Beniamino Galvani","email":"bgalvani@redhat.com"},"added":[],"modified":["src/libnm-core-impl/nm-meta-setting-base-impl.c","src/libnmc-setting/nm-meta-setting-base-impl.c","src/libnmc-setting/nm-meta-setting-desc.c","src/nmcli/gen-metadata-nm-settings-nmcli.xml.in"],"removed":[]},{"id":"2b922a93a5384d96c0b463ebe4aaeb3009608b3f","message":"platform: accept 0 as valid rto_min value\n\niproute2 and the kernel accept 0 as valid rto_min value:\n\n # ip route add 172.16.0.1 dev enp1s0 rto_min 0ms\n # ip route show\n 172.16.0.1 dev enp1s0 scope link rto_min lock 0ms\n\nEven if a value of 0ms would not be useful in practice, it is better\nto exactly track what kernel reports, instead of assuming that when\nthe value is zero it is \"not set\".\n","title":"platform: accept 0 as valid rto_min value","timestamp":"2025-04-14T16:41:39+02:00","url":"https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/commit/2b922a93a5384d96c0b463ebe4aaeb3009608b3f","author":{"name":"Beniamino Galvani","email":"bgalvani@redhat.com"},"added":[],"modified":["src/core/NetworkManagerUtils.c","src/core/platform/tests/test-route.c","src/libnm-platform/nm-linux-platform.c","src/libnm-platform/nm-platform.c","src/libnm-platform/nm-platform.h"],"removed":[]},{"id":"6478e5158ae02de59f133224473f5ba14fa4a8ab","message":"platform: always set the lock flag for RTO_MIN\n\nThe rto-min value is ignored by kernel unless the lock flag is set.\n","title":"platform: always set the lock flag for RTO_MIN","timestamp":"2025-04-14T16:41:39+02:00","url":"https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/commit/6478e5158ae02de59f133224473f5ba14fa4a8ab","author":{"name":"Beniamino Galvani","email":"bgalvani@redhat.com"},"added":[],"modified":["src/libnm-platform/nm-linux-platform.c","src/libnm-platform/nm-platform.h"],"removed":[]},{"id":"065fd3e04667ae2a55218f89f6dd8fe008b5d7ff","message":"merge: branch 'bg/rto-min'\n\nplatform: always set the lock flag for RTO_MIN\n\nhttps://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/2179","title":"merge: branch 'bg/rto-min'","timestamp":"2025-04-14T14:43:09+00:00","url":"https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/commit/065fd3e04667ae2a55218f89f6dd8fe008b5d7ff","author":{"name":"Beniamino Galvani","email":"bgalvani@redhat.com"},"added":[],"modified":["src/core/NetworkManagerUtils.c","src/core/platform/tests/test-route.c","src/libnm-platform/nm-linux-platform.c","src/libnm-platform/nm-platform.c","src/libnm-platform/nm-platform.h"],"removed":[]},{"id":"acc5a3715baa9f9dcba7a464734ab5ab9c5abb87","message":"platform: use consistent naming for ethtool functions\n\nFor unknown reasons (wrong copy and paste?) the getter functions had a\n\"link\" in the name. Remove it.\n","title":"platform: use consistent naming for ethtool functions","timestamp":"2025-04-14T16:44:36+02:00","url":"https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/commit/acc5a3715baa9f9dcba7a464734ab5ab9c5abb87","author":{"name":"Beniamino Galvani","email":"bgalvani@redhat.com"},"added":[],"modified":["src/core/devices/nm-device.c","src/libnm-platform/nm-platform.c","src/libnm-platform/nm-platform.h"],"removed":[]},{"id":"d2da9f75dc08953094df7f8e0c9ee00b69a6050f","message":"libnm-setting: remove unused include\n","title":"libnm-setting: remove unused include","timestamp":"2025-04-14T16:44:36+02:00","url":"https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/commit/d2da9f75dc08953094df7f8e0c9ee00b69a6050f","author":{"name":"Beniamino Galvani","email":"bgalvani@redhat.com"},"added":[],"modified":["src/libnmc-setting/nm-meta-setting-desc.c"],"removed":[]},{"id":"dff07bbf1886617f0c2789c5d4b8cf0ee2889217","message":"platform: move ethtool ioctl functions to a separate file\n\nWe're going to replace most of the ioctl-based ethtool functions with\na netlink-based equivalent. Move the ioctl ones to a separate file so\nthat it's easier to see what still needs to be converted. Also add a\ncommon prefix to the function names.\n","title":"platform: move ethtool ioctl functions to a separate file","timestamp":"2025-04-14T16:44:36+02:00","url":"https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/commit/dff07bbf1886617f0c2789c5d4b8cf0ee2889217","author":{"name":"Beniamino Galvani","email":"bgalvani@redhat.com"},"added":["src/libnm-platform/nmp-ethtool-ioctl.c","src/libnm-platform/nmp-ethtool-ioctl.h"],"modified":["src/core/platform/tests/test-link.c","src/libnm-platform/devlink/nm-devlink.c","src/libnm-platform/meson.build","src/libnm-platform/nm-linux-platform.c","src/libnm-platform/nm-platform-utils.c","src/libnm-platform/nm-platform-utils.h","src/libnm-platform/nm-platform.c","src/libnm-platform/nmp-object.c"],"removed":[]},{"id":"ab67a15d1ac5939990bd467776c22beb33cf5cd5","message":"platform: add ethtool netlink implementation\n\nIntroduce some basic infrastructure to perform ethtool operations via\nnetlink. As a proof of concept, implement the pause settings.\n\nNetlink has some advantages over ioctl():\n\n - it can be easily extended with new attributes;\n\n - it can return descriptive error messages via the extended ack\n mechanism. For example, when setting the ring parameters to a value\n outside the allowed range, userspace receives error code -EINVAL\n and message \"requested ring size exceeds maximum\". ioctl() gets\n only -EINVAL, which is shared among many error reasons;\n\n - since it's possible to specify an ifindex in the request, there are\n no race conditions when the interface name changes;\n\nNew ethtool API is available only via netlink; however it makes sense\nto start using netlink also for the old API that NM is already using\n(pause, eee, rings, etc.) over ioctl() because of the advantages\ndescribed above.\n","title":"platform: add ethtool netlink implementation","timestamp":"2025-04-14T16:44:37+02:00","url":"https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/commit/ab67a15d1ac5939990bd467776c22beb33cf5cd5","author":{"name":"Beniamino Galvani","email":"bgalvani@redhat.com"},"added":["src/libnm-platform/nmp-ethtool.c","src/libnm-platform/nmp-ethtool.h"],"modified":["src/libnm-platform/meson.build"],"removed":[]},{"id":"170802c365f49d289c98081654ac2fd901806a54","message":"platform: use the new ethtool-netlink API for pause settings\n","title":"platform: use the new ethtool-netlink API for pause settings","timestamp":"2025-04-14T16:44:37+02:00","url":"https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/commit/170802c365f49d289c98081654ac2fd901806a54","author":{"name":"Beniamino Galvani","email":"bgalvani@redhat.com"},"added":[],"modified":["src/libnm-platform/nm-linux-platform.c","src/libnm-platform/nm-platform.c","src/libnm-platform/nm-platform.h","src/libnm-platform/nmp-ethtool-ioctl.c","src/libnm-platform/nmp-ethtool-ioctl.h"],"removed":[]},{"id":"8a5011bffc8240a29e05724cdb8d83fbe9c09602","message":"platform: replace EEE ethtool ioctl calls with netlink\n","title":"platform: replace EEE ethtool ioctl calls with netlink","timestamp":"2025-04-14T16:44:38+02:00","url":"https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/commit/8a5011bffc8240a29e05724cdb8d83fbe9c09602","author":{"name":"Beniamino Galvani","email":"bgalvani@redhat.com"},"added":[],"modified":["src/libnm-platform/nm-linux-platform.c","src/libnm-platform/nm-platform.c","src/libnm-platform/nm-platform.h","src/libnm-platform/nmp-ethtool-ioctl.c","src/libnm-platform/nmp-ethtool-ioctl.h","src/libnm-platform/nmp-ethtool.c","src/libnm-platform/nmp-ethtool.h"],"removed":[]},{"id":"9a499491f4e924d3fe02b03306ea82a5e9656369","message":"README: document the required kernel version\n\nAdd a new section in README.md that describes the required Linux\nkernel version.\n","title":"README: document the required kernel version","timestamp":"2025-04-14T16:46:59+02:00","url":"https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/commit/9a499491f4e924d3fe02b03306ea82a5e9656369","author":{"name":"Beniamino Galvani","email":"bgalvani@redhat.com"},"added":[],"modified":["README.md"],"removed":[]}],"total_commits_count":45,"push_options":{},"repository":{"name":"NetworkManager","url":"git@ssh.gitlab.freedesktop.org:NetworkManager/NetworkManager.git","description":"NetworkManager — network management daemon","homepage":"https://gitlab.freedesktop.org/NetworkManager/NetworkManager","git_http_url":"https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git","git_ssh_url":"git@ssh.gitlab.freedesktop.org:NetworkManager/NetworkManager.git","visibility_level":20}}