Commit Graph

114 Commits

Author SHA1 Message Date
Junyu Lai
626045a601 [BR01.1] Support BpfNetMapsReader
A helper class to *read* java BpfMaps. This is designed to
provide direct bpf access in the caller process through
ConnectivityManager APIs.

The change also removes any statical link to
net-utils-device-common-struct from service-connectivity.
This is because net-utils-device-common-struct is already
included in framework-connectivity. Including it again in
service-connectivity would create a r8 build fail by circular
dependency.

Test: atest FrameworksNetTests:android.net.connectivity.com.android.server.BpfNetMapsTest
Test: atest ConnectivityCoverageTests:android.net.connectivity.com.android.net.module.util.StructTest
Test: atest FrameworksNetTests:android.net.connectivity.android.net.BpfNetMapsReaderTest
Bug: 297836825
Change-Id: I7a6d2eb816d0dc7343167bddd672806b199f44fe
2023-10-23 20:11:02 +08:00
Motomu Utsumi
195a30f02e Remove lint-baseline in staticlibs
Bug: 300384860
Test: TH
Change-Id: Ic26efebc24b3f7030b6ff66579fc0f5e5d019d5f
2023-09-27 17:24:30 +09:00
Maciej Żenczykowski
127a1441c3 bump min_sdk_version from 29 (Q) to 30 (R)
Mainline no longer supports Q.
These files were recently moved into p/m/C as part of a refactor.

Test: TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I0f06ace921db6c79d63c0048bdb73d167ff606cf
2023-09-19 23:22:58 +00:00
Motomu Utsumi
c480039309 Merge remote-tracking branch 'remotes/aosp/tmp_libs_net_move' into libs_net_move_merge
frameworks/libs/net/common ->
packages/modules/Connectivity/staticlibs

frameworks/libs/net/client-libs ->
packages/modules/Connectivity/staticlbs/client-libs

Test: TH
Bug: 296014682
Change-Id: I5dc78f0c4653e20312ab3d488b1e69262dbb9840
2023-09-11 11:53:46 +09:00
Mark White
66d39cdccd Created empty framework-location non-updatable module
Bug: 289776578
Test: m CtsLocationCoarseTestCases CtsLocationFineTestCases CtsLocationGnssTestCases CtsLocationNoneTestCases CtsLocationPrivilegedTestCases
Change-Id: I6922384386e6e6467484d20f6db74a4e49209374
2023-08-28 12:15:22 +00:00
Yuyang Huang
6acc55e129 Move ArpPacket.java to frameworks/libs/net
Bug: 281639507
Test: TH
Change-Id: Ic0d273695d3f0f85a0ec56337a9d12d77b60ea3b
2023-08-24 12:48:02 +09:00
chiachangwang
1637730010 Add isFeatureSupported and isTetheringFeatureForceDisabled methods
Add isFeatureSupported helper method to check whether
a specific feature is supported. This is useful when a specific
module version is required on a cross module feature, e.g.
a connectivity feauture requires to work with a older
networkstack module.

This commit also adds isTetheringFeatureForceDisabled() method
as a method that refers to DeviceConfig which can be controlled
to explicitly disabled.

Bug: 291870956
Test: atest FrameworksNetTests NetworkStaticLibTests
Change-Id: I511d00663e2378c36b4ca017db4b88d88f650852
2023-08-02 13:12:14 +00:00
fqjc86
cece401526 Add DomainsUtils class to encode/decode domain names.
Both encode and deocde methods support message compression which is
described in RFC1035 section 4.1.4. We can leverage both methods in
a follow-up CL to parse DHCPv4 option 119 and DNSSL RA option.

This cl also adds maxLabelCount argument for DnsRecordParser#parseName
to prevent the potential recursion from overflowing the stack.

Bug: 189865016
Test: atest NetworkStaticLibTests
Change-Id: I624649c224f141848a475ac85c56012d138c5224
2023-07-11 18:04:18 +09:00
Paul Hu
8d47d844de Enable error-prone checking in the net-utils-framework-common
Enable error-prone checking in the net-utils-framework-common to
catch NullablePrimitive errors during build time.

Also fix any NullablePrimitive errors that are found in the
library classes.

Bug: 256991804
Test: Enable error-prone checking and check if the build fails
      with any NullablePrimitive errors. If it does, fix the
      errors and build again.
