[qca-nss-sfe] Add conntrack mark update support

Gets the conntrack mark update events from the connection
manager and updates the match entries' mark values.

Change-Id: Ie1f427af18cc484b0751ea84c838adbb609e7a95
Signed-off-by: Murat Sezgin <quic_msezgin@quicinc.com>
diff --git a/sfe_ipv6.c b/sfe_ipv6.c
index 5776fe2..01183af 100644
--- a/sfe_ipv6.c
+++ b/sfe_ipv6.c
@@ -1083,6 +1083,33 @@
 }
 
 /*
+ * sfe_ipv6_mark_rule_update()
+ *	Updates the mark values of match entries.
+ */
+void sfe_ipv6_mark_rule_update(struct sfe_connection_mark *mark)
+{
+	struct sfe_ipv6_connection *c;
+	struct sfe_ipv6 *si = &__si6;
+
+	spin_lock_bh(&si->lock);
+	c = sfe_ipv6_find_connection(si, mark->protocol,
+				     (struct sfe_ipv6_addr *)mark->src_ip,
+				     mark->src_port,
+				     (struct sfe_ipv6_addr *)mark->dest_ip,
+				     mark->dest_port);
+	if (!c) {
+		spin_unlock_bh(&si->lock);
+		DEBUG_WARN("%px: connection not found for mark update\n", mark);
+		return;
+	}
+	c->original_match ->mark = mark->mark;
+	c->reply_match->mark = mark->mark;
+	spin_unlock_bh(&si->lock);
+	DEBUG_TRACE("%px: connection mark updated with %d\n", mark, mark->mark);
+}
+EXPORT_SYMBOL(sfe_ipv6_mark_rule_update);
+
+/*
  * sfe_ipv6_xmit_eth_type_check
  *	Checking if MAC header has to be written.
  */