diff --git a/include/odp/api/classification.h b/include/odp/api/classification.h
index f46912e..59bd01d 100644
--- a/include/odp/api/classification.h
+++ b/include/odp/api/classification.h
@@ -50,7 +50,7 @@ extern "C" {
 /**
  * @def ODP_PMR_INVAL
  * Invalid odp_pmr_t value.
- * This value is returned from odp_pmr_create()
+ * This value is returned from odp_cls_pmr_create()
  * function on failure.
  */
 
@@ -286,50 +286,33 @@ typedef struct odp_pmr_match_t {
 } odp_pmr_match_t;
 
 /**
- * Create a packet match rule with mask and value
+ * Create a packet match rule between source and destination class of service.
+ * This packet matching rule is applied on all packets arriving at the source
+ * class of service and packets satisfying this PMR are sent to the destination
+ * class of service.
  *
  * @param[in]	match   packet matching rule definition
+ * @param[in]	src_cos	source CoS handle
+ * @param[in]	dst_cos	destination CoS handle
  *
  * @return		Handle of the matching rule
  * @retval		ODP_PMR_INVAL on failure
  */
-odp_pmr_t odp_pmr_create(const odp_pmr_match_t *match);
-
+odp_pmr_t odp_cls_pmr_create(const odp_pmr_match_t *match, odp_cos_t src_cos,
+			     odp_cos_t dst_cos);
 /**
- * Invalidate a packet match rule and vacate its resources
+ * Function to destroy a packet match rule
+ * Destroying a PMR removes the link between the source and destination
+ * class of service and this PMR will no longer be applied for packets arriving
+ * at the source class of service. All the resource associated with the PMR
+ * be release but the class of service will remain intact.
  *
  * @param[in]	pmr_id	Identifier of the PMR to be destroyed
  *
  * @retval		0 on success
  * @retval		<0 on failure
  */
-int odp_pmr_destroy(odp_pmr_t pmr_id);
-
-/**
- * Apply a PMR to a pktio to assign a CoS.
- *
- * @param[in]	pmr_id		PMR to be activated
- * @param[in]	src_pktio	pktio to which this PMR is to be applied
- * @param[in]	dst_cos		CoS to be assigned by this PMR
- *
- * @retval		0 on success
- * @retval		<0 on failure
- */
-int odp_pktio_pmr_cos(odp_pmr_t pmr_id,
-		      odp_pktio_t src_pktio, odp_cos_t dst_cos);
-
-/**
- * Cascade a PMR to refine packets from one CoS to another.
- *
- * @param[in]	pmr_id		PMR to be activated
- * @param[in]	src_cos		CoS to be filtered
- * @param[in]	dst_cos		CoS to be assigned to packets filtered
- *				from src_cos that match pmr_id.
- *
- * @retval		0 on success
- * @retval		<0 on failure
- */
-int odp_cos_pmr_cos(odp_pmr_t pmr_id, odp_cos_t src_cos, odp_cos_t dst_cos);
+int odp_cls_pmr_destroy(odp_pmr_t pmr_id);
 
 /**
  * Inquire about matching terms supported by the classifier
@@ -357,19 +340,24 @@ unsigned odp_pmr_terms_avail(void);
  * of value match rules, and the application should take care
  * of inspecting the return value when installing such rules, and perform
  * appropriate fallback action.
+ * This is same as odp_cls_pmr_create() except that it creates the link
+ * using pmr match set instead of a single PMR.
  *
  * @param[in]	num_terms	Number of terms in the match rule.
  * @param[in]	terms		Array of num_terms entries, one entry per
  *				term desired.
  * @param[out]	pmr_set_id	Returned handle to the composite rule set.
+ * @param[in]	src_cos		source CoS handle
+ * @param[in]	dst_cos		destination CoS handle
  *
  * @return			the number of terms elements
  *				that have been successfully mapped to the
  *				underlying platform classification engine
  * @retval			<0 on failure
  */
-int odp_pmr_match_set_create(int num_terms, const odp_pmr_match_t *terms,
-			     odp_pmr_set_t *pmr_set_id);
+int odp_cls_pmr_match_set_create(int num_terms, const odp_pmr_match_t *terms,
+				 odp_pmr_set_t *pmr_set_id, odp_cos_t src_cos,
+				 odp_cos_t dst_cos);
 
 /**
  * Function to delete a composite packet match rule set
@@ -378,7 +366,7 @@ int odp_pmr_match_set_create(int num_terms, const odp_pmr_match_t *terms,
  * same or essentially similar rule-set.
  *
  * All of the resources pertaining to the match set associated with the
- * class-of-service will be released, but the class-of-service will
+ * class of service will be released, but the class of service will
  * remain intact.
  *
  * @param[in]	pmr_set_id	A composite rule-set handle
@@ -387,21 +375,7 @@ int odp_pmr_match_set_create(int num_terms, const odp_pmr_match_t *terms,
  * @retval			0 on success
  * @retval			<0 on failure
  */
-int odp_pmr_match_set_destroy(odp_pmr_set_t pmr_set_id);
-
-/**
- * Apply a PMR Match Set to a pktio to assign a CoS.
- *
- * @param[in]	pmr_set_id	PMR match set to be activated
- * @param[in]	src_pktio	pktio to which this PMR match
- *				set is to be applied
- * @param[in]	dst_cos		CoS to be assigned by this PMR match set
- *
- * @retval			0 on success
- * @retval			<0 on failure
- */
-int odp_pktio_pmr_match_set_cos(odp_pmr_set_t pmr_set_id, odp_pktio_t src_pktio,
-				odp_cos_t dst_cos);
+int odp_cls_pmr_match_set_destroy(odp_pmr_set_t pmr_set_id);
 
 /**
 * Assigns a packet pool for a specific class of service.