Change-Id: I7e1508d166f258f5232ff39388ac984fbdc6169e
2023-05-04 14:03:58 +08:00
Yuyang Huang
e4eb87ae3a Move Hexdump.java to framework/
Move Hexdump.java to framework/ to make it accessible from other
framework class.

Test: m
Change-Id: If92b7f0e09edc65071152197c3894d4a652c1853
2023-05-02 18:44:51 +09:00
Igor Chernyshev
810be2b456 Add async BufferedFile and StreamingPacketFile impls
Bug: 245971639

Change-Id: Ief1719262c2cb68819f6feb955e97793f3638ec0
2023-04-17 21:26:58 +00:00
Yuyang Huang
f67388b0ff Add a build rule for files used by mdns
mdns may be imported in other non-AOSP projects as a library, along with
its dependencies from net-utils-device-common. While all of
net-utils-device-common may not build against system API, this requires
the files used by mdns to build against system API.

Add a library to allow checking that the dependencies can still build
against system API.

Test: m
Bug: 272392042
Change-Id: I468f53b47ef55c23137594a79599b148084f4535
2023-04-05 19:31:31 +09:00
Igor Chernyshev
a25f1091c5 Add wear tethering util classes
Bug: 245971639

Change-Id: I97655ece334ca93743896e89e12f8501f4e24776
2023-01-03 06:55:23 +00:00
chiachangwang
f618ab0769 Add SocketUtils in the shared libs
SocketUtils in the framework should be better to move to shared
lib since it's commonly used by modules. But it is exposed in
API surface, so it cannnot simply move from framework to shared
lib. Create a SocketUtils in libs to deprecate the usage of
the original SocketUtils so that adding extra socket utils will
not be restricted by API release.

Test: m
Change-Id: Idf57071a4bd89a6114dda9a9c9c19fd0e5db54c5
2022-12-16 09:31:44 +00:00
Hassan Ali
47d424e49d Add ConfigInfrastructure lib to Android.bp
As part of moving DeviceConfig.java to
packages/modules/ConfigInfrastructure, We need to add
ConfigInfrastructure lib dependency to Android.bp.

Test: m
bug: 253019048
Change-Id: Id35bec32e9b46ef6589034d442a767ce1a4aaac8
2022-11-17 16:34:31 +00:00
Junyu Lai
85e24e85b2 [ST02] Add methods for synthesizing DNS packets
This re-submit aosp/1387135 but define TYPE_CNAME locally to
prevent from using non-finalize API.

Bug: 139774492
Test: atest NetworkStaticLibTests:com.android.net.moduletests.util.DnsPacketUtilsTest

Change-Id: Ib2e98292be994ca09845c6857b8884f9bcdaba80
2022-09-16 15:40:01 +08:00
Remi NGUYEN VAN
f53c488b93 Revert "[ST02] Add methods for synthesizing DNS packets"
Revert "[ST02.1] Add TYPE_CNAME constant to DnsResolver"

Revert submission 1387135-st02

Reason for revert: Usage of TYPE_CNAME in a library shared among
modules does not interact well with current module release process

Reverted Changes:
Ib5616c65c:[ST02.2] Use the getters of DnsHeader
I5e58f99b0:[ST02.1] Add TYPE_CNAME constant to DnsResolver
I0c1547cbc:[ST02] Add methods for synthesizing DNS packets

Change-Id: I9f8de47c9ba9fb4db7cf3695966f222f68a9a290
2022-09-08 11:01:05 +00:00
junyulai
96c4750d59 [ST02] Add methods for synthesizing DNS packets
Bug: 139774492
Test: atest NetworkStaticLibTests:com.android.net.moduletests.util.DnsPacketUtilsTest
Change-Id: I0c1547cbc1e7295e9a3dcb0f553065356b05bd7c
2022-09-05 10:16:24 +08:00
William Escande
fbe576b383 RESTRICT AUTOMERGE - [Bluetooth apex] Use new apex name
The Bluetooth apex name is now called com.android.btservices

