[rdk-b][mt7986][wifi-hal][Refactor SSIDTrafficStats2]

[Description]
Refactor wifi hal SSIDTrafficStats2 function.
1. Fix missing escape character.
2. Add command to fill other fields.

[Release-log]
N/A

diff --git a/recipes-ccsp/hal/hal-wifi-patches/0032-HAL-refactor-SSIDTrafficStats2-function.patch b/recipes-ccsp/hal/hal-wifi-patches/0032-HAL-refactor-SSIDTrafficStats2-function.patch
new file mode 100644
index 0000000..ae6f734
--- /dev/null
+++ b/recipes-ccsp/hal/hal-wifi-patches/0032-HAL-refactor-SSIDTrafficStats2-function.patch
@@ -0,0 +1,111 @@
+From 04376f0cc22533f9d2cf635bcb3bb9d564d5a3b5 Mon Sep 17 00:00:00 2001
+From: "Allen.Ye" <allen.ye@mediatek.com>
+Date: Fri, 29 Jul 2022 10:11:31 +0800
+Subject: [PATCH] HAL: refactor SSIDTrafficStats2 function
+
+---
+ source/wifi/wifi_hal.c | 69 ++++++++++++++++++++++++++++++++++--------
+ 1 file changed, 56 insertions(+), 13 deletions(-)
+
+diff --git a/source/wifi/wifi_hal.c b/source/wifi/wifi_hal.c
+index 0e047fc..556c73f 100644
+--- a/source/wifi/wifi_hal.c
++++ b/source/wifi/wifi_hal.c
+@@ -7450,38 +7450,81 @@ INT wifi_getSSIDTrafficStats2(INT ssidIndex,wifi_ssidTrafficStats2_t *output_str
+ 
+     sprintf(HConf_file,"%s%d%s","/nvram/hostapd",ssidIndex,".conf");
+     GetInterfaceName(interface_name,HConf_file);
+-    sprintf(pipeCmd,"%s%s%s","cat /proc/net/dev | grep ",interface_name," |  tr -s ' '  | cut -d  ' ' -f11 | tr -d '\n'");
++    sprintf(pipeCmd,"%s%s%s","cat /proc/net/dev | grep ",interface_name," |  tr -s ' '  | cut -d  ' ' -f11 | tr -d '\\n'");
+     fp = popen(pipeCmd, "r");
+     fgets(str, MAX_BUF_SIZE,fp);
+     out->ssid_BytesSent = atol(str);
+     pclose(fp);
+ 
+-    sprintf(pipeCmd,"%s%s%s","cat /proc/net/dev | grep ",interface_name," |  tr -s ' '  | cut -d  ' ' -f3 | tr -d '\n'");
++    sprintf(pipeCmd,"%s%s%s","cat /proc/net/dev | grep ",interface_name," |  tr -s ' '  | cut -d  ' ' -f3 | tr -d '\\n'");
+     fp = popen(pipeCmd, "r");
+     fgets(str, MAX_BUF_SIZE,fp);
+     out->ssid_BytesReceived = atol(str);
+     pclose(fp);
+ 
+-    sprintf(pipeCmd,"%s%s%s","cat /proc/net/dev | grep ",interface_name," |  tr -s ' '  | cut -d  ' ' -f12 | tr -d '\n'");
++    sprintf(pipeCmd,"%s%s%s","cat /proc/net/dev | grep ",interface_name," |  tr -s ' '  | cut -d  ' ' -f12 | tr -d '\\n'");
+     fp = popen(pipeCmd, "r");
+     fgets(str, MAX_BUF_SIZE,fp);
+     out->ssid_PacketsSent = atol(str);
+     pclose(fp);
+ 
+-    sprintf(pipeCmd,"%s%s%s","cat /proc/net/dev | grep ",interface_name," |  tr -s ' '  | cut -d  ' ' -f4 | tr -d '\n'");
++    sprintf(pipeCmd,"%s%s%s","cat /proc/net/dev | grep ",interface_name," |  tr -s ' '  | cut -d  ' ' -f4 | tr -d '\\n'");
+     fp = popen(pipeCmd, "r");
+     fgets(str, MAX_BUF_SIZE,fp);
+     out->ssid_PacketsReceived = atol(str);
+     pclose(fp);
+-    /*
+-       //TODO:
+-       out->ssid_UnicastPacketsSent        = uni->ims_tx_data_packets;
+-       out->ssid_UnicastPacketsReceived    = uni->ims_rx_data_packets;
+-       out->ssid_MulticastPacketsSent      = multi->ims_tx_data_packets - multi->ims_tx_bcast_data_packets;
+-       out->ssid_MulticastPacketsReceived  = multi->ims_rx_data_packets - multi->ims_rx_bcast_data_packets;
+-       out->ssid_BroadcastPacketsSent      = multi->ims_tx_bcast_data_packets;
+-       out->ssid_BroadcastPacketsRecevied  = multi->ims_rx_bcast_data_packets; 
+-    */
++
++    sprintf(pipeCmd,"%s%s%s","cat /proc/net/dev | grep ",interface_name," |  tr -s ' '  | cut -d  ' ' -f13 | tr -d '\\n'");
++    fp = popen(pipeCmd, "r");
++    fgets(str, MAX_BUF_SIZE,fp);
++    out->ssid_ErrorsSent = atol(str);
++    pclose(fp);
++
++    sprintf(pipeCmd,"%s%s%s","cat /proc/net/dev | grep ",interface_name," |  tr -s ' '  | cut -d  ' ' -f5 | tr -d '\\n'");
++    fp = popen(pipeCmd, "r");
++    fgets(str, MAX_BUF_SIZE,fp);
++    out->ssid_ErrorsReceived = atol(str);
++    pclose(fp);
++
++    sprintf(pipeCmd,"%s%s%s","cat /proc/net/dev | grep ",interface_name," |  tr -s ' '  | cut -d  ' ' -f14 | tr -d '\\n'");
++    fp = popen(pipeCmd, "r");
++    fgets(str, MAX_BUF_SIZE,fp);
++    out->ssid_DiscardedPacketsSent = atol(str);
++    pclose(fp);
++
++    sprintf(pipeCmd,"%s%s%s","cat /proc/net/dev | grep ",interface_name," |  tr -s ' '  | cut -d  ' ' -f6 | tr -d '\\n'");
++    fp = popen(pipeCmd, "r");
++    fgets(str, MAX_BUF_SIZE,fp);
++    out->ssid_DiscardedPacketsReceived = atol(str);
++    pclose(fp);
++
++    sprintf(pipeCmd,"%s%s%s","tail -n1 /proc/net/netstat | cut -d  ' ' -f5 | tr -d '\\n'");
++    fp = popen(pipeCmd, "r");
++    fgets(str, MAX_BUF_SIZE,fp);
++    out->ssid_MulticastPacketsSent = atol(str);
++    pclose(fp);
++
++    sprintf(pipeCmd,"%s%s%s","tail -n1 /proc/net/netstat | cut -d  ' ' -f4 | tr -d '\\n'");
++    fp = popen(pipeCmd, "r");
++    fgets(str, MAX_BUF_SIZE,fp);
++    out->ssid_MulticastPacketsReceived = atol(str);
++    pclose(fp);
++
++    sprintf(pipeCmd,"%s%s%s","tail -n1 /proc/net/netstat | cut -d  ' ' -f7 | tr -d '\\n'");
++    fp = popen(pipeCmd, "r");
++    fgets(str, MAX_BUF_SIZE,fp);
++    out->ssid_BroadcastPacketsSent = atol(str);
++    pclose(fp);
++
++    sprintf(pipeCmd,"%s%s%s","tail -n1 /proc/net/netstat | cut -d  ' ' -f6 | tr -d '\\n'");
++    fp = popen(pipeCmd, "r");
++    fgets(str, MAX_BUF_SIZE,fp);
++    out->ssid_BroadcastPacketsRecevied = atol(str);
++    pclose(fp);
++
++    out->ssid_UnicastPacketsSent = out->ssid_PacketsSent - out->ssid_MulticastPacketsSent - out->ssid_BroadcastPacketsSent - out->ssid_DiscardedPacketsSent;
++    out->ssid_UnicastPacketsReceived = out->ssid_PacketsReceived - out->ssid_MulticastPacketsReceived - out->ssid_BroadcastPacketsRecevied - out->ssid_DiscardedPacketsReceived;
++    
+     return RETURN_OK;
+ }
+ 
+-- 
+2.18.0
+