Tell netd about local networks
This patch does the following : • When a network is local but the system doesn't support it, throw in registerNetworkAgent. • When a network is local, tell netd about it. • Add tests for the above, as well as a test for callbacks being sent correctly when the caps are set and not when they aren't and that the new keep connected flag is respected. Telling netd about the network being local has it add two routes that do not exist if the network is not local : • One at PRIORITY_LOCAL_NETWORK matching unmarked sockets and looking up the table for the interface. 20000: from all fwmark 0x0/0x10000 lookup xxxx • One at PRIORITY_EXPLICIT_NETWORK matching explicitly on network 99, so that dnsmasq traffic and any OEM traffic marked for network 99 flowing there. 16000: from all fwmark 0x10063/0x1ffff iif lo lookup xxxx IMPLICIT_NETWORK and EXPLICIT_NETWORK rules are installed by connectivity service as a matter of course whether the network is local or not. See commit If8729fc6f3716a580c936584b851bc38000b5de5 for implementation details of this mechanic. There is no need to implement anything in particular for the new connected reason, as the current implementation will already keep it connected. A new test makes sure of that. Test: FrameworksNetTests CtsNetTestCases FrameworksNetIntegrationTests NetworkStackTests NetworkStaticLibTests TetheringTests MtsTetheringTestLatestSdk TetheringIntegrationTests Change-Id: I6fb7dfe4c232eea8cac9ac268897ddb36bb794d1
Loading
Please register or sign in to comment