[qca-nss-sfe] Use pull mode for syncing status

pull mode invoked from the ecm, sfe put the sync stat in
a PAGE as many connection as possible.

Change-Id: Ia1d34cd21d519a01d5d9f4013a7cb24227f26273
Signed-off-by: Ken Zhu <quic_guigenz@quicinc.com>
diff --git a/sfe.h b/sfe.h
index e1fe4ec..40f29aa 100644
--- a/sfe.h
+++ b/sfe.h
@@ -162,6 +162,8 @@
  * from unregistering.
  */
 typedef void (*sfe_sync_rule_callback_t)(struct sfe_connection_sync *);
+typedef void (*sfe_ipv4_many_sync_callback_t)(struct sfe_ipv4_msg *msg);
+typedef void (*sfe_ipv6_many_sync_callback_t)(struct sfe_ipv6_msg *msg);
 
 /*
  * IPv4 APIs used by connection manager
@@ -174,6 +176,9 @@
 void sfe_ipv4_update_rule(struct sfe_ipv4_rule_create_msg *msg);
 bool sfe_dev_has_hw_csum(struct net_device *dev);
 
+bool sfe_ipv4_sync_invoke(uint16_t index);
+void sfe_ipv4_register_many_sync_callback(sfe_ipv4_many_sync_callback_t cb);
+void sfe_ipv4_stats_convert(struct sfe_ipv4_conn_sync *sync_msg, struct sfe_connection_sync *sis);
 #ifdef SFE_SUPPORT_IPV6
 /*
  * IPv6 APIs used by connection manager
@@ -184,6 +189,9 @@
 void sfe_ipv6_destroy_all_rules_for_dev(struct net_device *dev);
 void sfe_ipv6_register_sync_rule_callback(sfe_sync_rule_callback_t callback);
 void sfe_ipv6_update_rule(struct sfe_ipv6_rule_create_msg *msg);
+bool sfe_ipv6_sync_invoke(uint16_t index);
+void sfe_ipv6_register_many_sync_callback(sfe_ipv6_many_sync_callback_t cb);
+void sfe_ipv6_stats_convert(struct sfe_ipv6_conn_sync *sync_msg, struct sfe_connection_sync *sis);
 #else
 static inline int sfe_ipv6_recv(struct net_device *dev, struct sk_buff *skb, struct sfe_l2_info *l2_info, bool tun_outer)
 {
@@ -215,6 +223,20 @@
 	return;
 }
 
+static inline bool sfe_ipv6_sync_invoke(uint16_t index)
+{
+	return false;
+}
+
+static inline void sfe_ipv6_register_many_sync_callback(sfe_ipv6_many_sync_callback_t cb)
+{
+	return;
+}
+
+static inline void sfe_ipv6_stats_convert(struct sfe_ipv6_conn_sync *sync_msg, struct sfe_connection_sync *sis)
+{
+	return;
+}
 #endif
 
 /*