[Feature][Modem]Update MTK MODEM V1.6 baseline version: MOLY.NR15.R3.MD700.IVT.MP1MR3.MP.V1.6.P4.T800.L1.240604.240828

MTK modem version: MOLY01418741_AUTO00328685(For_MOBILETEK2735_IVT_T800_V1_MOLY.NR15.R3.MD700.IVT.MP1MR3.MP.V1.6.P4).tar.gz
RF  modem version: T800/l1-2024_0604.rar

Change-Id: Id0662cc6ffa76d34e194774629945078070f4e64
diff --git a/mcu/interface/middleware/hif/ipc_api.h b/mcu/interface/middleware/hif/ipc_api.h
index 02a3237..4f93146 100644
--- a/mcu/interface/middleware/hif/ipc_api.h
+++ b/mcu/interface/middleware/hif/ipc_api.h
@@ -497,6 +497,7 @@
 #define IPC_HDR_PROT_ICMPV6             58 /* ICMP for IPv6 */
 #define IPC_HDR_PROT_IPV6_NONEXT        59 /* No Next Header for IPv6 */
 #define IPC_HDR_PROT_IPV6_DEST          60 /* Destination Options for IPv6 */
+#define IPC_HDR_PROT_RESERVED           255 /* 255 is reserved in IANA IP Protocol Numbers */
 
 /*
  * IPv4.
diff --git a/mcu/interface/middleware/hif/pfm_api.h b/mcu/interface/middleware/hif/pfm_api.h
index f0d2144..112e6c2 100644
--- a/mcu/interface/middleware/hif/pfm_api.h
+++ b/mcu/interface/middleware/hif/pfm_api.h
@@ -116,4 +116,24 @@
  */
 void pfm_dereg_cbk_wake_type_pkt();
 
+/*!
+ * @brief pfm_ip_packet_filter_reg_cbk_wake_type_pkt
+ * Register callback for MBIM WAKE REASON wake type pkt
+ *
+ * @param [IN]pf_wake_type_pkt
+ *        [IN]priv_data
+ */
+void pfm_ip_packet_filter_reg_cbk_wake_type_pkt(pfm_garbage_str_wake_type_pkt_f pf_wake_type_pkt, void* priv_data);
+
+/*!
+ * @brief pfm_ip_packet_filter_dereg_cbk_wake_type_pkt
+ * De-register callback for MBIM WAKE REASON wake type pkt
+ *
+ */
+void pfm_ip_packet_filter_dereg_cbk_wake_type_pkt();
+
+
+void pfm_ip_packet_filter_deregister_callback(void *buf, kal_uint32 filter_cnt, kal_bool uplink);
+
+
 #endif /* __INC_PFM_API_H */
diff --git a/mcu/interface/middleware/hif/pfm_config.h b/mcu/interface/middleware/hif/pfm_config.h
index f282fff..99ad19a 100644
--- a/mcu/interface/middleware/hif/pfm_config.h
+++ b/mcu/interface/middleware/hif/pfm_config.h
@@ -105,3 +105,6 @@
 PFM_FILTER_SET_PREFIX(ul_disable_all_packets_filter)       /* 5 */
 PFM_FILTER_SET_FEATURE_NAME(UL_ICMP_PING_WHITELIST_FILTER) /* 6 */
 PFM_FILTER_SET_PREFIX(ul_icmp_ping_whitelist_filter)       /* 6 */
+
+PFM_FILTER_SET_FEATURE_NAME(IP_PACKET_FILTER)  /* 10 */
+PFM_FILTER_SET_PREFIX(ip_packet_filter)        /* 10 */
diff --git a/mcu/interface/middleware/hif/pfm_struct.h b/mcu/interface/middleware/hif/pfm_struct.h
index 546b1ec..6f8a302 100644
--- a/mcu/interface/middleware/hif/pfm_struct.h
+++ b/mcu/interface/middleware/hif/pfm_struct.h
@@ -100,6 +100,20 @@
 /*
  * Local parameter structure for MSG_ID_PFM_REGISTER_FILTER_REQ & MSG_ID_PFM_DEREGISTER_FILTER_REQ
  */
