Interface-related commands porting
Test: built, flashed, booted
system/netd/tests/runtests.sh passes
Change-Id: Ief3b2a0a55b74db0a794f3f9ca58298a2fcb57dd
diff --git a/server/InterfaceController.h b/server/InterfaceController.h
index 96b955a..e21c75d 100644
--- a/server/InterfaceController.h
+++ b/server/InterfaceController.h
@@ -21,6 +21,7 @@
#include <map>
#include <string>
+#include <android/net/InterfaceConfigurationParcel.h>
#include <netdutils/Status.h>
#include <netdutils/StatusOr.h>
@@ -33,53 +34,56 @@
public:
static void initializeAll();
- static int setEnableIPv6(const char *interface, const int on);
- static android::netdutils::Status setIPv6AddrGenMode(const std::string& interface, int mode);
- static int setAcceptIPv6Ra(const char *interface, const int on);
- static int setAcceptIPv6Dad(const char *interface, const int on);
- static int setIPv6DadTransmits(const char *interface, const char *value);
- static int setIPv6PrivacyExtensions(const char *interface, const int on);
- static int setMtu(const char *interface, const char *mtu);
- static int addAddress(const char *interface, const char *addrString, int prefixLength);
- static int delAddress(const char *interface, const char *addrString, int prefixLength);
+ static int setEnableIPv6(const char* ifName, const int on);
+ static android::netdutils::Status setIPv6AddrGenMode(const std::string& ifName, int mode);
+ static int setAcceptIPv6Ra(const char* ifName, const int on);
+ static int setAcceptIPv6Dad(const char* ifName, const int on);
+ static int setIPv6DadTransmits(const char* ifName, const char* value);
+ static int setIPv6PrivacyExtensions(const char* ifName, const int on);
+ static int setMtu(const char* ifName, const char* mtu);
+ static int addAddress(const char* ifName, const char* addrString, int prefixLength);
+ static int delAddress(const char* ifName, const char* addrString, int prefixLength);
static int disableIcmpRedirects();
+ static android::netdutils::Status setCfg(const InterfaceConfigurationParcel& cfg);
+ static android::netdutils::StatusOr<InterfaceConfigurationParcel> getCfg(
+ const std::string& ifName);
+ static int clearAddrs(const std::string& ifName);
// Read and write values in files of the form:
- // /proc/sys/net/<family>/<which>/<interface>/<parameter>
+ // /proc/sys/net/<family>/<which>/<ifName>/<parameter>
//
// NOTE: getParameter() trims whitespace so the caller does not need extra
// code to crop trailing newlines, for example.
- static int getParameter(
- const char *family, const char *which, const char *interface, const char *parameter,
- std::string *value);
- static int setParameter(
- const char *family, const char *which, const char *interface, const char *parameter,
- const char *value);
+ static int getParameter(const char* family, const char* which, const char* ifName,
+ const char* parameter, std::string* value);
+ static int setParameter(const char* family, const char* which, const char* ifName,
+ const char* parameter, const char* value);
static android::netdutils::StatusOr<std::vector<std::string>> getIfaceNames();
static android::netdutils::StatusOr<std::map<std::string, uint32_t>> getIfaceList();
-private:
- friend class android::net::StablePrivacyTest;
+ static std::mutex mutex;
- using GetPropertyFn =
- std::function<std::string(const std::string& key, const std::string& dflt)>;
- using SetPropertyFn =
- std::function<android::netdutils::Status(const std::string& key, const std::string& val)>;
+ private:
+ friend class android::net::StablePrivacyTest;
- // Helper function exported from this compilation unit for testing.
- static android::netdutils::Status enableStablePrivacyAddresses(
- const std::string& iface,
- const GetPropertyFn& getProperty,
- const SetPropertyFn& setProperty);
+ using GetPropertyFn =
+ std::function<std::string(const std::string& key, const std::string& dflt)>;
+ using SetPropertyFn = std::function<android::netdutils::Status(const std::string& key,
+ const std::string& val)>;
- static void setAcceptRA(const char* value);
- static void setAcceptRARouteTable(int tableOrOffset);
- static void setBaseReachableTimeMs(unsigned int millis);
- static void setIPv6OptimisticMode(const char* value);
+ // Helper function exported from this compilation unit for testing.
+ static android::netdutils::Status enableStablePrivacyAddresses(
+ const std::string& ifName, const GetPropertyFn& getProperty,
+ const SetPropertyFn& setProperty);
- InterfaceController() = delete;
- ~InterfaceController() = delete;
+ static void setAcceptRA(const char* value);
+ static void setAcceptRARouteTable(int tableOrOffset);
+ static void setBaseReachableTimeMs(unsigned int millis);
+ static void setIPv6OptimisticMode(const char* value);
+
+ InterfaceController() = delete;
+ ~InterfaceController() = delete;
};
} // namespace net