Along with ethernet service is going to be moved into Connectivity
module, this CL contains the corresponding changes as below:
1. deprecate the etherent-service lib and create a new filegroup:
When the ethernet mainline code migration completes, ethernet-service
lib won't be kept any more, instead the ethernet service should be
started from ConnectivityServiceInitializer. So deprecate the current
ethernet-service lib and cleanup the usages on other places later.
Create a new filegroup which includes all ethernet service code, that
will be built into service-connectivity-tiramisu-pre-jarjar.
2. Move the implementation of starting ethernet service:
ConnectivityServiceInitializer should take responsibility to start
ethernet service and EthernetTracker on boot phase. Move this code
to ConnectivityServiceInitializer and remove the current onStart and
onBootPhase implemenation.
3. Move below ethernet service related config resources:
- config_ethernet_tcp_buffers
- config_ethernet_interfaces
- config_ethernet_iface_regex
Move the definition of these resource from frameworks/base/core to
p/m/Connectivity/service/ServiceConnectivityResources, and import the
ServiceConnectivityResources lib to adapt the ethernet update.
4. Update the EthernetServiceTests dependencies and refactor the code
which uses ConnectivityResources instead of internal Resource to make
the tests pass.
Bug: 210586283
Test: m
Test: atest FrameworksNetTests
atest EthernetServiceTests
Change-Id: I0bbecfb64f720213ee2b02417bc8357ccf4725b6
Merged-In: I0bbecfb64f720213ee2b02417bc8357ccf4725b6
The functions does not log but throws an exception instead. Changing the
name to reflect that.
Test: TH
Change-Id: I6207aababaccc9bc553f7f731e3b8a1d26eb16a1
Usage of this API should not be limited to Automotive devices as
TvSettings also needs to update the IpConfiguration.
Test: TH
Change-Id: I838a0a8684e9f944801718a4d688666de45f42fb
Marking NetworkCapabilities as nullable in updateConfiguration and
updating where needed to support this. This will allow callers of
the ethernet network management updateConfiguration API to use it
primarily for setting an ethernet network's IP configuration.
Bug: 222565654
Bug: 220017952
Bug: 210485380
Test: atest EthernetServiceTests
Change-Id: Ifd908639a00470e599fe1a15487cc6383a56b2f5
Updating Ethernet Network Management APIs to allow support for test
interfaces when the caller has the MANAGE_TEST_NETWORKS permission, test
interfaces are being tracked in ethernet and if updating a network's
capabilities, they include the TEST transport.
Bug: 210487893
Test: atest EthernetServiceTests
atest CtsNetTestCasesLatestSdk
:android.net.cts.EthernetManagerTest
Change-Id: I0e0bc9632d9b3d5d61f23e74150586f42c0b5bd2
Removing synchronous validation of whether a particular interface
is tracked or not and instead relying on asynchronous validation and
callbacks. An interface can be in the midst of being provisioned and
checking if it is tracked sychronously before provisioning is complete
will erroneously throw an error for a call that would have been
successful when executed on the ethernet handler thread.
Bug: 210487893
Bug: 210485380
Test: atest EthernetServiceTests
Change-Id: Ib70312a240cab412a54ca7f598893aa9b1e108fd
Updating ethernet classes to use a builder when creating an
EthernetNetworkUpdateRequest and also changing to use
IpConfiguration instead of StaticIpConfiguration for the
UpdateConfiguration API.
Bug: 220017952
Bug: 210487893
Bug: 210485380
Test: atest EthernetServiceTests
Change-Id: I2647115bf867dfaa3f3dadf00e3c875aa7e8d88f
EthernetManager is moving to the connectivity mainline module
and some of its hidden methods are being exposed as module-lib
APIs. This CL updates the implementation.
1. Rename onAvailabilityChanged to onInterfaceStateChanged in
IEthernetServiceListener.aidl, to match the name of the public
callback method.
2. Add the interface state, role and IpConfiguration to the
callback, so that clients can use this information without
having to call synchronous methods.
3. Call the new callback whenever any of the above parameters
changes, or when a callback is registered.
Also make some package-private methods in EthernetNetworkFactory
protected @VisibleForTesting because otherwise mockito can't
mock them.
Bug: 210586283
Test: m
Test: atest EthernetServiceTests EthernetTetheringTest
Change-Id: Ib27bf119b0d61b78f19b6447a38b4468d8035c78
Merged-In: Ib27bf119b0d61b78f19b6447a38b4468d8035c78
Updating Ethernet Service network management APIs to
require the manage ethernet networks permission.
Bug: 210485380
Test: atest EthernetServiceTests
Change-Id: Ibc9b2930fc0069efd7c6f4b833aba7d6c8e93311
Renaming InternalNetwork* files and classes related to ethernet network
management to EthernetNetwork* as ethernet is the only trasnport these
particular files are used with.
Bug: 210485380
Test: atest EthernetServiceTests
Change-Id: I5be8543afd70f2edca76a9366cee4ccf61f0d0e7
Implementation of EthernetService APIs for ConnectNetwork() and
DisconnectNetwork().
Bug: 210485380
Test: atest EthernetServiceTests
Change-Id: I4c3e361d052206cb28b97fc439bfeac8e7e0fec0
Updates so that network management API updates in the ethernet stack can
handle concurrent requests correctly in regards to notifying caller
supplied callbacks.
Bug: 210485380
Test: atest EthernetServiceTests
Change-Id: I8073251b2c63309da031c2b1c98d61614deadfe8
Ethernet service related files are going to be moved into Connectivity
module. NetdService won't be visible to EthernetService. Use asInterface
to get the Netd service instead.
Bug: 210586283
Test: m
Change-Id: I3bf504cd947f74bf5830659915483fe5331ac9eb
This is not any better than the previous code though...
But it should behave the same.
Test: FrameworksNetTests
Change-Id: Ia3d379681cb0f17dd5f86062b7cfe84f1547fadb
If the ipClient is stopped before handling the events in
Handler thread, ethernet network factory might end up
creating a network agent for a network which is already
cleared.
This change fixes the issue by handling the events only
if ipClient is initialized.
Tests:
Builds, Boots, EthernetNetworkFactoryTest.
Ethernet related test scenarios
Bug: 207057937
Change-Id: If7ff7abf5f0dcdb0e94de0502bfdf981f9f20298
EthernetServiceImpl#updateConfiguration API implementation to allow
for dynamically updating the network capability or ip configuration of
an ethernet based interface.
Bug: 210485380
Test: atest EthernetServiceTests
Change-Id: Idd3b7875a24643d245d0f4bb6f2f4c459898116e
Replacing IIpClient with IpClientManager to reduce code duplication,
increase readability and maintainability as well as making
EthernetNetworkFactory easier to unit test.
Bug: 210485380
Test: atest EthernetServiceTests
Change-Id: I283653171c0cc47ad94a67d6dbd65b924cdf1ada
Code clean-up to use PermissionUtils for common networking
permissions. Should be a no-op.
Bug: 210485380
Test: make, flash and boot
Change-Id: I4be08243156e9d04f4b3b44ab7328d0f6f7fdda1
Updates to make methods in EthernetServiceImpl that rely on
EthernetTracker unit testable. This CL also includes added tests for
such methods in EthernetServiceImplTest.
Bug: 210485380
Test: atest EthernetServiceTests
Change-Id: I63969b60cc4cf9d391e2cd21d02e1bdc8988aba8
Updates to ethernet service code to validate calls to ethernet network
management APIs.
Bug: 210485380
Test: atest EthernetServiceTests
Change-Id: I66b91c6d12e6859de33760ab21bb00f1477720e8
Ethernet service related files are going to be moved into Connectivity
module. INetworkManagementService won't be visible to EthernetTracker
since it's a hidden class. Alternatively, use INetd APIs to replace
INetworkManagementService usages, including below API changes:
- mNMService.listInterfaces -> mNetd.interfaceGetList
- mNMService.getInterfaceConfig -> NetdUtils.getInterfaceConfigParcel
- remove InterfaceConfiguration usage, use NetdUtils APIs instead.
- mNMService.registerObserver -> mNetd.registerUnsolicitedEventListener
- for this API change, also replace the parameter BaseNetworkObserver
class with BaseNetdUnsolicitedEventListener class.
Bug: 210586283
Test: atest FrameworksNetTests
Test: atest EthernetServiceTests
Change-Id: Ic14c55a6a36b774006931a6fbcbfdec0c51a16e9
Stubbed API methods in EthernetServiceImpl to be used for network
management.
Bug: 210487086
Bug: 210485380
Test: make, flash and boot and atest EthernetServiceTests
Change-Id: I8bd5a6eca07d00e0f155b71e2960371989a13013
Ethernet service related files are going to be moved into Connectivity
mainline module. Import InterfaceParams class in EthernetNetworkFactory
from f/libs/net/common, which is visible to Connectivity module.
Bug: 210586283
Test: atest EthernetServiceTests
Change-Id: I98ebb04cc3c2b685464e7f2689424794957088b3
Ethernet service related files are going to be moved into Connectivity
mainline module. Replace the Preconditions.checkNotNull usage in
EthernetNetworkFactory with Objects.requireNonNull.
Bug: 210586283
Test: atest EthernetServiceTests
Change-Id: Ibeaf687f706e8400f825cb2ca97bb1341774a97d
Ethernet service related files are going to be moved into Connectivity
module. So, NetdService won't be visible to EthernetTracker since it's
a hidden class. Alternatively, get the INetd instance from system
service instead.
Bug: 210586283
Test: atest FrameworksNetTests
Test: atest EthernetServiceTests
Change-Id: Iea021ac25cbe4b8836fdab2cd6b4bd3ead5bf725
Neighbor lost event is received when gateway is not reachable.
Ethernet Factory currently doesn't handle the neighbor lost event and
network will not be brought down. This results in loss of
connectivity even if there are other networks like WiFi.
Restart NetworkInterfaceState when neighbor lost event is
received. If there is a better network like WiFi, it will become
default and apps will be able to use internet. If ethernet gets
connected again, and has backhaul connectivity, it will become
default.
Bug: 180077540
Tests: Builds, Boots, EthernetServiceTests
Change-Id: I26d720994ecb35f6529358a53e115091e7817c2f
Added test coverage regarding how EthernetTracker consumes the xml
config as set in config_ethernet_interfaces. Additionally, adding
test coverage for transport override functionality in
EthernetNetworkFactory.
Bug: 206170402
Test: atest com.android.server.ethernet.EthernetTrackerTest
&& atest com.android.server.ethernet.EthernetNetworkFactoryTest
Change-Id: I3d55a230d3f28154ed6fdac6d63ed57bf589d3bd
Hard coded network scores are no longer used however they still exist
in EthernetNetworkFactory. This change removes this unused code in
favor of the NetworkScore object.
Bug: 209679953
Test: m && atest com.android.server.ethernet.EthernetNetworkFactoryTest
Change-Id: Ic9035964fc0e0bdf1dbd1ee845ba3293c753dd8d
Replace them with PermissionUtils.enforceNetworkStackPermission*
since those methods are deprecated.
Bug: 177187957
Test: atest EthernetServiceTests
Change-Id: Ifde4a8898439b86e6cc49b7469787bc5e4a91835
When the EthernetNetworkAgent has already been stopped, a call to
unwanted will cause a crash due to a nullptr derefernce.
Bug: 197279734
Test: atest EthernetNetworkFactoryTest
Change-Id: Ice39c603bdd3e3139aa8ece7fb897bf7b567e74b
The requestTetheredInterface() and releaseTetheredInterface() in
EthernetManager is annotated as @NonNull. Basically, the taken
callback parameter to the service implementation should also be
@NonNull. However, it still possible to use native commands to
call the method in the aidl. If a null callback is taken, it may
cause unexpected results and cause crashes. Add a null check and
throw NPE as a warning.
Bug: 190058445
Test: adb commands
Change-Id: I18fd63aba3f7326597fc3a8c93ba8c9097bf7348