Bug: 243054261
Test: Build
Change-Id: I38caf03e134d9623ee73fa5b7f742d5ebbafeaa1
2022-08-23 17:29:59 +00:00
Xiao Ma
1453c7c74a Move NetworkMonitorUtils to net-utils-device-common lib.
Move the NetworkMonitorUtils class from NetworkStack module to
frameworks/libs/net, then we can remove the filegroups defined
in NetworkStack module which are shared with Connectivity module.
Import the net-utils-device-common lib instead.

Update the NetworkMonitorUtils#isValidationRequired() first param type
to make the migration easier, change the NetworkAgentConfigShim type
param to boolean, which can be passed by the caller directly such as in
ConnectivityServiceTest or NetworkMonitor, then we don't need to add
static lib to support NetworkAgentConfigShim, not easy to support.

Bug: 238960524
Test: m
Change-Id: I72dfb5902dea0e7ddb2c33a08f874fe36adcbeec
2022-08-05 14:29:11 +09:00
Nucca Chen
bfb9c4f4be Merge "Add BpfDump.toBase64EncodedString to dump raw map" 2022-07-06 12:04:54 +00:00
Hungming Chen
b3e71a2959 Add BpfDump.toBase64EncodedString to dump raw map
Move base64 related bpf map function and constant from BpfCoordinator.
This is preparation for testing BPF map in ClatCoordinator.

Test: atest NetworkStaticLibTests
Change-Id: I3a23393abe5b108cdb8d621e99b74fd20847474e
2022-07-06 04:34:34 +00:00
Treehugger Robot
c68b0d278e Merge "Set min_sdk_version" 2022-07-04 14:01:20 +00:00
Jooyung Han
b3b6798adc Set min_sdk_version
This was done via the hard-coded list in build/soong.


Bug: 158059172
Test: m
Merged-In: Icae85d5f4564ee3f04bacb0d3dad7a80d70ee443
Change-Id: Icae85d5f4564ee3f04bacb0d3dad7a80d70ee443
(cherry picked from commit 6e043e136d3390f44e84bb57e4a8eeb4ec25d838)
2022-06-29 22:09:32 +00:00
Hungming Chen
c89302f198 Move struct {Clat*, Tether4*, TetherStats*} to connectivity module
Needed because these struct classes should not be exposed.
Only used for the connectivity module and its integration test.

Bug: 234160319
Test: atest ConnectivityCoverageTests
Change-Id: I7ad2a711807d2ee0bb95d9be1d038c6b07143052
2022-06-29 18:02:58 +08:00
Nate(Qiang) Jiang
ce723aa546 Make netd-client and net-utils-services-common visible to Wifi module
Bug: 172457099
Test: N/A
Change-Id: I50d4502ad2e5515217d70fb5e106fba01da8d68f
2022-06-16 23:00:03 +00:00
Maciej Żenczykowski
7b9ed7b51e Merge "Make net-utils-device-common-bpf only available for module and tests" 2022-05-31 22:08:00 +00:00
Mark Chien
df92fd903d Make net-utils-device-common-bpf only available for module and tests
net-utils-device-common-bpf is design for connectivity module only,
change the visibility to avoid someone outside of the module use it inadvertently.

Bug: 234160319
Change-Id: I3c7c48b60414f19bad8be0bda38ea5af3dc99c86
Test: TH
2022-05-31 08:35:54 +00:00
Anton Hansson
0ceeb7c6d8 Remove unused filegroup
The library in frameworks/base now uses the java_library defined here.

Whilst here, also mark the library as available to wifi.

Test: m com.android.wifi
Change-Id: I36047413c749df3cabb7b284444a6f60494d3bb1
2022-05-30 12:06:03 +00:00
William Escande
b80c7f9033 Clear apex.go entries for bluetooth libs
The module availability to Bluetooth is currently hard-coded in apex.go.
We are in the process of cleaning the apex.go by adding the availability
in each required module

Test: Build + TH + boot phone & use bluetooth
Bug: 216433795
Change-Id: I7b9e2a95e9fda0f25786e113d78bca81a4406abf
2022-03-18 18:39:18 +01:00
Xiao Ma
2bbc2f79de Make net-utils-services-common visible to service-connectivity-tiramisu.
Ethernet service sources are moving to Connectivity module, which has
dependency on the NetworkFactory class such as EthernetNetworkFactory.
Import this lib in service-connectivity-tiramisu-pre-jarjar to fix this
dependency.

