diff --git a/include/odp/api/classification.h b/include/odp/api/classification.h
index f597b26..1829f74 100644
--- a/include/odp/api/classification.h
+++ b/include/odp/api/classification.h
@@ -24,6 +24,16 @@ extern "C" {
  *  @{
  */
 
+/**
+ * @typedef odp_cls_context_t
+ * Context for classification rule chains
+ */
+
+/**
+ * @def ODP_CLS_CONTEXT_INVALID
+ * This value is the "null context" used to represent
+ * no context.
+ */
 
 /**
  * @typedef odp_cos_t
@@ -59,6 +69,48 @@ extern "C" {
  * Invalid odp_pmr_set_t value.
  */
 
+ /**
+ * Create a classification context
+ *
+ * @param  name Name for context lookup, or NULL for anonymous
+ *
+ * @return ctx      Classification context handle
+ * @retval          ODP_CLS_CONTEXT_INVALID on failure
+ */
+odp_cls_context_t odp_cls_context_create(const char *name);
+
+/**
+ * Destroy a classification context
+ *
+ * @param ctx       Classification context handle
+ * @retval          0 on success
+ * @retval          <0 on failure
+ */
+int odp_cls_context_destroy(odp_cls_context_t ctx);
+
+/**
+ * Lookup a classification context
+ *
+ * @param name  String name of the context to be retrieved
+ *
+ * @return ctx      Classification context handle
+ * @retval          ODP_CLS_CONTEXT_INVALID on lookup failure
+ */
+odp_cls_context_t odp_cls_context_lookup(const char *name);
+
+/**
+ * Get printable value for an odp_cls_context_t
+ *
+ * @param ctx   Handle to be printed
+ * @return      uint64_t value that can be used to print/display
+ *              this handle
+ *
+ * @note This routine is intended to be used for diagnostic purposes
+ * to enable applications to generate a printable value that represents
+ * an odp_cls_context_t handle.
+ */
+uint64_t odp_cls_context_to_u64(odp_cls_context_t ctx);
+
 /**
  * Class-of-service packet drop policies
  */
@@ -263,6 +315,46 @@ int odp_pktio_pmr_cos(odp_pmr_t pmr_id,
 		      odp_pktio_t src_pktio, odp_cos_t dst_cos);
 
 /**
+ * Apply a PMR to a classification context to assign a CoS.
+ *
+ * @param[in]   ctx             Classification context to which
+ *                              this PMR is to be applied
+ * @param[in]	pmr_id		PMR to be activated
+ * @param[in]	dst_cos		CoS to be assigned by this PMR
+ *
+ * @retval		0 on success
+ * @retval		<0 on failure
+ */
+int odp_cls_context_pmr_cos(odp_cls_context_t ctx,
+			    odp_pmr_t pmr_id, odp_cos_t dst_cos);
+
+/**
+ * Apply a classification context to a pktio to make it active
+ *
+ * @param      src_pktio   pktio to which this context is to be applies
+ * @param      new_ctx     context to be applied to this pktio
+ * @param      root        the PMR with new_ctx that represents the root
+ *                         of changes--may be used by the implementation
+ *                         to optimize handling of partial changes to
+ *                         a classification tree. Specify as NULL if
+ *                         changes have no specific starting node or if
+ *                         the context contains PMR sets.
+ * @param[out] old_ctx     prior context that was applied to this pktio
+ *
+ * @retval                 0 on success
+ * @retval                 <0 on failure
+ *
+ * @note Applying a classification context to a pktio that has no current
+ * context returns ODP_CLS_CONTEXT_INVALID as the old_ctx. Similarly, to
+ * remove a classification context from a pktio use ODP_CLS_CONTEXT_INVALID
+ * as the new_ctx.
+ */
+int odp_pktio_cls_context_swap(odp_pktio_t src_pktio,
+			       odp_cls_context_t new_ctx,
+			       odp_pmr_t root,
+			       odp_cls_context_t *old_ctx);
+
+/**
  * Cascade a PMR to refine packets from one CoS to another.
  *
  * @param[in]	pmr_id		PMR to be activated
@@ -358,6 +450,20 @@ int odp_pktio_pmr_match_set_cos(odp_pmr_set_t pmr_set_id, odp_pktio_t src_pktio,
 				odp_cos_t dst_cos);
 
 /**
+ * Apply a PMR set to a classification context to assign a CoS.
+ *
+ * @param[in]   ctx             Classification context to which
+ *                              this PMR set is to be applied
+ * @param[in]	pmr_set_id	PMR set to be activated
+ * @param[in]	dst_cos		CoS to be assigned by this PMR
+ *
+ * @retval		0 on success
+ * @retval		<0 on failure
+ */
+int odp_cls_context_pmr_set_cos(odp_cls_context_t ctx,
+				odp_pmr_set_t pmr_set_id, odp_cos_t dst_cos);
+
+/**
  * Get printable value for an odp_cos_t
  *
  * @param hdl  odp_cos_t handle to be printed
