• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// AIDL interface between netd and services.core
2aidl_interface {
3    name: "netd_event_listener_interface",
4    local_include_dir: "binder",
5    srcs: [
6        "binder/android/net/metrics/INetdEventListener.aidl",
7    ],
8    api_dir: "aidl/netdeventlistener",
9    versions: ["1"],
10}
11
12// These are used in netd_integration_test
13// TODO: fold these into a cc_library_static after converting netd/server to Android.bp
14filegroup {
15    name: "netd_integration_test_shared",
16    srcs: [
17        "NetdConstants.cpp",
18        "InterfaceController.cpp",
19        "NetlinkCommands.cpp",
20        "NetlinkListener.cpp",
21        "XfrmController.cpp",
22        "TrafficController.cpp",
23    ],
24}
25
26aidl_interface {
27    name: "netd_aidl_interface",
28    local_include_dir: "binder",
29    srcs: [
30        "binder/android/net/INetd.aidl",
31        // AIDL interface that callers can implement to receive networking events from netd.
32        "binder/android/net/INetdUnsolicitedEventListener.aidl",
33        "binder/android/net/InterfaceConfigurationParcel.aidl",
34        "binder/android/net/TetherStatsParcel.aidl",
35        "binder/android/net/UidRangeParcel.aidl",
36    ],
37    api_dir: "aidl/netd",
38    backend: {
39        cpp: {
40            gen_log: true,
41        },
42    },
43    versions: [
44        "1",
45        "2",
46    ],
47}
48
49aidl_interface {
50    // This interface is for OEM calls to netd and vice versa that do not exist in AOSP.
51    // Those calls cannot be part of INetd.aidl and INetdUnsolicitedEventListener.aidl
52    // because those interfaces are versioned.
53    // These interfaces must never be versioned or OEMs will not be able to change them.
54    name: "oemnetd_aidl_interface",
55    local_include_dir: "binder",
56    srcs: [
57        "binder/com/android/internal/net/IOemNetd.aidl",
58        "binder/com/android/internal/net/IOemNetdUnsolicitedEventListener.aidl",
59    ],
60}
61
62// Modules common to both netd and netd_unit_test
63cc_library_static {
64    name: "libnetd_server",
65    defaults: ["netd_defaults"],
66    include_dirs: [
67        "system/netd/include",
68        "system/netd/server/binder",
69    ],
70    srcs: [
71        "BandwidthController.cpp",
72        "ClatdController.cpp",
73        "ClatUtils.cpp",
74        "Controllers.cpp",
75        "NetdConstants.cpp",
76        "FirewallController.cpp",
77        "IdletimerController.cpp",
78        "InterfaceController.cpp",
79        "IptablesRestoreController.cpp",
80        "NFLogListener.cpp",
81        "NetlinkCommands.cpp",
82        "NetlinkListener.cpp",
83        "NetlinkManager.cpp",
84        "RouteController.cpp",
85        "SockDiag.cpp",
86        "StrictController.cpp",
87        "TcpSocketMonitor.cpp",
88        "TetherController.cpp",
89        "TrafficController.cpp",
90        "UidRanges.cpp",
91        "WakeupController.cpp",
92        "XfrmController.cpp",
93    ],
94    shared_libs: [
95        "libbpf_android",
96        "libbase",
97        "libbinder",
98        "liblogwrap",
99        "libnetdbpf",
100        "libnetutils",
101        "libnetdutils",
102        "libpcap",
103        "libqtaguid",
104        "libssl",
105        "netd_aidl_interface-V2-cpp",
106        "netd_event_listener_interface-V1-cpp",
107    ],
108    header_libs: [
109        "libnetd_resolv_headers",
110    ],
111    aidl: {
112        export_aidl_headers: true,
113        local_include_dirs: ["binder"],
114    },
115}
116
117cc_binary {
118    name: "netd",
119    defaults: ["netd_defaults"],
120    include_dirs: [
121        "external/mdnsresponder/mDNSShared",
122        "system/netd/include",
123    ],
124    init_rc: ["netd.rc"],
125    shared_libs: [
126        "android.system.net.netd@1.0",
127        "android.system.net.netd@1.1",
128        "libbase",
129        "libbinder",
130        "libbpf_android",
131        "libcutils",
132        "libdl",
133        "libhidlbase",
134        "libhidltransport",
135        "libjsoncpp",
136        "liblog",
137        "liblogwrap",
138        "libmdnssd",
139        "libnetdbpf",
140        "libnetdutils",
141        "libnetutils",
142        "libpcap",
143        "libprocessgroup",
144        "libqtaguid",
145        "libselinux",
146        "libsysutils",
147        "libutils",
148        "netd_aidl_interface-V2-cpp",
149        "netd_event_listener_interface-V1-cpp",
150        "oemnetd_aidl_interface-cpp",
151    ],
152    static_libs: [
153        "libnetd_server",
154    ],
155    header_libs: [
156        "libnetd_resolv_headers",
157    ],
158    srcs: [
159        "DummyNetwork.cpp",
160        "EventReporter.cpp",
161        "FwmarkServer.cpp",
162        "LocalNetwork.cpp",
163        "MDnsSdListener.cpp",
164        "NetdCommand.cpp",
165        "NetdHwService.cpp",
166        "NetdNativeService.cpp",
167        "NetlinkHandler.cpp",
168        "Network.cpp",
169        "NetworkController.cpp",
170        "OemNetdListener.cpp",
171        "PhysicalNetwork.cpp",
172        "PppController.cpp",
173        "Process.cpp",
174        "ResolvStub.cpp",
175        "VirtualNetwork.cpp",
176        "main.cpp",
177        "oem_iptables_hook.cpp",
178    ],
179}
180
181cc_binary {
182    name: "ndc",
183    defaults: ["netd_defaults"],
184    include_dirs: [
185        "system/netd/include",
186    ],
187    header_libs: [
188        "libnetd_client_headers",
189    ],
190    shared_libs: [
191        "libbase",
192        "libnetdutils",
193        "libnetutils",
194        "libcutils",
195        "liblog",
196        "libutils",
197        "libbinder",
198        "dnsresolver_aidl_interface-V2-cpp",
199        "netd_aidl_interface-V2-cpp",
200    ],
201    srcs: [
202        "ndc.cpp",
203        "UidRanges.cpp",
204        "NdcDispatcher.cpp",
205    ],
206}
207
208cc_test {
209    name: "netd_unit_test",
210    defaults: ["netd_defaults"],
211    test_suites: ["device-tests"],
212    include_dirs: [
213        "system/netd/include",
214        "system/netd/server/binder",
215        "system/netd/tests",
216        "system/core/logwrapper/include",
217    ],
218    srcs: [
219        "BandwidthControllerTest.cpp",
220        "ClatdControllerTest.cpp",
221        "ClatUtilsTest.cpp",
222        "ControllersTest.cpp",
223        "FirewallControllerTest.cpp",
224        "IdletimerControllerTest.cpp",
225        "InterfaceControllerTest.cpp",
226        "IptablesBaseTest.cpp",
227        "IptablesRestoreControllerTest.cpp",
228        "NFLogListenerTest.cpp",
229        "RouteControllerTest.cpp",
230        "SockDiagTest.cpp",
231        "StrictControllerTest.cpp",
232        "TetherControllerTest.cpp",
233        "TrafficControllerTest.cpp",
234        "XfrmControllerTest.cpp",
235        "WakeupControllerTest.cpp",
236    ],
237    static_libs: [
238        "libgmock",
239        "libnetd_server",
240        "libnetd_test_tun_interface",
241    ],
242    shared_libs: [
243        "libbase",
244        "libbinder",
245        "libbpf_android",
246        "libcrypto",
247        "libcutils",
248        "liblog",
249        "libnetdbpf",
250        "libnetdutils",
251        "libnetutils",
252        "libqtaguid",
253        "libsysutils",
254        "libutils",
255        "netd_aidl_interface-V2-cpp",
256        "netd_event_listener_interface-V1-cpp",
257    ],
258}
259