{"object_kind":"push","event_name":"push","before":"950832691b83520c95568c3f836cfbb279b3eabb","after":"dea33712d603f1f6c9ecc230c0d46ffadbc3cd2c","ref":"refs/heads/main","ref_protected":false,"checkout_sha":"dea33712d603f1f6c9ecc230c0d46ffadbc3cd2c","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":"b544bd175501c8c57cd828922e0a26418d84c9ed","message":"settings: expose nm_settings_connection_get_seen_bssids()\n\nThe seen-BSSID list lives in NMSettingsConnection's private LRU\nhash, not in the NMSettingWireless property of the same name. As\ndocumented in commit 07c6f933d1b4 ('wifi: fix aggressively roaming\n(background Wi-Fi scanning) based on seen-bssids'), the setting\nfield is only populated for D-Bus export via _get_seen_bssids() in\nthe GetSettings handler; reading it from an applied connection\nduring activation returns stale/empty data.\n\nPromote the existing static _get_seen_bssids() helper to a public\nnm_settings_connection_get_seen_bssids() accessor and expose\nSEEN_BSSIDS_MAX as NM_SETTINGS_CONNECTION_SEEN_BSSIDS_MAX so that\ncallers needing the actual BSSID list during activation (rather\nthan just the count, already available via\nnm_settings_connection_get_num_seen_bssids()) can stack-allocate\na fixed-size strv buffer without leaking the constant.\n\nNo functional change. Existing internal callers in\nnm-settings-connection.c switch from the static name to the new\npublic name.","title":"settings: expose nm_settings_connection_get_seen_bssids()","timestamp":"2026-07-08T13:49:24+02:00","url":"https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/commit/b544bd175501c8c57cd828922e0a26418d84c9ed","author":{"name":"Louis Kotze","email":"loukot@gmail.com"},"added":[],"modified":["src/core/settings/nm-settings-connection.c","src/core/settings/nm-settings-connection.h"],"removed":[]},{"id":"92ec8b70727e198011dd17581988699ce320b2b8","message":"core: parse and store the AP-MLD MAC address from the Multi-Link element\n\n802.11be (Wi-Fi 7) APs that support Multi-Link Operation advertise a\nBasic Multi-Link element (element ID 255, element ID extension 107) in\ntheir Beacons and Probe Responses. Its Common Info field carries the\nMLD MAC Address that identifies the AP-MLD a given link BSS belongs to.\n\nParse that address in nm_wifi_utils_parse_ies() and carry it through\nNMSupplicantBssInfo to NMWifiAP, exposed via\nnm_wifi_ap_get_mld_address(). Only the Basic Multi-Link element variant\n(Type subfield 0) is handled, as that is the only one whose Common Info\ncontains the MLD MAC Address; other variants are ignored.\n\nAs with the BSSID, a scan update that lacks the element never clears a\npreviously-learned MLD address.\n\nThe parser is covered by a unit test built from a real Multi-Link\nelement captured from a TP-Link Deco BE63 link BSS.\n\nNo functional change on its own; a following commit uses the stored MLD\naddress to decide the bgscan interval.\n","title":"core: parse and store the AP-MLD MAC address from the Multi-Link element","timestamp":"2026-07-08T13:50:41+02:00","url":"https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/commit/92ec8b70727e198011dd17581988699ce320b2b8","author":{"name":"Louis Kotze","email":"loukot@gmail.com"},"added":[],"modified":["src/core/devices/wifi/nm-wifi-ap.c","src/core/devices/wifi/nm-wifi-ap.h","src/core/nm-core-utils.c","src/core/nm-core-utils.h","src/core/supplicant/nm-supplicant-interface.c","src/core/supplicant/nm-supplicant-types.h","src/core/tests/test-core.c"],"removed":[]},{"id":"bfddae7e368c2d73e2a6b706a99dd141b10a3cf6","message":"wifi: keep the long bgscan interval for a single Wi-Fi 7 AP-MLD\n\nnm_supplicant_config_add_bgscan() picks the aggressive multi-AP bgscan\ninterval (\"simple:30:-65:300\") whenever a profile has been seen on more\nthan one BSSID. A Wi-Fi 7 AP-MLD advertises one BSSID per link, so a\n2- or 3-link MLD looks like a multi-AP ESS and triggers periodic\nfull-band scans. While the radio is off-channel for such a scan all\nRX/TX is paused, which surfaces as multi-second stalls on real-time UDP\ntraffic (Teams, Discord, gaming) even though there is only one physical\nAP to roam between.\n\nInstead of guessing from the BSSID bytes, use the MLD MAC address now\nparsed from the Multi-Link element: resolve each seen BSSID to its\nscanned AP and treat the set as a single AP-MLD only when every BSSID\nmaps to an AP advertising the same MLD address. In that case the long\nbgscan interval is kept. Any BSSID that is unknown, non-MLO, or part of\na different AP-MLD makes it a genuine multi-AP ESS and the short\ninterval applies as before.\n\nThis is more robust than a MAC-pattern heuristic: a mesh can hand out\nper-link BSSIDs from several distinct AP-MLDs that share the same\nlocally-administered address block, which such a heuristic would wrongly\ncollapse into one AP. The MLD address distinguishes them.\n\nnm_supplicant_config_add_bgscan() now takes a plain boolean from the\ncaller, which owns the AP-MLD determination (it has the scanned AP\nlist); the WPA-Enterprise short-interval case is unchanged.\n\nVerified by running the patched daemon on an RTL8922AU (rtw89) client\nassociated to a Wi-Fi 7 AP-MLD: with two recorded per-link seen-BSSIDs\nthe daemon resolved both to the same MLD address and emitted\nbgscan 'simple:30:-70:86400' (long interval), where the unmodified\nmulti-AP path emits 'simple:30:-65:300'.\n","title":"wifi: keep the long bgscan interval for a single Wi-Fi 7 AP-MLD","timestamp":"2026-07-08T13:50:41+02:00","url":"https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/commit/bfddae7e368c2d73e2a6b706a99dd141b10a3cf6","author":{"name":"Louis Kotze","email":"loukot@gmail.com"},"added":[],"modified":["src/core/devices/wifi/nm-device-wifi.c","src/core/supplicant/nm-supplicant-config.c","src/core/supplicant/nm-supplicant-config.h","src/core/supplicant/tests/test-supplicant-config.c"],"removed":[]},{"id":"dea33712d603f1f6c9ecc230c0d46ffadbc3cd2c","message":"merge: branch 'mlo-bgscan-dedup-v2'\n\nwifi: keep the long bgscan interval for a single Wi-Fi 7 AP-MLD\n\nhttps://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/2405","title":"merge: branch 'mlo-bgscan-dedup-v2'","timestamp":"2026-07-14T11:59:46+00:00","url":"https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/commit/dea33712d603f1f6c9ecc230c0d46ffadbc3cd2c","author":{"name":"Beniamino Galvani","email":"bgalvani@redhat.com"},"added":[],"modified":["src/core/devices/wifi/nm-device-wifi.c","src/core/devices/wifi/nm-wifi-ap.c","src/core/devices/wifi/nm-wifi-ap.h","src/core/nm-core-utils.c","src/core/nm-core-utils.h","src/core/settings/nm-settings-connection.c","src/core/settings/nm-settings-connection.h","src/core/supplicant/nm-supplicant-config.c","src/core/supplicant/nm-supplicant-config.h","src/core/supplicant/nm-supplicant-interface.c","src/core/supplicant/nm-supplicant-types.h","src/core/supplicant/tests/test-supplicant-config.c","src/core/tests/test-core.c"],"removed":[]}],"total_commits_count":4,"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}}