Flag: EXEMPT the API caller is guarded by a legacy experiment flag
Bug: 368416967
Test: atest ConnectivityCoverageTests:android.net.connectivity.com.android.server.CSNetdBypassRulesTests
Change-Id: I0e24bf37c412e6f5676924269ca98db1f9dfd6df
* changes:
Add EthernetPort#matches(interfaceName)
Ignore NLMSG_DONE messages
Only consider interfaces tracked by regex in EthernetManager#isAvailable
Ensure provisioning is never started with Mode.NONE
Maciej Żenczykowskiauthored and Android (Google) Code Reviewcommited 2025-06-18 17:08:04 -07:00
Interface matching in the ethernet module is still done by interface
name. Add an explicit #matches() function to avoid accidentally
comparing against the wrong object. Comparing a String to an
EthernetPort (or vice versa) is a valid java expression.
Test: TH
Flag: EXEMPT mainline
Bug: 1000001
Change-Id: I97b4cf856160195f44e4cebd13d8ce2fdeeb220c
The SkDestroyListenerCallback posts a message to a handler thread.
This can cause a race condition when sendQuicConnectionClosePayload call
is verified.
This CL sets a timeout for verifying sendQuicConnectionClosePayload
call.
Additionally, a short timeout is used to assert that destroyUdpSocket is
not called.
Test: QuicConnectionCloserTest
Bug: 407226131
Flag: EXEMPT test only change
Change-Id: I62522fcafb91bef12e2781afbd090af8d0350f1e
There is an argument that the API is @UnsupportedAppUsage since R and
this code only ships to T. In any case, just to be on the safe side, the
code should ignore NCM interfaces which are not part of the regex. (It
already ignores interfaces which are in tethering/server mode today).
This CL also marks a couple of related functions properly as public.
These functions are not @VisibleForTesting; they belong to the public
interface of the class.
Test: TH
Flag: EXEMPT mainline
Bug: 1000001
Change-Id: I43beb0d3a17d403b7f6bcbadd7089110ad28684e
This patch adds a new POLICY to identify a VCN network offer, and
updates NetworkRanker to allow a VCN network to win over a physical
cell network. This is to fix the issue where VCN cannot exit safe
mode when there is already a phsical cell
Bug: 391977557
Test: NetworkRankerTest(new test)
Flag: EXEMPT bugfix
Change-Id: I00ebeb3eeb30ca8b46d25bbde1b6fd3dfee53993
This commit adds a new interfaceName field to the SocketKey
class, which allows us to uniquely identify sockets based on
their interface name in addition to their network and interface
index. This information is used for subsequent changes to
identify the target ServiceTypeClient by the interface name.
Bug: 410734687
Test: atest ConnectivityCoverageTests NsdManagerTest
Flag: EXEMPT refactor
Change-Id: Ic312b26ca572d12b7c3177b84aced9d487636003
Because changing the tethering mode invokes addInterface(), the
tracking mode for the tethering interface needs to be persisted
separately.
Test: TH
Flag: EXEMPT mainline
Bug: 1000001
Change-Id: Ifb8371a55a582bf2133a59bdbedcce95c94626cc
Previously, the "avoid bad WiFi" global setting was limited to a single boolean value (0 or 1),
preventing granular control for multiple carriers.
This commit introduces support for carrier-aware "avoid bad WiFi" configurations using a new,
extensible format: "subId1,value1;subId2,value2;...".
This allows different `subId`s (carriers) to have their own specific "avoid bad WiFi" settings.
Flag: EXEMPT mainline
Bug: 410976315
Test: atest ConnectivityCoverageTests:android.net.connectivity.com.android.server.connectivity.MultinetworkPolicyTrackerTest
Change-Id: I118cff67c0c632778f73649999ee63e6f0e6fb17
In case there is a bug after rolling out transport
types support in the NetworkIdentity. Add a kill switch
to stop writing transport types to mitigate the
impact if any.
Flag: EXEMPT the change is the kill switch
Test: atest ConnectivityCoverageTests --test-filter \
'NetworkIdentity*' --update-device
Test: atest ConnectivityCoverageTests --test-filter \
'NetworkStats*' --update-device
Test: atest ConnectivityBenchmarkTests
Test: atest FrameworksNetIntegrationTests:com.android.server.net.integrationtests.NetworkStatsIntegrationTest
Test: Manual:
1. Download files
2. adb shell device_config put tethering store_transport_types -1
3. reboot and check Data Usage Settings page.
Bug: 419123367
Change-Id: I52791f6fe5207021748641cf0719055533b5d511
Have TestableNetworkCallback adopt it, as a first client. It's also by
far the most complex.
Test: TH
Flag: EXEMPT test-only
Change-Id: Ie58d051b4478c901b7f0f54e89a67d22f1ee2ce2
This is needed for counter-part modules to query data usage
with specified transport type.
This is kept hidden and will be exposed in follow-up
CLs.
Flag: EXEMPT controlled in the counter-part CL
Test: atest ConnectivityCoverageTests --test-filter \
'NetworkTemplate*' --update-device
Bug: 419123367
Bug: 420531377
Change-Id: I503b4d7307d008a64a14aa713d9714428e399809
* changes:
Pass EthernetPort to EthernetNetworkFactory#updateInterfaceLinkState
Pass EthernetPort to updateInterfaceState
Remove spurious VisibleForTesting and change visibility to public
Pass EthernetPort to EthernetNetworkFactory#removeInterface
Pass EthernetPort to removeInterface
Pass EthernetPort to stopTrackingInterface
Add getEthernetPorts and use it in getAllInterfaces
Treehugger Robotauthored and Android (Google) Code Reviewcommited 2025-06-06 14:31:58 -07:00
* changes:
Rename getClientModeInterfaces to getClientModeInterfacesSorted
Rename getAvailableInterfaces to getInterfacesSorted
Pass EthernetPort into NetworkInterfaceState
Pass EthernetPort into EthernetNetworkFactory#addInterface
Patrick Rohrauthored and Android (Google) Code Reviewcommited 2025-06-06 12:17:33 -07:00
The next change will add a getInterfaces() method which returns the
interfaces in any order.
Test: TH
Flag: EXEMPT mainline
Bug: 1000001
Change-Id: Ic1a6e60d8a7e74a6d46e569f0d9045849fd0f8ed
This change includes:
1. addEvent Parameter Update: Added satisfied duration to
addEvent, making duration testable in CSTest.
2. CSDefaultNetworkRematchMetricsTest Refactor: Tests now use
expectAddEvent with argThat and InOrder for more deterministic
verification.
3. New Unit Test: Added a test to demonstrate a metrics reporting
issue during per-app default network request updates.
Test: atest ConnectivityCoverageTests --test-filter 'DefaultNetworkRematch*' \
--update-device
Flag: EXEMPT Test only refactoring
Bug: 419123367
Change-Id: I3c73b445674991f85e37b3f980fa80fb918713ac
mSatisfiedTime now initializes with the current time upon NRI
creation, or copied when the copy constructor is called.
Test: atest ConnectivityCoverageTests --test-filter 'NetworkRequestInfo*' --update-device
Flag: EXEMPT controlled by kill switch
Bug: 419123367
Change-Id: If707b96bf6ce5c6cb0287d5c2d6056591dd6769f
This reverts commit a77d5ac126.
Reason for revert: Droidmonitor created revert due to b/422782308. Will be verifying through ABTD before submission.
Fix: 422782308
Change-Id: I00825e0f17a9a9e0d152ac8ebe767da3f267fbb1
Have TestableNetworkCallback adopt it, as a first client. It's also by
far the most complex.
Test: TH
Flag: EXEMPT test-only
Change-Id: Ifd636a09d0695f04b17330c4987f2b7b742508fa
This change introduces the `DefaultNetworkRematchMetrics`
class to collect and log data about default network reassignments.
The primary motivation is to monitor the behavior of satellite
networks when they act as a default network fallback. This class
records an event whenever a default network request with the
`PREFERENCE_ORDER_SATELLITE_FALLBACK` preference is moved from
one network to another.
For each reassignment, a `DEFAULT_NETWORK_REMATCH` atom is logged
to ConnectivityStatsLog. This atom includes detailed `NetworkDescription`
protos for the old and new networks, capturing their transport
types, capabilities, and metered/validated states. It also logs
the duration the device spent on the previous network.
Sample metrics:
event_metrics {
data {
aggregated_atom_info {
atom {
default_network_rematch {
session_id: 1099094483789245667
rematch_reason: RMR_UNKNOWN
default_network_rematch_info_list {
default_network_rematch_info {
old_network {
transport_types: 1
metered_state: METERED_YES
validated_state: VS_VALID
score_policies: -4575657221408423932
capabilities: 137711448064
enterprise_id: 0
}
time_duration_on_old_network_sec: 9
uid_ranges {
uid_range {
begin: 10137
end: 10137
}
}
}
}
}
}
elapsed_timestamp_nanos: 73821951490
}
}
}
Test: atest ConnectivityCoverageTests:android.net.connectivity.com.android.metrics.DefaultNetworkRematchMetricsTest \
--update-device
Test: Manual:
1. Change code to use TRANSPORT_CELLULAR
2. m statsd_testdrive && statsd_testdrive -e 525
3. Turn off mobile data.
Flag: EXEMPT controlled by kill switch
Bug: 419123367
Change-Id: I40ba78d81cd30b2dc783e855aa76e776f76ace98
Test interface tracking is already covered by EthernetManagerTest (in
fact, that test relies heavily on this functionality), so it does not
need to be part of EthernetTrackerTest. Additionally, both
isValidTestInterface() and setIncludeTestInterfaces() are trivial
functions that do not improve coverage significantly. Long-term, the
ethernet unit tests should be reimagined as more of a module-wide unit
test, rather than testing individual classes. This will make the tests
much more valuable and could allow testing scenarios that are not
possible in a end-to-end integration test.
Test: TH
Flag: EXEMPT mainline
Bug: 1000001
Change-Id: I94540b6e7b94b1de00965f4e54393d573788c59a
* changes:
Destroy sockets lacking permission at CS.
Destroy sockets with nlmsg RTM_DELADDR
Destroy sockets with NetworkAgent update event
Add a Map to NetworkAgent list for IP address
Add socket destroying methods to InetDiagMessage.
Sewook Seoauthored and Android (Google) Code Reviewcommited 2025-05-30 16:00:11 -07:00
Destroy sockets that matched to netId less than MIN_NET_ID for the non
link local address in RTM_DELADDR.
Destroy sockets on link local address with the corresponding interface
ID.
Bug: 373280981
Bug: 331139818
Flag: android.net.platform.flags.connectivity_service_destroy_socket
Test: atest ConnectivityCoverageTests
Test: device test
Change-Id: I4d8127fc693f8b32f815c5cddbae0b64deeb23e5
Destroy platform managed sockets on the removed IP address based on NetworkAgent update.
Bug: 373280981
Bug: 331139818
Flag: android.net.platform.flags.connectivity_service_destroy_socket
Test: atest ConnectivityCoverageTests
Test: device test
Change-Id: I6a1d2d0c25c130c2747d66bee203b0408e2fa0da
Keeping a map from IP addresses to the list of NetworkAgentInfos that have
that IP address in their LinkProperties.
Bug: 373280981
Bug: 331139818i
Flag: android.net.platform.flags.connectivity_service_destroy_socket
Test: atest ConnectivityCoverageTests
Test: device test
Change-Id: I1e39ce00d8bc49252df8088efc768804ae9ee0a8
Moves the parameterized variable into the test class constructor for cleaner initialization
and improved test flexibility.
Flag: EXEMPT mainline
Bug: 410976315
Test: atest ConnectivityCoverageTests:android.net.connectivity.com.android.server.connectivity.MultinetworkPolicyTrackerTest
Change-Id: Iab1388850d3a7c1f8872ad5a561023a8487f006f