+typedef struct _pfm_ip_packet_filter_filter_t {
+    kal_int32   filter_id;
+    kal_uint32  pdn_id;    /* L5 invoke UPCM API to transfer from CID to PDN_ID */
+                           /*  pdn_id=0 then no need to set filter config, to support all pdn_id(cid=-1) filter*/
+    kal_uint8   ip_type;
+    kal_uint8   protocol;
+    kal_uint8   reserve[2];
+    kal_uint16  src_port;
+    kal_uint16  dst_port;
+    kal_uint8   ip_src[16];     /* IP Src: 4bytes / 16 bytes (IPV4/IPV6) */
+    kal_uint8   ip_dest[16];    /* IP Dest: 4bytes / 16 bytes (IPV4/IPV6) */
+    kal_uint32  magic_code;
+} pfm_ip_packet_filter_filter_t;
+
 typedef struct _pfm_filter_set_t {
     LOCAL_PARA_HDR
 
@@ -132,4 +146,7 @@
 typedef pfm_filter_set_t pfm_register_filter_req_struct;
 typedef pfm_filter_set_t pfm_deregister_filter_req_struct;
 
+typedef pfm_filter_set_t pfm_register_ip_packet_filter_req_struct;
+typedef pfm_filter_set_t pfm_deregister_ip_packet_filter_req_struct;
+
 #endif /* __INC_PFM_STRUCT_H */
diff --git a/mcu/interface/sap/md/l5_msgid.h b/mcu/interface/sap/md/l5_msgid.h
index 1fb3e8c..eaebacb 100644
--- a/mcu/interface/sap/md/l5_msgid.h
+++ b/mcu/interface/sap/md/l5_msgid.h
@@ -541,6 +541,10 @@
         MSG_ID_L5UPDN_GET_5GQOS_REQ,
 		MSG_ID_L5UPDN_GET_NSSAI_REQ,
         MSG_ID_L5UPDN_DATA_RETRY_TIMER_REQ,
+        MSG_ID_L5UPDN_SET_IP_TUPLE_PACKET_FILTER_REQ,
+        MSG_ID_L5UPDN_DEL_IP_TUPLE_PACKET_FILTER_REQ,
+        MSG_ID_L5UPDN_SET_IP_TUPLE_PACKET_FILTER_MODE_REQ,
+        MSG_ID_L5UPDN_GET_IP_TUPLE_PACKET_FILTER_MODE_REQ,
     MSG_ID_L5IO_L5UPDN_MSG_FROM_L5IO_END,
 
     MSG_ID_L5IO_L5UPDN_MSG_FROM_LOWLAYER_BEGIN,
@@ -587,6 +591,11 @@
 		MSG_ID_L5UPDN_PACKET_WAKE_UP_IND,
 		MSG_ID_L5UPDN_GET_NSSAI_CNF,
         MSG_ID_L5UPDN_DATA_RETRY_TIMER_CNF,
+        MSG_ID_L5UPDN_IP_PACKET_RECV_IND,
+        MSG_ID_L5UPDN_SET_IP_TUPLE_PACKET_FILTER_CNF,
+        MSG_ID_L5UPDN_DEL_IP_TUPLE_PACKET_FILTER_CNF,
+        MSG_ID_L5UPDN_SET_IP_TUPLE_PACKET_FILTER_MODE_CNF,
+        MSG_ID_L5UPDN_GET_IP_TUPLE_PACKET_FILTER_MODE_CNF,
     MSG_ID_L5IO_L5UPDN_MSG_FROM_LOWLAYER_END,
 
     MSG_ID_L5IO_L5UCC_REQ_MSG_BEGIN,
diff --git a/mcu/interface/sap/mw/pfm_msgid_source.h b/mcu/interface/sap/mw/pfm_msgid_source.h
index 468ecbb..0cbdf4a 100644
--- a/mcu/interface/sap/mw/pfm_msgid_source.h
+++ b/mcu/interface/sap/mw/pfm_msgid_source.h
@@ -1,5 +1,7 @@
 MSG_ID_PFM_REGISTER_FILTER_REQ,
 MSG_ID_PFM_DEREGISTER_FILTER_REQ,
+MSG_ID_PFM_REGISTER_IP_PACKET_FILTER_REQ,
+MSG_ID_PFM_DEREGISTER_IP_PACKET_FILTER_REQ,
 MSG_ID_AP_STATUS_IND,
 MSG_ID_PFM_PCIE_STATE_CHANGE_IND,
 MSG_ID_PFM_ICMP_PING_REG_FILTER_REQ,