qos: QoS dump APIs
[vpp.git] / src / vnet / qos / qos_egress_map.h
index f4b282c..0dab7ad 100644 (file)
 typedef u32 qos_egress_map_id_t;
 
 /**
- * For a given output source a table maps each value of every input sorce.
+ * For a given output source a table maps each value of every input source.
  */
 typedef struct qos_egress_map_t_
 {
-    /**
-     * The array of output mapped values;
-     *   output = eq_qos[input-source][input-value]
-     */
+  /**
+   * Required for pool_get_aligned
+   */
+  CLIB_CACHE_LINE_ALIGN_MARK (cacheline0);
+
+  /**
+   * The array of output mapped values;
+   *   output = eq_qos[input-source][input-value]
+   */
   qos_bits_t qem_output[QOS_N_SOURCES][256];
 } qos_egress_map_t;
 
@@ -50,7 +55,7 @@ extern u8 *format_qos_egress_map (u8 * s, va_list * args);
  * then the configuration is for the 'default' table.
  * If the table is ~0, this is a removal.
  * the egress mapping is applied. For example, is output is MPLS then
- * the QoS markings will occur for MPLS pakcets.
+ * the QoS markings will occur for MPLS packets.
  */
 extern void qos_egress_map_update (qos_egress_map_id_t tid,
                                   qos_source_t input_source,
@@ -61,6 +66,15 @@ extern void qos_egress_map_delete (qos_egress_map_id_t tid);
  * Get the VPP QoS map index from the user's map-ID
  */
 extern index_t qos_egress_map_find (qos_egress_map_id_t tid);
+extern qos_egress_map_id_t qos_egress_map_get_id (index_t qemi);
+
+/**
+ * Walk each of the configured maps
+ */
+typedef walk_rc_t (*qos_egress_map_walk_cb_t) (qos_egress_map_id_t id,
+                                              const qos_egress_map_t * m,
+                                              void *c);
+void qos_egress_map_walk (qos_egress_map_walk_cb_t fn, void *c);
 
 /**
  * Data-plane functions