[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
/*