1*8542734aSAndroid Build Coastguard Worker /** 2*8542734aSAndroid Build Coastguard Worker * Copyright (c) 2016, The Android Open Source Project 3*8542734aSAndroid Build Coastguard Worker * 4*8542734aSAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License"); 5*8542734aSAndroid Build Coastguard Worker * you may not use this file except in compliance with the License. 6*8542734aSAndroid Build Coastguard Worker * You may obtain a copy of the License at 7*8542734aSAndroid Build Coastguard Worker * 8*8542734aSAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0 9*8542734aSAndroid Build Coastguard Worker * 10*8542734aSAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software 11*8542734aSAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS, 12*8542734aSAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*8542734aSAndroid Build Coastguard Worker * See the License for the specific language governing permissions and 14*8542734aSAndroid Build Coastguard Worker * limitations under the License. 15*8542734aSAndroid Build Coastguard Worker */ 16*8542734aSAndroid Build Coastguard Worker 17*8542734aSAndroid Build Coastguard Worker #ifndef _NETD_NATIVE_SERVICE_H_ 18*8542734aSAndroid Build Coastguard Worker #define _NETD_NATIVE_SERVICE_H_ 19*8542734aSAndroid Build Coastguard Worker 20*8542734aSAndroid Build Coastguard Worker #include <vector> 21*8542734aSAndroid Build Coastguard Worker 22*8542734aSAndroid Build Coastguard Worker #include <binder/BinderService.h> 23*8542734aSAndroid Build Coastguard Worker #include <netdutils/Log.h> 24*8542734aSAndroid Build Coastguard Worker 25*8542734aSAndroid Build Coastguard Worker #include "android/net/BnNetd.h" 26*8542734aSAndroid Build Coastguard Worker 27*8542734aSAndroid Build Coastguard Worker namespace android { 28*8542734aSAndroid Build Coastguard Worker namespace net { 29*8542734aSAndroid Build Coastguard Worker 30*8542734aSAndroid Build Coastguard Worker class NetdNativeService : public BinderService<NetdNativeService>, public BnNetd { 31*8542734aSAndroid Build Coastguard Worker public: 32*8542734aSAndroid Build Coastguard Worker NetdNativeService(); 33*8542734aSAndroid Build Coastguard Worker static status_t start(); getServiceName()34*8542734aSAndroid Build Coastguard Worker static char const* getServiceName() { return "netd"; } 35*8542734aSAndroid Build Coastguard Worker virtual status_t dump(int fd, const Vector<String16> &args) override; 36*8542734aSAndroid Build Coastguard Worker 37*8542734aSAndroid Build Coastguard Worker binder::Status isAlive(bool *alive) override; 38*8542734aSAndroid Build Coastguard Worker 39*8542734aSAndroid Build Coastguard Worker // Firewall commands. 40*8542734aSAndroid Build Coastguard Worker binder::Status firewallReplaceUidChain(const std::string& chainName, bool isAllowlist, 41*8542734aSAndroid Build Coastguard Worker const std::vector<int32_t>& uids, bool* ret) override; 42*8542734aSAndroid Build Coastguard Worker binder::Status firewallSetFirewallType(int32_t firewallType) override; 43*8542734aSAndroid Build Coastguard Worker binder::Status firewallSetInterfaceRule(const std::string& ifName, 44*8542734aSAndroid Build Coastguard Worker int32_t firewallRule) override; 45*8542734aSAndroid Build Coastguard Worker binder::Status firewallSetUidRule(int32_t childChain, int32_t uid, 46*8542734aSAndroid Build Coastguard Worker int32_t firewallRule) override; 47*8542734aSAndroid Build Coastguard Worker binder::Status firewallEnableChildChain(int32_t childChain, bool enable) override; 48*8542734aSAndroid Build Coastguard Worker binder::Status firewallAddUidInterfaceRules(const std::string& ifName, 49*8542734aSAndroid Build Coastguard Worker const std::vector<int32_t>& uids) override; 50*8542734aSAndroid Build Coastguard Worker binder::Status firewallRemoveUidInterfaceRules(const std::vector<int32_t>& uids) override; 51*8542734aSAndroid Build Coastguard Worker 52*8542734aSAndroid Build Coastguard Worker // Bandwidth control commands. 53*8542734aSAndroid Build Coastguard Worker binder::Status bandwidthEnableDataSaver(bool enable, bool *ret) override; 54*8542734aSAndroid Build Coastguard Worker binder::Status bandwidthSetInterfaceQuota(const std::string& ifName, int64_t bytes) override; 55*8542734aSAndroid Build Coastguard Worker binder::Status bandwidthRemoveInterfaceQuota(const std::string& ifName) override; 56*8542734aSAndroid Build Coastguard Worker binder::Status bandwidthSetInterfaceAlert(const std::string& ifName, int64_t bytes) override; 57*8542734aSAndroid Build Coastguard Worker binder::Status bandwidthRemoveInterfaceAlert(const std::string& ifName) override; 58*8542734aSAndroid Build Coastguard Worker binder::Status bandwidthSetGlobalAlert(int64_t bytes) override; 59*8542734aSAndroid Build Coastguard Worker binder::Status bandwidthAddNaughtyApp(int32_t uid) override; 60*8542734aSAndroid Build Coastguard Worker binder::Status bandwidthRemoveNaughtyApp(int32_t uid) override; 61*8542734aSAndroid Build Coastguard Worker binder::Status bandwidthAddNiceApp(int32_t uid) override; 62*8542734aSAndroid Build Coastguard Worker binder::Status bandwidthRemoveNiceApp(int32_t uid) override; 63*8542734aSAndroid Build Coastguard Worker 64*8542734aSAndroid Build Coastguard Worker // Network and routing commands. 65*8542734aSAndroid Build Coastguard Worker binder::Status networkCreatePhysical(int32_t netId, int32_t permission) override; 66*8542734aSAndroid Build Coastguard Worker binder::Status networkCreateVpn(int32_t netId, bool secure) override; 67*8542734aSAndroid Build Coastguard Worker binder::Status networkCreate(const NativeNetworkConfig& config) override; 68*8542734aSAndroid Build Coastguard Worker binder::Status networkDestroy(int32_t netId) override; 69*8542734aSAndroid Build Coastguard Worker 70*8542734aSAndroid Build Coastguard Worker binder::Status networkAddInterface(int32_t netId, const std::string& iface) override; 71*8542734aSAndroid Build Coastguard Worker binder::Status networkRemoveInterface(int32_t netId, const std::string& iface) override; 72*8542734aSAndroid Build Coastguard Worker 73*8542734aSAndroid Build Coastguard Worker binder::Status networkAddUidRanges(int32_t netId, 74*8542734aSAndroid Build Coastguard Worker const std::vector<UidRangeParcel>& uids) override; 75*8542734aSAndroid Build Coastguard Worker binder::Status networkRemoveUidRanges(int32_t netId, 76*8542734aSAndroid Build Coastguard Worker const std::vector<UidRangeParcel>& uids) override; 77*8542734aSAndroid Build Coastguard Worker binder::Status networkAddUidRangesParcel( 78*8542734aSAndroid Build Coastguard Worker const netd::aidl::NativeUidRangeConfig& uidRangesConfig) override; 79*8542734aSAndroid Build Coastguard Worker binder::Status networkRemoveUidRangesParcel( 80*8542734aSAndroid Build Coastguard Worker const netd::aidl::NativeUidRangeConfig& uidRangesConfig) override; 81*8542734aSAndroid Build Coastguard Worker binder::Status networkRejectNonSecureVpn(bool enable, 82*8542734aSAndroid Build Coastguard Worker const std::vector<UidRangeParcel>& uids) override; 83*8542734aSAndroid Build Coastguard Worker binder::Status networkAddRouteParcel(int32_t netId, const RouteInfoParcel& route) override; 84*8542734aSAndroid Build Coastguard Worker binder::Status networkUpdateRouteParcel(int32_t netId, const RouteInfoParcel& route) override; 85*8542734aSAndroid Build Coastguard Worker binder::Status networkRemoveRouteParcel(int32_t netId, const RouteInfoParcel& route) override; 86*8542734aSAndroid Build Coastguard Worker binder::Status networkAddRoute(int32_t netId, const std::string& ifName, 87*8542734aSAndroid Build Coastguard Worker const std::string& destination, 88*8542734aSAndroid Build Coastguard Worker const std::string& nextHop) override; 89*8542734aSAndroid Build Coastguard Worker binder::Status networkRemoveRoute(int32_t netId, const std::string& ifName, 90*8542734aSAndroid Build Coastguard Worker const std::string& destination, 91*8542734aSAndroid Build Coastguard Worker const std::string& nextHop) override; 92*8542734aSAndroid Build Coastguard Worker binder::Status networkAddLegacyRoute(int32_t netId, const std::string& ifName, 93*8542734aSAndroid Build Coastguard Worker const std::string& destination, const std::string& nextHop, 94*8542734aSAndroid Build Coastguard Worker int32_t uid) override; 95*8542734aSAndroid Build Coastguard Worker binder::Status networkRemoveLegacyRoute(int32_t netId, const std::string& ifName, 96*8542734aSAndroid Build Coastguard Worker const std::string& destination, 97*8542734aSAndroid Build Coastguard Worker const std::string& nextHop, int32_t uid) override; 98*8542734aSAndroid Build Coastguard Worker binder::Status networkSetDefault(int32_t netId) override; 99*8542734aSAndroid Build Coastguard Worker binder::Status networkClearDefault() override; 100*8542734aSAndroid Build Coastguard Worker binder::Status networkSetPermissionForNetwork(int32_t netId, int32_t permission) override; 101*8542734aSAndroid Build Coastguard Worker binder::Status networkSetPermissionForUser(int32_t permission, 102*8542734aSAndroid Build Coastguard Worker const std::vector<int32_t>& uids) override; 103*8542734aSAndroid Build Coastguard Worker binder::Status networkClearPermissionForUser(const std::vector<int32_t>& uids) override; 104*8542734aSAndroid Build Coastguard Worker binder::Status networkSetProtectAllow(int32_t uid) override; 105*8542734aSAndroid Build Coastguard Worker binder::Status networkSetProtectDeny(int32_t uid) override; 106*8542734aSAndroid Build Coastguard Worker binder::Status networkAllowBypassVpnOnNetwork(bool allow, int32_t uid, int32_t netId) override; 107*8542734aSAndroid Build Coastguard Worker // For test (internal use only). 108*8542734aSAndroid Build Coastguard Worker binder::Status networkGetDefault(int32_t* netId) override; 109*8542734aSAndroid Build Coastguard Worker binder::Status networkCanProtect(int32_t uid, bool* ret) override; 110*8542734aSAndroid Build Coastguard Worker 111*8542734aSAndroid Build Coastguard Worker binder::Status trafficSetNetPermForUids(int32_t permission, 112*8542734aSAndroid Build Coastguard Worker const std::vector<int32_t>& uids) override; 113*8542734aSAndroid Build Coastguard Worker 114*8542734aSAndroid Build Coastguard Worker // SOCK_DIAG commands. 115*8542734aSAndroid Build Coastguard Worker binder::Status socketDestroy(const std::vector<UidRangeParcel>& uids, 116*8542734aSAndroid Build Coastguard Worker const std::vector<int32_t>& skipUids) override; 117*8542734aSAndroid Build Coastguard Worker 118*8542734aSAndroid Build Coastguard Worker binder::Status setIPv6AddrGenMode(const std::string& ifName, int32_t mode) override; 119*8542734aSAndroid Build Coastguard Worker 120*8542734aSAndroid Build Coastguard Worker // NFLOG-related commands 121*8542734aSAndroid Build Coastguard Worker binder::Status wakeupAddInterface(const std::string& ifName, const std::string& prefix, 122*8542734aSAndroid Build Coastguard Worker int32_t mark, int32_t mask) override; 123*8542734aSAndroid Build Coastguard Worker 124*8542734aSAndroid Build Coastguard Worker binder::Status wakeupDelInterface(const std::string& ifName, const std::string& prefix, 125*8542734aSAndroid Build Coastguard Worker int32_t mark, int32_t mask) override; 126*8542734aSAndroid Build Coastguard Worker 127*8542734aSAndroid Build Coastguard Worker // Tethering-related commands. 128*8542734aSAndroid Build Coastguard Worker binder::Status tetherApplyDnsInterfaces(bool *ret) override; 129*8542734aSAndroid Build Coastguard Worker binder::Status tetherGetStats( 130*8542734aSAndroid Build Coastguard Worker std::vector<android::net::TetherStatsParcel>* tetherStatsVec) override; 131*8542734aSAndroid Build Coastguard Worker binder::Status tetherOffloadGetStats( 132*8542734aSAndroid Build Coastguard Worker std::vector<android::net::TetherStatsParcel>* tetherStatsVec) override; 133*8542734aSAndroid Build Coastguard Worker binder::Status tetherStart(const std::vector<std::string>& dhcpRanges) override; 134*8542734aSAndroid Build Coastguard Worker binder::Status tetherStartWithConfiguration(const TetherConfigParcel& config) override; 135*8542734aSAndroid Build Coastguard Worker binder::Status tetherStop() override; 136*8542734aSAndroid Build Coastguard Worker binder::Status tetherIsEnabled(bool* enabled) override; 137*8542734aSAndroid Build Coastguard Worker binder::Status tetherInterfaceAdd(const std::string& ifName) override; 138*8542734aSAndroid Build Coastguard Worker binder::Status tetherInterfaceRemove(const std::string& ifName) override; 139*8542734aSAndroid Build Coastguard Worker binder::Status tetherInterfaceList(std::vector<std::string>* ifList) override; 140*8542734aSAndroid Build Coastguard Worker binder::Status tetherDnsSet(int32_t netId, const std::vector<std::string>& dnsAddrs) override; 141*8542734aSAndroid Build Coastguard Worker binder::Status tetherDnsList(std::vector<std::string>* dnsList) override; 142*8542734aSAndroid Build Coastguard Worker binder::Status tetherAddForward(const std::string& intIface, 143*8542734aSAndroid Build Coastguard Worker const std::string& extIface) override; 144*8542734aSAndroid Build Coastguard Worker binder::Status tetherRemoveForward(const std::string& intIface, 145*8542734aSAndroid Build Coastguard Worker const std::string& extIface) override; 146*8542734aSAndroid Build Coastguard Worker binder::Status tetherOffloadRuleAdd(const android::net::TetherOffloadRuleParcel& rule) override; 147*8542734aSAndroid Build Coastguard Worker binder::Status tetherOffloadRuleRemove( 148*8542734aSAndroid Build Coastguard Worker const android::net::TetherOffloadRuleParcel& rule) override; 149*8542734aSAndroid Build Coastguard Worker binder::Status tetherOffloadSetInterfaceQuota(int ifIndex, int64_t quotaBytes) override; 150*8542734aSAndroid Build Coastguard Worker binder::Status tetherOffloadGetAndClearStats( 151*8542734aSAndroid Build Coastguard Worker int ifIndex, android::net::TetherStatsParcel* tetherStats) override; 152*8542734aSAndroid Build Coastguard Worker 153*8542734aSAndroid Build Coastguard Worker // Interface-related commands. 154*8542734aSAndroid Build Coastguard Worker binder::Status interfaceAddAddress(const std::string &ifName, 155*8542734aSAndroid Build Coastguard Worker const std::string &addrString, int prefixLength) override; 156*8542734aSAndroid Build Coastguard Worker binder::Status interfaceDelAddress(const std::string &ifName, 157*8542734aSAndroid Build Coastguard Worker const std::string &addrString, int prefixLength) override; 158*8542734aSAndroid Build Coastguard Worker binder::Status interfaceGetList(std::vector<std::string>* interfaceListResult) override; 159*8542734aSAndroid Build Coastguard Worker binder::Status interfaceGetCfg(const std::string& ifName, 160*8542734aSAndroid Build Coastguard Worker InterfaceConfigurationParcel* interfaceGetCfgResult) override; 161*8542734aSAndroid Build Coastguard Worker binder::Status interfaceSetCfg(const InterfaceConfigurationParcel& cfg) override; 162*8542734aSAndroid Build Coastguard Worker binder::Status interfaceSetIPv6PrivacyExtensions(const std::string& ifName, 163*8542734aSAndroid Build Coastguard Worker bool enable) override; 164*8542734aSAndroid Build Coastguard Worker binder::Status interfaceClearAddrs(const std::string& ifName) override; 165*8542734aSAndroid Build Coastguard Worker binder::Status interfaceSetEnableIPv6(const std::string& ifName, bool enable) override; 166*8542734aSAndroid Build Coastguard Worker binder::Status interfaceSetMtu(const std::string& ifName, int32_t mtuValue) override; 167*8542734aSAndroid Build Coastguard Worker 168*8542734aSAndroid Build Coastguard Worker binder::Status getProcSysNet(int32_t ipversion, int32_t which, const std::string& ifname, 169*8542734aSAndroid Build Coastguard Worker const std::string& parameter, std::string* value) override; 170*8542734aSAndroid Build Coastguard Worker binder::Status setProcSysNet(int32_t ipversion, int32_t which, const std::string& ifname, 171*8542734aSAndroid Build Coastguard Worker const std::string& parameter, const std::string& value) override; 172*8542734aSAndroid Build Coastguard Worker 173*8542734aSAndroid Build Coastguard Worker binder::Status ipSecSetEncapSocketOwner(const os::ParcelFileDescriptor& socket, int newUid); 174*8542734aSAndroid Build Coastguard Worker 175*8542734aSAndroid Build Coastguard Worker binder::Status ipSecAllocateSpi( 176*8542734aSAndroid Build Coastguard Worker int32_t transformId, 177*8542734aSAndroid Build Coastguard Worker const std::string& localAddress, 178*8542734aSAndroid Build Coastguard Worker const std::string& remoteAddress, 179*8542734aSAndroid Build Coastguard Worker int32_t inSpi, 180*8542734aSAndroid Build Coastguard Worker int32_t* outSpi); 181*8542734aSAndroid Build Coastguard Worker 182*8542734aSAndroid Build Coastguard Worker binder::Status ipSecAddSecurityAssociation( 183*8542734aSAndroid Build Coastguard Worker int32_t transformId, int32_t mode, const std::string& sourceAddress, 184*8542734aSAndroid Build Coastguard Worker const std::string& destinationAddress, int32_t underlyingNetId, int32_t spi, 185*8542734aSAndroid Build Coastguard Worker int32_t markValue, int32_t markMask, const std::string& authAlgo, 186*8542734aSAndroid Build Coastguard Worker const std::vector<uint8_t>& authKey, int32_t authTruncBits, 187*8542734aSAndroid Build Coastguard Worker const std::string& cryptAlgo, const std::vector<uint8_t>& cryptKey, 188*8542734aSAndroid Build Coastguard Worker int32_t cryptTruncBits, const std::string& aeadAlgo, 189*8542734aSAndroid Build Coastguard Worker const std::vector<uint8_t>& aeadKey, int32_t aeadIcvBits, int32_t encapType, 190*8542734aSAndroid Build Coastguard Worker int32_t encapLocalPort, int32_t encapRemotePort, int32_t interfaceId); 191*8542734aSAndroid Build Coastguard Worker 192*8542734aSAndroid Build Coastguard Worker binder::Status ipSecDeleteSecurityAssociation(int32_t transformId, 193*8542734aSAndroid Build Coastguard Worker const std::string& sourceAddress, 194*8542734aSAndroid Build Coastguard Worker const std::string& destinationAddress, 195*8542734aSAndroid Build Coastguard Worker int32_t spi, int32_t markValue, int32_t markMask, 196*8542734aSAndroid Build Coastguard Worker int32_t interfaceId); 197*8542734aSAndroid Build Coastguard Worker 198*8542734aSAndroid Build Coastguard Worker binder::Status ipSecApplyTransportModeTransform(const os::ParcelFileDescriptor& socket, 199*8542734aSAndroid Build Coastguard Worker int32_t transformId, int32_t direction, 200*8542734aSAndroid Build Coastguard Worker const std::string& sourceAddress, 201*8542734aSAndroid Build Coastguard Worker const std::string& destinationAddress, 202*8542734aSAndroid Build Coastguard Worker int32_t spi); 203*8542734aSAndroid Build Coastguard Worker 204*8542734aSAndroid Build Coastguard Worker binder::Status ipSecRemoveTransportModeTransform(const os::ParcelFileDescriptor& socket); 205*8542734aSAndroid Build Coastguard Worker 206*8542734aSAndroid Build Coastguard Worker binder::Status ipSecAddSecurityPolicy(int32_t transformId, int32_t selAddrFamily, 207*8542734aSAndroid Build Coastguard Worker int32_t direction, const std::string& tmplSrcAddress, 208*8542734aSAndroid Build Coastguard Worker const std::string& tmplDstAddress, int32_t spi, 209*8542734aSAndroid Build Coastguard Worker int32_t markValue, int32_t markMask, int32_t interfaceId); 210*8542734aSAndroid Build Coastguard Worker 211*8542734aSAndroid Build Coastguard Worker binder::Status ipSecUpdateSecurityPolicy(int32_t transformId, int32_t selAddrFamily, 212*8542734aSAndroid Build Coastguard Worker int32_t direction, const std::string& tmplSrcAddress, 213*8542734aSAndroid Build Coastguard Worker const std::string& tmplDstAddress, int32_t spi, 214*8542734aSAndroid Build Coastguard Worker int32_t markValue, int32_t markMask, 215*8542734aSAndroid Build Coastguard Worker int32_t interfaceId); 216*8542734aSAndroid Build Coastguard Worker 217*8542734aSAndroid Build Coastguard Worker binder::Status ipSecDeleteSecurityPolicy(int32_t transformId, int32_t selAddrFamily, 218*8542734aSAndroid Build Coastguard Worker int32_t direction, int32_t markValue, int32_t markMask, 219*8542734aSAndroid Build Coastguard Worker int32_t interfaceId); 220*8542734aSAndroid Build Coastguard Worker 221*8542734aSAndroid Build Coastguard Worker binder::Status trafficSwapActiveStatsMap() override; 222*8542734aSAndroid Build Coastguard Worker 223*8542734aSAndroid Build Coastguard Worker binder::Status ipSecAddTunnelInterface(const std::string& deviceName, 224*8542734aSAndroid Build Coastguard Worker const std::string& localAddress, 225*8542734aSAndroid Build Coastguard Worker const std::string& remoteAddress, int32_t iKey, 226*8542734aSAndroid Build Coastguard Worker int32_t oKey, int32_t interfaceId); 227*8542734aSAndroid Build Coastguard Worker 228*8542734aSAndroid Build Coastguard Worker binder::Status ipSecUpdateTunnelInterface(const std::string& deviceName, 229*8542734aSAndroid Build Coastguard Worker const std::string& localAddress, 230*8542734aSAndroid Build Coastguard Worker const std::string& remoteAddress, int32_t iKey, 231*8542734aSAndroid Build Coastguard Worker int32_t oKey, int32_t interfaceId); 232*8542734aSAndroid Build Coastguard Worker 233*8542734aSAndroid Build Coastguard Worker binder::Status ipSecRemoveTunnelInterface(const std::string& deviceName); 234*8542734aSAndroid Build Coastguard Worker 235*8542734aSAndroid Build Coastguard Worker binder::Status ipSecMigrate(const IpSecMigrateInfoParcel& migrateInfo); 236*8542734aSAndroid Build Coastguard Worker 237*8542734aSAndroid Build Coastguard Worker // Idletimer-related commands 238*8542734aSAndroid Build Coastguard Worker binder::Status idletimerAddInterface(const std::string& ifName, int32_t timeout, 239*8542734aSAndroid Build Coastguard Worker const std::string& classLabel) override; 240*8542734aSAndroid Build Coastguard Worker binder::Status idletimerRemoveInterface(const std::string& ifName, int32_t timeout, 241*8542734aSAndroid Build Coastguard Worker const std::string& classLabel) override; 242*8542734aSAndroid Build Coastguard Worker 243*8542734aSAndroid Build Coastguard Worker // Strict-related commands 244*8542734aSAndroid Build Coastguard Worker binder::Status strictUidCleartextPenalty(int32_t uid, int32_t policyPenalty) override; 245*8542734aSAndroid Build Coastguard Worker 246*8542734aSAndroid Build Coastguard Worker // Clatd-related commands 247*8542734aSAndroid Build Coastguard Worker binder::Status clatdStart(const std::string& ifName, const std::string& nat64Prefix, 248*8542734aSAndroid Build Coastguard Worker std::string* v6Address) override; 249*8542734aSAndroid Build Coastguard Worker binder::Status clatdStop(const std::string& ifName) override; 250*8542734aSAndroid Build Coastguard Worker 251*8542734aSAndroid Build Coastguard Worker // Ipfw-related commands 252*8542734aSAndroid Build Coastguard Worker binder::Status ipfwdEnabled(bool* status) override; 253*8542734aSAndroid Build Coastguard Worker binder::Status ipfwdGetRequesterList(std::vector<std::string>* requesterList) override; 254*8542734aSAndroid Build Coastguard Worker binder::Status ipfwdEnableForwarding(const std::string& requester) override; 255*8542734aSAndroid Build Coastguard Worker binder::Status ipfwdDisableForwarding(const std::string& requester) override; 256*8542734aSAndroid Build Coastguard Worker binder::Status ipfwdAddInterfaceForward(const std::string& fromIface, 257*8542734aSAndroid Build Coastguard Worker const std::string& toIface) override; 258*8542734aSAndroid Build Coastguard Worker binder::Status ipfwdRemoveInterfaceForward(const std::string& fromIface, 259*8542734aSAndroid Build Coastguard Worker const std::string& toIface) override; 260*8542734aSAndroid Build Coastguard Worker 261*8542734aSAndroid Build Coastguard Worker // tcp_mem-config command 262*8542734aSAndroid Build Coastguard Worker binder::Status setTcpRWmemorySize(const std::string& rmemValues, 263*8542734aSAndroid Build Coastguard Worker const std::string& wmemValues) override; 264*8542734aSAndroid Build Coastguard Worker 265*8542734aSAndroid Build Coastguard Worker binder::Status registerUnsolicitedEventListener( 266*8542734aSAndroid Build Coastguard Worker const android::sp<android::net::INetdUnsolicitedEventListener>& listener) override; 267*8542734aSAndroid Build Coastguard Worker 268*8542734aSAndroid Build Coastguard Worker binder::Status getOemNetd(android::sp<android::IBinder>* listener) override; 269*8542734aSAndroid Build Coastguard Worker binder::Status getFwmarkForNetwork(int32_t netId, MarkMaskParcel* markmask); 270*8542734aSAndroid Build Coastguard Worker binder::Status setNetworkAllowlist( 271*8542734aSAndroid Build Coastguard Worker const std::vector<netd::aidl::NativeUidRangeConfig>& rangeConfigs) override; 272*8542734aSAndroid Build Coastguard Worker 273*8542734aSAndroid Build Coastguard Worker private: 274*8542734aSAndroid Build Coastguard Worker std::vector<uid_t> intsToUids(const std::vector<int32_t>& intUids); 275*8542734aSAndroid Build Coastguard Worker Permission convertPermission(int32_t permission); 276*8542734aSAndroid Build Coastguard Worker static FirewallRule parseRule(int32_t firewallRule); 277*8542734aSAndroid Build Coastguard Worker static ChildChain parseChildChain(int32_t childChain); 278*8542734aSAndroid Build Coastguard Worker }; 279*8542734aSAndroid Build Coastguard Worker 280*8542734aSAndroid Build Coastguard Worker } // namespace net 281*8542734aSAndroid Build Coastguard Worker } // namespace android 282*8542734aSAndroid Build Coastguard Worker 283*8542734aSAndroid Build Coastguard Worker #endif // _NETD_NATIVE_SERVICE_H_ 284