Bug: 202086915
Test: m
Change-Id: I2f92479f56af110d89c9fa95eca725af7132b66f
2022-03-07 10:09:21 +00:00
Paul Hu
9958830fc1 Merge "Rename framework-connectivity-tiramisu to framework-connectivity-t" 2022-03-02 07:11:24 +00:00
Tyler Wear
e48ee4a864 Bpf Util Lib in Common Location
Add bpf lib to load and attach BPF programs in commonly accesible
location.

Bug: 179733303

Change-Id: I17b68abb14e816e7210bc603ffda44e10fb73d2f
2022-03-01 09:09:36 -08:00
paulhu
cdb069ed43 Rename framework-connectivity-tiramisu to framework-connectivity-t
Bug: 215434166
Test: build, flash, device boot to home.
Merged-In: Ie4c0ae97435457ea46b7c41be86a896b552d9bd8
Change-Id: Ie4c0ae97435457ea46b7c41be86a896b552d9bd8
2022-03-01 01:27:48 +00:00
Tyler Wear
92f3c24e90 Add BpfBitmap Class
Generic bitmap class for use with bpf programs. Internally
uses bpfMap with key/value.

Test: atest BpfBitmapTest
Change-Id: Ica912b080849b50614e30ee168992c9ada74068c
2022-02-16 14:48:33 -08:00
Nucca Chen
e46975857c Merge "Move Tether4Key and Tether4Value to common libs" 2022-02-09 13:53:41 +00:00
Hungming Chen
f4302ece8f Move Tether4Key and Tether4Value to common libs
EthernetTetheringTest needs to parse BPF map content for IPv4
forwarding rule tests. Move the struct class files to common
libs.

Compare Tether4{Key, Value}.java between frameworks/libs/net/common
and packages/modules/Connectivity/Tethering.
There is only the package name change as expected.

$ diff packages/modules/Connectivity/Tethering/src/com/android/networkstack/tethering/Tether4Key.java frameworks/libs/net/common/device/com/android/net/module/util/bpf/Tether4Key.java
17c17
< package com.android.networkstack.tethering;
---
> package com.android.net.module.util.bpf;

$ diff packages/modules/Connectivity/Tethering/src/com/android/networkstack/tethering/Tether4Value.java frameworks/libs/net/common/device/com/android/net/module/util/bpf/Tether4Value.java
17c17
< package com.android.networkstack.tethering;
---
> package com.android.net.module.util.bpf;

Test: atest TetheringCoverageTests

Change-Id: I77142c784e20fd74d4aa5dd34858159e232abbe3
2022-02-09 07:58:39 +00:00
Remi NGUYEN VAN
8c19182bcf Add framework-connectivity-t to net-utils
The dependency is necessary as it builds against module_current and uses
APIs moved there.

Ignore-AOSP-First: Avoiding conflicts, cherry-pick will follow
Bug: 197717846
Test: m
  (cherry-picked from ag/16770415)
Change-Id: I150adbdcc6ba48e0fade9f43242ef5d2f8d7cea0
Merged-In: I150adbdcc6ba48e0fade9f43242ef5d2f8d7cea0
2022-02-08 18:49:16 +08:00
Roopa Sattiraju
98fa3bfdac Adding bt apex
Bug: 206121418
Test: Compile
Change-Id: Ia117cc35a885ba74c98a67b061a648f96dd78228
2022-02-03 21:52:14 -08:00
Remi NGUYEN VAN
7e5cf2c0c9 Merge "Use module API in common libraries" 2022-01-31 12:15:08 +00:00
Junyu Lai
b24df14433 [MS48.3] Allow Settings package to build with network static libs
Settings app used NetworkStatsHistory#getValues to fetch rational
bytes of the history. However, this functionality will not be
available after mainling NetworkStats. Thus, allow Settings
to build with NetworkStatsUtils for implementing alternative
solution.

Test: atest clockwork-settings-robotests
      make RunSettingsRoboTests -j40
      make RunSettingsLibRoboTests
           ROBOTEST_FILTER=DataUsageControllerTest
      make RunSettingsLibRoboTests
           ROBOTEST_FILTER=NetworkCycleChartDataLoaderTest
      make RunSettingsLibRoboTests
           ROBOTEST_FILTER=NetworkCycleDataForUidLoaderTest
      make RunSettingsLibRoboTests
           ROBOTEST_FILTER=NetworkCycleDataLoaderTest
      make RunSettingsLibRoboTests
           ROBOTEST_FILTER=DataUsageUtilsTest
