[Network] Update bindings up to Xcode 27.0 Beta 3 - #26208
Conversation
Bind nw_tcp_set_max_pacing_rate as NWTcpMetadata.SetMaximumPacingRate with Xcode 27.0 availability, native status propagation, and deterministic loopback coverage. Preserve the shipped NWLinkQuality uint ABI while queuing its native byte backing type for XAMCORE_5_0. Marshal nw_path_get_link_quality through byte in current builds and move the unavoidable enum-size mismatch to the shared xtro ignore. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 1380a9c7-db8e-49cc-9e6b-2bdacd0791f5
There was a problem hiding this comment.
Pull request overview
This PR updates the Network.framework bindings to match Xcode 27.0 Beta 3, including a new TCP pacing-rate API, while preserving the shipped NWLinkQuality : uint ABI for existing builds and deferring the native byte backing type to XAMCORE_5_0.
Changes:
- Add
NWTcpMetadata.SetMaximumPacingRatebinding fornw_tcp_set_max_pacing_rateand a loopback-based monotouch test to validate enabling/disabling pacing. - Preserve current
NWLinkQuality : uintABI while marshallingnw_path_get_link_qualitythroughbyte, and move the enum-size xtro mismatch to the shared Network ignore list. - Remove resolved xtro
.todoentries for Network across iOS/tvOS/macOS/MacCatalyst.
Reviewed changes
Copilot reviewed 9 out of 9 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| tests/xtro-sharpie/api-annotations-dotnet/tvOS-Network.todo | Removes resolved Network xtro todo entries for tvOS. |
| tests/xtro-sharpie/api-annotations-dotnet/macOS-Network.todo | Removes resolved Network xtro todo entries for macOS. |
| tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-Network.todo | Removes resolved Network xtro todo entries for Mac Catalyst. |
| tests/xtro-sharpie/api-annotations-dotnet/iOS-Network.todo | Removes resolved Network xtro todo entries for iOS. |
| tests/xtro-sharpie/api-annotations-dotnet/common-Network.ignore | Centralizes the known nw_link_quality_t enum-size mismatch with rationale for XAMCORE_5_0. |
| tests/monotouch-test/Network/NWTcpMetadataTest.cs | Adds deterministic loopback test coverage for the new TCP pacing-rate API. |
| src/Network/NWTcpMetadata.cs | Adds the nw_tcp_set_max_pacing_rate P/Invoke and public SetMaximumPacingRate API with platform version gating. |
| src/Network/NWPath.cs | Marshals nw_path_get_link_quality via byte and casts to NWLinkQuality to avoid ABI coupling. |
| src/Network/NWEnums.cs | Makes NWLinkQuality a byte only under XAMCORE_5_0, preserving current ABI otherwise. |
✅ API diff for current PR / commitNET (empty diffs)✅ API diff vs stableNET (empty diffs)ℹ️ Generator diffGenerator Diff: vsdrops (html) vsdrops (raw diff) gist (raw diff) - Please review changes) Pipeline on Agent |
This comment has been minimized.
This comment has been minimized.
|
/azp run xamarin-macios-sim-pr-tests |
|
Azure Pipelines: Successfully started running 1 pipeline(s). |
This comment has been minimized.
This comment has been minimized.
|
/azp run xamarin-macios-sim-pr-tests |
|
Azure Pipelines: Successfully started running 1 pipeline(s). |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
🚀 [CI Build #34b9f4d] Test results 🚀Test results✅ All tests passed on VSTS: test results. 🎉 All 195 tests passed 🎉 Tests counts✅ assembly-processing: All 1 tests passed. Html Report (VSDrops) Download macOS tests✅ Tests on macOS Sonoma (14): All 5 tests passed. Html Report (VSDrops) Download Linux Build VerificationPipeline on Agent |
Summary
nw_tcp_set_max_pacing_rateasNWTcpMetadata.SetMaximumPacingRateNWLinkQuality : uintABI while queuing the nativebytebacking type forXAMCORE_5_0nw_path_get_link_qualitythroughbytein current builds and move the unavoidable enum-size mismatch to the shared xtro ignoreValidation
make worldNWTcpMetadataTestpassed on iOS 27.0 and tvOS 27.0 and was correctly gated on the macOS 26.5 desktop hostCreateResponseAuth