[qca-nss-ecm] Copy ingress qostag to acceleration rules.

Copy ingress qostag fields from DSCP extension CTE to IPv4/IPv6
and multicast rules.

Change-Id: Id3ca9198563eb1c284227280275d8dd5a5bce51a
Signed-off-by: Manish Verma <maniverm@codeaurora.org>
diff --git a/ecm_classifier.h b/ecm_classifier.h
index fdda166..6575251 100644
--- a/ecm_classifier.h
+++ b/ecm_classifier.h
@@ -1,6 +1,6 @@
 /*
  **************************************************************************
- * Copyright (c) 2014-2015, 2018, The Linux Foundation.  All rights reserved.
+ * Copyright (c) 2014-2015, 2018-2019, The Linux Foundation.  All rights reserved.
  * Permission to use, copy, modify, and/or distribute this software for
  * any purpose with or without fee is hereby granted, provided that the
  * above copyright notice and this permission notice appear in all copies.
@@ -79,6 +79,8 @@
 #ifdef ECM_CLASSIFIER_DSCP_ENABLE
 #define ECM_CLASSIFIER_PROCESS_ACTION_DSCP 0x00000010		/* Contains DSCP marking information */
 #define ECM_CLASSIFIER_PROCESS_ACTION_DSCP_DENY 0x00000020	/* Denies any DSCP changes */
+
+#define ECM_CLASSIFIER_PROCESS_ACTION_IGS_QOS_TAG 0x00000040	/* Contains flow & return ingress qos tags */
 #endif
 
 /*
@@ -97,6 +99,8 @@
 	bool drop;					/* Drop packet at hand */
 	uint32_t flow_qos_tag;				/* QoS tag to use for the packet */
 	uint32_t return_qos_tag;			/* QoS tag to use for the packet */
+	uint16_t igs_flow_qos_tag;			/* Ingress QoS tag to use for the packet */
+	uint16_t igs_return_qos_tag;			/* Ingress QoS tag to use for the return packet */
 #ifdef ECM_CLASSIFIER_DSCP_ENABLE
 	uint8_t flow_dscp;				/* DSCP mark for flow */
 	uint8_t return_dscp;				/* DSCP mark for return */
@@ -248,6 +252,7 @@
 		}
 	}
 
+#ifdef ECM_CLASSIFIER_DSCP_ENABLE
 	if (pr->process_actions & ECM_CLASSIFIER_PROCESS_ACTION_QOS_TAG) {
 		if ((result = ecm_state_write(sfi, "flow_qos_tag", "%u", pr->flow_qos_tag))) {
 			return result;
@@ -256,7 +261,16 @@
 			return result;
 		}
 	}
-#ifdef ECM_CLASSIFIER_DSCP_ENABLE
+
+	if (pr->process_actions & ECM_CLASSIFIER_PROCESS_ACTION_IGS_QOS_TAG) {
+		if ((result = ecm_state_write(sfi, "igs_flow_qos_tag", "%u", pr->igs_flow_qos_tag))) {
+			return result;
+		}
+		if ((result = ecm_state_write(sfi, "igs_return_qos_tag", "%u", pr->igs_return_qos_tag))) {
+			return result;
+		}
+	}
+
 	if (pr->process_actions & ECM_CLASSIFIER_PROCESS_ACTION_DSCP) {
 		if ((result = ecm_state_write(sfi, "flow_dscp", "%u", pr->flow_dscp))) {
 			return result;