Age | Commit message (Collapse) | Author |
|
|
|
1. Fill in each field of the NetworkIpProvisioningReported
2. Write the NetworkIpProvisioningReported into statsd
Bug: 151796056
Test: atest NetworkStackIntegrationTests NetworkStackTests
Test: atest FrameworksNetTests
Test: Manual test with statsd_testdrive
Original-Change: https://android-review.googlesource.com/1313574
Merged-In: If4bc6af1b794a8620a08858d6cfd85e661865bd7
Change-Id: If4bc6af1b794a8620a08858d6cfd85e661865bd7
|
|
The classes should not be picked up from frameworks/base, as they are
part of several mainline modules.
Bug: 151052811
Test: m; manual: flashed, wifi and telephony working
Test: atest NetworkStackCoverageTests
Change-Id: I62da3419408b7eb71ea5319e8717fbb22c76a94e
|
|
Remove the dependency on DhcpResults in moduleutils by moving
toStableParcelable to NetworkStack main code, and fromStableParcelable
to the test only.
Only NetworkStack should be generating DhcpResultsParcelables, and only
the NetworkStack should be using DhcpResults at this point (eventually
the class would move from frameworks/base/core to NetworkStack).
Test: built, flashed, WiFi working
Bug: 149403767
Original-Change: https://android-review.googlesource.com/1277444
Merged-In: I093fa48967a48f594b242b1e05e7d481fa9ee529
Change-Id: I093fa48967a48f594b242b1e05e7d481fa9ee529
|
|
When IPv6 provisioning loss happens due to the default route has
gone, however, if IPv4 network is still provisioned, we can consider
to disable IPv6 stack and still keep the current connection without
disconnecting from wifi, applications will be able to reconnect over
IPv4 network.
Bug: 131781810
Test: atest NetworkStackTests NetworkStackNextTests
Test: atest NetworkStackIntegrationTests
Merged-In: I8f56a05b38c8387c91306c0dc2bdf4430ec3bd00
Change-Id: I8f56a05b38c8387c91306c0dc2bdf4430ec3bd00
|
|
|
|
|
|
Currently the timeout in the INIT-REBOOT state is 18s which allows
4 retransmits. In the scenario where DHCP server fails to response
due to certain reason, DhcpClient should go back to INIT state ASAP
and do the regular DHCPDISCOVER. Shorten the timeout to 5s to speed
up the fallback process.
Bug: 157960451
Bug: 157603386
Test: atest NetworkStackIntegrationTests
Test: manual test to verify that client goes back to INIT state
and broadcasts DHCPDISCOVER after 2 retransmissions.
Merged-In: I9d214e193a4f80a9512a3a6f385ca3554f050386
Change-Id: I9d214e193a4f80a9512a3a6f385ca3554f050386
|
|
Bug: 156575243
Test: atest NetworkStackTests NetworkStackIntegrationTests
Test: atest NetworkStackNextIntegrationTests
Test: manual test:
1. connect to AP successfully at the first time
2. disconnect wifi
3. reconnect to the same AP
4. checked client broadcasts REQUEST instead of DISCOVER
5. checked client broadcasts DISCOVER if lease has expired
Merged-In: I62d1ab6b94be1ee95fbaa2ecce62eaba01e7892d
Change-Id: I62d1ab6b94be1ee95fbaa2ecce62eaba01e7892d
|
|
MAX_TIMEOUT_MS: 128s -> 512s, battery drain for DHCP packet retransmit.
FIRST_TIMEOUT_MS: 2s -> 1s, shorten DHCP packet retransmit interval.
DEFAULT_TIMEOUT_MS: 36s -> 18s, quickly detect provisioning timeout.
Bug: 131781810
Test: atest NetworkStackIntegrationTests NetworkStackTests
Merged-In: Ie162b0d59da0082cd0c5ec02bb391c3d27f40607
Change-Id: Ie162b0d59da0082cd0c5ec02bb391c3d27f40607
|
|
Bug: 130741856
Test: atest NetworkStackTests NetworkStackNextTests
Merged-In: I9f558ce0838c87d9bb0ef519ee7c91e16f3bb066
Change-Id: I9f558ce0838c87d9bb0ef519ee7c91e16f3bb066
|
|
To support DHCPDECLINE message and request a new prefix from
IpServer, a WaitState is required to wait until IpServer allocates
a different prefix and completes configuring this prefix/route.
Then server could resume from pausing DHCP packets listening.
From this point, StateMachine is easier to add a WaitState for
implementation. Refactor DHCP server by replacing ThreadHandler
with StateMachine first.
Bug: 130741856
Test: atest NetworkStackTests NetworkStackNextTests
Test: manual test: connect wifi, turn on hotspot, downstream
device attaches to hotspot successfully, then turn off
hotspot, repeat multiple times.
Merged-In: I6c09d9c371e9c4e71d8ba26adaed640e3b97437b
Change-Id: I6c09d9c371e9c4e71d8ba26adaed640e3b97437b
|
|
This provides a better separation of the classes based on their role (an
actual shim, or an interface or utility common to all shims), and forces
the apishim package to import the common classes, which makes it easier
at SDK bump time since the imports do not need to be added at that
point.
Bug: 143586229
Test: atest NetworkStackTests
Original-Change: https://android-review.googlesource.com/1310517
Merged-In: Ie77c17a96a67016f35890afa065bea0a07b09504
Change-Id: Ie77c17a96a67016f35890afa065bea0a07b09504
|
|
Bug: 130741856
Test: atest NetworkStackTests TetheringTests
Test: manually turn on the hotspot and verify the downstream device
can attach to the upstream hotspot, then turn it off, repeat
multiple times.
Merged-In: I9da5fec47a74de36869e795fa9b1d7170d2f91c9
Change-Id: I9da5fec47a74de36869e795fa9b1d7170d2f91c9
|
|
In particular,
- Fix a possible NPE In IpNeighborMonitor, if a NUD_FAILED is received
for some neighbor before all other neighbors have received
RTM_NEWNEIGH.
- Add try / catch in IpNeighborMonitor, DhcpPacketListener,
ConnectivityPacketTracker in case some unexpected exception is thrown
while processing packets.
- Add Log.wtf logging in FdEventsReader in case any such exception is
missed.
Bug: 152842850
Test: atest NetworkStackTests
Original-Change: https://android-review.googlesource.com/1274609
Merged-In: Ia03fec358e98b3f218220e70fc3265e14ca15f78
Change-Id: Ia03fec358e98b3f218220e70fc3265e14ca15f78
|
|
|
|
The double transition problem might happen when interface is gone by
accident after starting DhcpClient. The StateMachine doesn’t allow
to call transitionTo() in enter().
Use deferMessage() instead to avoid this crash.
Bug: 145182281
Test: manual
Merged-In: I03c4161a01861b47cf878945f7f5cc77c821cd57
Change-Id: I03c4161a01861b47cf878945f7f5cc77c821cd57
|
|
Address issues found during AIDL review:
- Rename clientAddr to singleClientAddr
- Do not use a ParcelableBundle for notifyNetworkTested or
notifyDataStallSuspected; instead use AIDL parcelables for stronger
backwards compatibility guarantees.
As part of moving notifyNetworkTested to using a parcelable the test
result int is split into two: the actual evaluation result, and the
probesSucceeded int. It used to contain both as a bit mask, which does
not make sense if probesAttempted is in a separate int itself.
Test: atest NetworkMonitorTest ConnectivityServiceTest
ConnectivityServiceIntegrationTest, manual
Bug: 153500847
Merged-In: I4aac6ff7432472f8a9345fb5785c6314ec8946e4
Change-Id: I4aac6ff7432472f8a9345fb5785c6314ec8946e4
|
|
into rvc-dev
|
|
into rvc-dev
|
|
networks.
Bug: 131797393
Test: atest NetworkStackTests NetworkStackIntegrationTests
Test: atest FrameworksNetTests
Merged-In: I65ebdd142a2bb402035c63cd282bc2574ddf3d8d
Change-Id: I65ebdd142a2bb402035c63cd282bc2574ddf3d8d
|
|
When the DHCP client is given a new IPv4 address which is not its
previous network address to be extended durig RENEWING or REBINDING
state, should roll back to INIT state and restart DHCP configuration.
That's the intended behaviour with this fix (notify provisioning failure
and then exit from receivePacket() immediately, DO NOT accept this renew
lease).
Otherwise, the new given network address will be accepted and noitfy
IpClient to configure this new address on interface, which violates
RFC2131#4.4.5. The incorect call graph will be:
- receiving mismatched renew lease:
- setDhcpLeaseExpiry
- acceptDhcpResults
- notifySuccess
- transitionTo(mDhcpBoundState)
- keep using this new address
Bug: 131797393
Test: atest NetworkStackTests
Merged-In: I6fd37e6af1f6bf3a8ce8de7b9a1ef4731de5db27
Change-Id: I6fd37e6af1f6bf3a8ce8de7b9a1ef4731de5db27
|
|
A new boolean flag (changePrefixOnDecline) to be added in
the DhcpServingParamsParcel, indicating whether or not the DHCP
server should request a new prefix (e.g. a different subnet
prefix) from IpServer when receiving DHCPDECLINE message.
Bug: 130741856
Test: atest NetworkStackTests NetworkStackNextTests
Merged-In: I8cb0f844ef98a5f17d4e07e1812a1abf73aa4c07
Change-Id: I8cb0f844ef98a5f17d4e07e1812a1abf73aa4c07
|
|
If specific config "clientAddr" is set, the DHCP server will only offer
"clientAddr". This is for peer-to-peer use case. If there are multiple
clients for which "clientAddr" is already in use, dhcp server will not
offer other addresses to clients.
Bug: 141256482
Test: manual
atest NetworkStackNextTests
Merged-In: I96bc24a9c30bfc48dff38c3c4456085694fd381c
Change-Id: I96bc24a9c30bfc48dff38c3c4456085694fd381c
|
|
This change renames IDhcpLeaseCallbacks, easier to expand in the
future and adds a new method onNewPrefixRequest which will be called
on DHCP server receives DHCPDECLINE message and request a new IPv4
prefix from IpServer.
Bug: 130741856
Test: atest NetworkStackTests NetworkStackNextTests
Merged-In: Ia7b08bb1e7feda08ffe9fbb8885dbc8b7bdd66c9
Change-Id: Ia7b08bb1e7feda08ffe9fbb8885dbc8b7bdd66c9
|
|
This allows tests that emulate DHCP clients to include options.
The values are specified by the RFC and cannot change, so there
is no downside to making them public.
Test: builds
Bug: 150644681
Change-Id: I939bfac5ec14175b74ce3713f5af1362de577839
Merged-In: I939bfac5ec14175b74ce3713f5af1362de577839
(cherry picked from commit f75cd4768124c20c9eda14e21368f83c4963a260)
|
|
Requesting the captive portal option is flagged off by default.
The URL it provides will be used to support the captive portal API; see
RFC7710bis.
Bug: 139269711
Test: atest NetworkStackTests NetworkStackNextTests
Test: atest NetworkStackIntegrationTests NetworkStackNextIntegrationTests
Change-Id: I783466e0e60f364e79cd76af3fe43a7862d35cf2
|
|
Bug: 149458372
Test: new unit test
Test: tethering no longer crashes
Change-Id: Ic5f709c1ce50d3bb7af26a698dd32adb87012316
|
|
This reverts commit e8fff42022f8c22e84d51bc093189d469bdd9af1.
Bug: 135411507
Test: atest NetworkStackTests
Change-Id: I0609301d7b37309a35c764a7551b0ca93b3faeee
|
|
This reverts commit dc018dd943f0c11e0b9172dee0db0966871af20d.
Reason for revert: crashes tethering: b/149458372
Bug: 149458372
Change-Id: I1fad8528443d8cc133f719aad042cb22d3a8e2a0
|
|
The callbacks will be used by Tethering to provide callbacks when DHCP
leases are updated.
The current design only supports one client as Tethering may want to
send callbacks to multiple callers, but DhcpServer is only owned by
Tethering.
Bug: 135411507
Test: atest NetworkStackTests
Change-Id: I1e44221d6fbd1b1f2d0d0057a29c7445af1cdbcf
|
|
This patch fixes the bug introduced by aosp/1169224 which moves
notifySuccess function to DhcpBoundState#enter. This behavior
is correct for DHCP reacquiring process (e.g. when client renews
or rebinds the previous leased IPv4 address, then enters Bound
state after receiving DHCPACK packet). However, this is incorrect
for DHCP solicit at the first time, since notifying IpClient DHCP
success after configuring interface causes mDhcpResult member is
still empty when handleLinkPropertiesUpdate is triggered by netd
completes configuring interface with new IPv4 address. Hence, new
Link Properties passed to wifi state machine doesn't contain the
available DNS servers received from DHCPACK.
Moving notifySuccess before sending CMD_CONFIGURE_LINKADDRESS cmd
to IpClient ensures mDhcpResult member has been initialize correctly
before assembling new LinkProperties.
Bug:146850745
Test: atest NetworkStackIntegrationTests NetworkStackTests
Change-Id: Ifb990ccc06c1374e616f71038b1811640821e954
|
|
Exempt-From-Owner-Approval: cherry-pick from internal
Bug: 136065010
Test: m
Change-Id: Iaf682c850b7cf22980d6fb88d3d60e24c189b74c
Merged-In: Iaf682c850b7cf22980d6fb88d3d60e24c189b74c
|
|
Generally "ByteBuffer packet" has been allocated with a maximum
length of 1500. Calling packet.array() is to return a byte array
of length 1500 but the actual DHCPDISCOVER packet payload is much
less. Return actual DHCP packet byte array instead in this patch,
which allows caller use the payload byte array directly without
extra operation (e.g. calling packet.remaining() to get the correct
length of actual payload).
Bug: 140223017
Test: atest NetworkStackTests NetworkStackIntegrationTests
Change-Id: Ib08f2450fb649ea1ffcdbf8dedc829965f13da86
|
|
|
|
Add a configurable option in the RRO which controls whether or not to
send the hostname set in the Settings->About phone->Device name. The
option in RRO is false by default, that means DHCP Request still not
include any hostname by default. Once the option is overlaid and enabled,
the device name after transliteration will be wrote into hostname option.
Bug: 131783527
Test: atest NetworkStackTests NetworkStackIntegrationTests
Test: manual test, create empty APK to overlay the RRO configuration.
Change-Id: I9af0b0d9e7bb526d3a3c1003bb99d0a3d69b1e9e
|
|
Overload NetworkStackUtils.getDeviceConfigPropertyInt API to check if the
value of property read from DeviceConfig is valid, value in the range
of mininum and maximum would be acceptable, otherwise, return the default
value.
Bug: 128639898
Test: atest NetworkStackTests NetworkStackIntegrationTests
Change-Id: I07e3e9d1e1b7252d852d4665d2ea254f29a1c3eb
|
|
- receiving CMD_TIMEOUT before aborting FILS process.
- receiving CMD_TIMEOUT after aborting FILS process.
- receiving CMD_TIMEOUT before success FILS process.
- receiving CMD_TIMEOUT after success FILS process.
Bug: 140223017
Test: atest NetworkStackTests NetworkStackIntegrationTests
Change-Id: I519bf2fdda38cb9666f769868379a0c044356db0
|
|
Bug:136216415
Test: atest FrameworksNetTests NetworkStackTests
Test: atest NetworkStackIntegrationTests
Test: manual tethering
Change-Id: I0f9483c72374bab271eb18549a1a41812f32f2dd
|
|
Disable this behavior by default, we can enable it with flag rollout
later.
Bug: 128639898
Test: atest NetworkStackTests NetworkStackIntegrationTests
Test: manual test
Change-Id: Ie2133bc5faaba085147519cdb5c8277c563cfbd7
|
|
Bug: 140223017
Test: atest FrameworksNetTests NetworkStackTests
Test: atest NetworkStackIntegrationTests
Test: manual
Change-Id: Ibf200891c9742825a599a21b43f02927869f98ab
|
|
After introducing IP address conflict detection mechanism, we might get
an duplicated IP address though the DHCP handshake, it's not appropriate
to notify IpClient that DHCP success and configure interface with this IP
address immediately. However, Bound State ensures that we have already
done DAD (if enabled) and IP address has been configured on the interface.
More reasonable to notify IpClient DHCP success when entering Bound state.
This CL does not change the behaviour of a successful transaction.
The call graph is:
- notifySuccess
- acceptDhcpResults
- when receiving an ACK in DhcpReacquiringState
- next action: transition to DhcpBoundState
- called from confirmDhcpLease
- when receiving a rapid commit ACK in DhcpInitState
- next action: ConfiguringInterfaceState
- next action: configure link address, then transition to DhcpBoundState
- when receiving an ACK in DhcpRequestingState
- next action: ConfiguringInterfaceState
- next action: configure link address, then transition to DhcpBoundState
This CL does change the behaviour of failed transactions. For example,
if configuring the IP address or opening the UDP socket fails, after
this CL, the client will no longer notify success. This is more correct.
Bug: 130775067
Test: atest NetworkStackTests NetworkStackIntegrationTests
Change-Id: Ie3b5edd8ddf04aac258b97ecaa291fcb25611bbd
|
|
Fix sll_protocol in DhcpClient packet socket
The broadcast socket address was created with a deprecated API that does
not set sll_protocol. This causes packets to be filtered incorrectly in
packet capture, typically with tcpdump.
This change only affects device with API > Q, since Q does not have the
proper API to set the protocol.
Also includes fixing the build path that was referencing apishim/current
(which does not exist) instead of apishim/30 (the correct directory).
SocketUtilsShim can be used on the system_current target with that fix.
See change: I07887b82e0e32aadb0cbb9f930f2b2fa3e277ca9
Bug: 133196453
Test: manual; on AOSP with the new build, packet capture has the right
protocol. When installed on a Q release build, behavior is
unchanged.
This reverts commit 5ad0944d24e8dabc7fa56c3325e9200669889641.
Reason for revert:
Roll forward the previous change, as the build breakage has been
addressed. The stable build target is now used to build the
NetworkStack mainline module, which allows this change to be merged.
Change-Id: Ie933050ef269ce2159f3f44ac4db1f9aae134faf
|
|
This reverts commit 0c5e74000546a6c148e79985ee5fbf53dc454453.
Reason for revert: Broke build in qt-qpr1-dev-plus-aosp
Change-Id: I2e5738e776881f8c4f3cf459398a250560a43559
|
|
The broadcast socket address was created with a deprecated API that does
not set sll_protocol. This causes packets to be filtered incorrectly in
packet capture, typically with tcpdump.
This change only affects device with API > Q, since Q does not have the
proper API to set the protocol.
Also includes fixing the build path that was referencing apishim/current
(which does not exist) instead of apishim/30 (the correct directory).
SocketUtilsShim can be used on the system_current target with that fix.
See change: I07887b82e0e32aadb0cbb9f930f2b2fa3e277ca9
Bug: 133196453
Test: manual; on AOSP with the new build, packet capture has the right
protocol. When installed on a Q release build, behavior is
unchanged.
Change-Id: Iaafd0b3935473b1cfab61b49b2f107e71e01de2d
|
|
|
|
The purpose is to make subclass that only requires timeout method
could extend from TimeoutState instead of PacketRetransmittingState,
avoiding the anti-pattern of using inheritance for code reuse only.
After refactoring, class inheritance relationship looks like:
LoggingState <-- TimeoutState <-- PacketRetransmittingState <-- DhcpInitState
Bug: 140223017
Test: atest FrameworksNetTests NetworkStackTests
Test: atest NetworkStackIntegrationTests
Change-Id: I1fed3ff3ef8b0bdf3645188949e38c3a332f9d6e
|
|
NetworkStack uses hidden android.annotation.* annotations by pulling the
source files from frameworks/base. This should not be necessary, since
androidx annotations can be used instead.
Remove usage of such annotations and replace with androidx annotations.
Test: m NetworkStack NetworkStackApiStable
Test: builds, boots, WiFi working
Bug: 139105333
Change-Id: I24e147ac4f01feaf53424430b4825b316ec154fe
|
|
To implement the IP address conflict detection, we need another
ReceiveThread to listen ARP packets as well. Ideally, we should
listen both of DHCP packets and ARP packets in the same thread
with DhcpClient state machine handler.
This CL replaces the ReceiveThread with PacketReader to listen
DHCP packets. After refactoring, DHCP packets are read from the
same handler thread instead of a separate receiving thread. Then
we can also leverage the same handler thread to listen the ARP
packets simultaneously via another raw socket.
Bug: 130775067
Test: atest NetworkStackTests NetworkStackIntegrationTests
Change-Id: I23e91a6c2d99cf8053e62f2ae9d78481ece6384d
|
|
Since DeviceConfig is available in aosp, update the definition
reference from DeviceConfig instead of local definition.
Bug: 120013793
Test: atest NetworkStackTests
Change-Id: I3da82bd822ec340b98ad0b683478bd14ae94693c
|