[9610][7885] wlbt :Android GO-Compilation error in HAL.
[GitHub/LineageOS/android_hardware_samsung_slsi_scsc_wifibt_wifi_hal.git] / wifi_offload.cpp
old mode 100755 (executable)
new mode 100644 (file)
index 8552959..9a16ab4
@@ -13,7 +13,7 @@
 #include <netlink/object-api.h>
 #include <netlink/netlink.h>
 #include <netlink/socket.h>
-#include <netlink-types.h>
+#include <netlink/types.h>
 
 #include "nl80211_copy.h"
 #include "sync.h"
 #include "common.h"
 #include "cpp_bindings.h"
 
-#ifndef SLSI_WLAN_UNIT_TEST
-using namespace android;
-#endif
-
 typedef enum {
     MKEEP_ALIVE_ATTRIBUTE_ID,
     MKEEP_ALIVE_ATTRIBUTE_IP_PKT,
@@ -68,7 +64,13 @@ public:
     // constructor for stop sending
     MKeepAliveCommand(wifi_interface_handle iface, u8 index, GetCmdType cmdType)
         : WifiCommand(iface, 0), mIndex(index), mType(cmdType)
-    { }
+    {
+        mIpPkt = NULL;
+        mIpPktLen = 0;
+        mSrcMacAddr = NULL;
+        mDstMacAddr = NULL;
+        mPeriodMsec = 0;
+    }
 
     int createRequest(WifiRequest &request) {
         int result;
@@ -168,7 +170,6 @@ public:
     }
 
     virtual int handleResponse(WifiEvent& reply) {
-        ALOGD("In MKeepAliveCommand::handleResponse");
 
         if (reply.get_cmd() != NL80211_CMD_VENDOR) {
             ALOGD("Ignoring reply with cmd = %d", reply.get_cmd());
@@ -192,17 +193,35 @@ public:
     }
 };
 
+
 /* API to send specified mkeep_alive packet periodically. */
 wifi_error wifi_start_sending_offloaded_packet(wifi_request_id index, wifi_interface_handle iface,
         u8 *ip_packet, u16 ip_packet_len, u8 *src_mac_addr, u8 *dst_mac_addr, u32 period_msec)
 {
-    ALOGE("Returning WIFI_ERROR_NOT_SUPPORTED, as NAT KeepAlive Feature is disabled as of now.");
-    return WIFI_ERROR_NOT_SUPPORTED;
+    if ((index > 0 && index <= N_AVAIL_ID) && (ip_packet != NULL) && (src_mac_addr != NULL)
+            && (dst_mac_addr != NULL) && (period_msec > 0)
+            && (ip_packet_len <= MKEEP_ALIVE_IP_PKT_MAX)) {
+        MKeepAliveCommand *cmd = new MKeepAliveCommand(iface, index, ip_packet, ip_packet_len,
+                src_mac_addr, dst_mac_addr, period_msec, START_MKEEP_ALIVE);
+        wifi_error result = (wifi_error)cmd->start();
+        delete cmd;
+        return result;
+    } else {
+        ALOGE("Invalid mkeep_alive parameters");
+        return  WIFI_ERROR_INVALID_ARGS;
+    }
 }
 
 /* API to stop sending mkeep_alive packet. */
 wifi_error wifi_stop_sending_offloaded_packet(wifi_request_id index, wifi_interface_handle iface)
 {
-    ALOGE("Returning WIFI_ERROR_NOT_SUPPORTED, as NAT KeepAlive Feature is disabled as of now.");
-    return WIFI_ERROR_NOT_SUPPORTED;
+    if (index > 0 && index <= N_AVAIL_ID) {
+        MKeepAliveCommand *cmd = new MKeepAliveCommand(iface, index, STOP_MKEEP_ALIVE);
+        wifi_error result = (wifi_error)cmd->start();
+        delete cmd;
+        return result;
+    } else {
+        ALOGE("Invalid mkeep_alive parameters");
+        return  WIFI_ERROR_INVALID_ARGS;
+    }
 }