Bug: 204830222
Ignore-AOSP-First: Related API conflict, need master first.

  (cherry-picked from ag/16681887)

Change-Id: I8f8b6160fdc78ee91e4ce84c07faef3a0408e489
Merged-In: I8f8b6160fdc78ee91e4ce84c07faef3a0408e489
2022-01-25 22:21:17 +08:00
Remi NGUYEN VAN
7f0d0e3865 Use module API in common libraries
Update libraries that still use system_current to module_current.

This is necessary for usage in some modules, as a dependency on
system_current libraries could cause circular dependencies.
system_current includes the API surface of all modules, so module API
jars cannot depend on it transitively.

Also remove framework-annotations from net-utils-framework-common
sources. This is a long overdue cleanup, and without it module API jars
would include unintended API classes when including
net-utils-framework-common.

Bug: 204830222
Test: m
Change-Id: I8f15a95a5951a644b080f5f655ffb846b900193c
2022-01-25 19:13:37 +09:00
markchien
be96036a63 Decouple "net-utils-framework-common" from "net-utils-device-common-bpf"
Currently "net-utils-device-common-bpf" statically link whole
"net-utils-device-common-struct" which would also pull in
"net-utils-framework-common". Since the classes in
net-utils-framework-common would be loaded into bootclass path, it would
cause sytem server service which located in platform code (the class in
/system/framework/service.jar) not able to use net-utils-device-common-bpf
library.

There is a cts to protect this:
StrictJavaPackagesTest#testBootClasspathAndSystemServerClasspath_nonDuplicateClasses

Bug: 215095957
Test: atest FrameworkNetTests
Change-Id: I232bd21c666dd44f7d0b8cc84610e8cd37dc383c
2022-01-24 19:02:53 +00:00
markchien
32a6e9cbde Add visibility for use bpfmap by BpfInterfaceMapUpdater
Bug: 215095957
Test: m
Change-Id: Idbb8e3cbf520a29444ccdfd2d1c42553c886a7f0
2022-01-21 22:33:38 +08:00
markchien
2e5fece3bf Add IBpfMap for injection in testing
To avoid load jni library in some testing (BpfMap load jni library
statically), add IBpfMap for injection.

Bug: 215095957
Test: atest FrameworkNetTests
Change-Id: I71e67f9cdc19a856fe5dce5940be702e866b87c4
2022-01-21 22:32:44 +08:00
Patrick Rohr
29b0d95e1e Move BpfUtils -- add java class
Adding a TcUtils java class.

Bug: 202086915
Bug: 157552970
Test: atest TetheringTests
Change-Id: Ifb97d822bd96de6ed1a3fed547234ef32d691ad8
2022-01-13 22:24:29 +01:00
Aaron Huang
ed3e1c3cfc Revert "Add net-utils-annotations lib"
This reverts commit 9caba5092ae90669a1df13dcf491bdceef07bf55.

Reason for revert: Plan to move the annotation class into Connecitivty module

Change-Id: I2fa17921d3dceda4082fa04d696fe9f5bbccbc1b
2021-12-21 14:52:43 +08:00
Hungming Chen
435833f2cd Add a class to build IPv4 TCP packet
Note that IPv4 and TCP options are not supported.

Test: atest NetworkStaticLibTests

Change-Id: Ie62b95bf759b74d72a5e85d312d17978422f633b
2021-12-14 18:12:34 +08:00
Aswin Sankar
601d6f9c71 Spin off DnsPacket into separate library
- Packages that don't need the entire 'net-utils-framework-common'
library can depend on this lightweight library.
- This library does not depend on 'framework-annotations' which
was a problem for the mainline modularization team in allowing
other libs to depend on it.
- Spins off the DnsRecord parsing logic into its own class so that
custom DNS resolvers can re-use it.

Test: atest NetworkStaticLibTests

Bug: 193442330
Change-Id: I27d6ee4591d8ab126b7df31f0df8377794fa50f1
2021-11-24 01:45:04 +00:00
Chiachang Wang
a37d20ed00 Merge "Enable strict_updatability_linting in frameworks/libs/net" 2021-11-22 02:48:24 +00:00