qos: QoS dump APIs
Type: feature
Change-Id: I514b40026986f3828c8727453456b20a0a45f3af
Signed-off-by: Neale Ranns <nranns@cisco.com>
diff --git a/src/vnet/qos/qos.api b/src/vnet/qos/qos.api
index 1960ccb..11c9163 100644
--- a/src/vnet/qos/qos.api
+++ b/src/vnet/qos/qos.api
@@ -22,7 +22,7 @@
option version = "1.0.0";
-enum qos_source
+enum qos_source : u8
{
QOS_API_SOURCE_EXT = 0,
QOS_API_SOURCE_VLAN = 1,
@@ -30,76 +30,164 @@
QOS_API_SOURCE_IP = 3,
};
-/** \brief Enable/Disable QoS recording
- The QoS bits from the packet at the specified input layer are copied
- into the packet. Recording should be used in conjunction with marking
- @param sw_if_index - The interface on which recording is enabled.
- @param enable - enable=1 or disable the feature
- @param input_source - The input source/layer at which the QoS bits
- are copied from the packet. See qos_source_t.
-*/
+/**
+ * QoS recording.
+ * @param sw_if_index - The interface on which recording is enabled.
+ * @param input_source - The input source/layer at which the QoS bits
+ are copied from the packet. See qos_source_t.
+ */
+typedef qos_record
+{
+ u32 sw_if_index;
+ vl_api_qos_source_t input_source;
+};
+
+/**
+ * Enable/Disable QoS recording
+ * The QoS bits from the packet at the specified input layer are copied
+ * into the packet. Recording should be used in conjunction with marking
+ * @param enable - enable=1 or disable the feature
+ * @param record - Recording configuration
+ */
autoreply define qos_record_enable_disable
{
u32 client_index;
u32 context;
- u32 sw_if_index;
- vl_api_qos_source_t input_source;
u8 enable;
+ vl_api_qos_record_t record;
};
-/** \brief A row within a QoS map
- Each value translates from an input value to an output.
-*/
-typeonly define qos_egress_map_row
+/**
+ * Dump the QoS record configs
+ */
+define qos_record_dump
{
- u8 outputs[256];
+ u32 client_index;
+ u32 context;
};
-/** \brief Update a QoS Map
- A QoS map, translates from the QoS value in the packet set by the 'record'
- feature, to the value used for output in the 'mark' feature.
- There is one row in the map for each input/record source.
- The MAP is then applied to the egress interface at for a given output source
- @param map_id - client provided identifier for the map
- @param rows - one row (per-input source) of output values
-*/
+/**
+ * Details of QoS recording configs
+ */
+define qos_record_details
+{
+ u32 context;
+ vl_api_qos_record_t record;
+};
+
+/**
+ * @brief A row within a QoS map
+ * Each value translates from an input value to an output.
+ */
+typedef qos_egress_map_row
+{
+ u8 outputs[256];
+};
+
+/**
+ * QoS Translation Map
+ *
+ * @param id - client provided identifier for the map
+ * @param rows - one row (per-input source) of output values
+ */
+typedef qos_egress_map
+{
+ u32 id;
+ vl_api_qos_egress_map_row_t rows[4];
+};
+
+/**
+ * @brief Update a QoS Map
+ * A QoS map, translates from the QoS value in the packet set by the 'record'
+ * feature, to the value used for output in the 'mark' feature.
+ * There is one row in the map for each input/record source.
+ * The MAP is then applied to the egress interface at for a given output source
+ * @param map - The Map
+ */
autoreply define qos_egress_map_update
{
u32 client_index;
u32 context;
- u32 map_id;
- vl_api_qos_egress_map_row_t rows[4];
+ vl_api_qos_egress_map_t map;
};
-/** \brief Delete a Qos Map
- @param map_id - ID of the map to delete
-*/
+/**
+ * @brief Delete a Qos Map
+ * @param map_id - ID of the map to delete
+ */
autoreply define qos_egress_map_delete
{
u32 client_index;
u32 context;
- u32 map_id;
+ u32 id;
};
-/** \brief Enable/Disable QoS marking
- The QoS bits from the packet are mapped (using the desired egress map)
- into the header of the 'output-source'. Marking should be used in
- conjunction with recording
- @param sw_if_index - The interface on which recording is enabled.
- @param enable - enable=1 or disable the feature
- @param output_source - The output source/layer at which the QoS bits
- are written into the packet. See qos_source_t.
- @param map_id - The ID of the MAP in which the translation from input
- to output is performed.
-*/
+/**
+ * Dump the QoS egress maps
+ */
+define qos_egress_map_dump
+{
+ u32 client_index;
+ u32 context;
+};
+
+/**
+ * QoS map details
+ */
+define qos_egress_map_details
+{
+ u32 context;
+ vl_api_qos_egress_map_t map;
+};
+
+/**
+ * QoS marking Cponfiguration
+ * The QoS bits from the buffer are mapped (using the desired egress map)
+ * into the header of the 'output-source'. Marking should be used in
+ * conjunction with recording
+ * @param sw_if_index - The interface on which recording is enabled.
+ * @param output_source - The output source/layer at which the QoS bits
+ * are written into the packet. See qos_source_t.
+ * @param map_id - The ID of the MAP in which the translation from input
+ * to output is performed.
+ */
+typedef qos_mark
+{
+ u32 sw_if_index;
+ u32 map_id;
+ vl_api_qos_source_t output_source;
+};
+
+/**
+ * @brief Enable/Disable QoS marking
+ * @param enable - enable=1 or disable the feature
+ * @param mark - Marking config
+ */
autoreply define qos_mark_enable_disable
{
u32 client_index;
u32 context;
- u32 map_id;
- u32 sw_if_index;
- vl_api_qos_source_t output_source;
u8 enable;
+ vl_api_qos_mark_t mark;
+};
+
+/**
+ * Dump QoS marking configs
+ */
+define qos_mark_dump
+{
+ u32 client_index;
+ u32 context;
+ u32 sw_if_index;
+};
+
+/**
+ * QoS marking details
+ */
+autoreply define qos_mark_details
+{
+ u32 context;
+ vl_api_qos_mark_t mark;
};
/*