From 5281a9029ea56f397a37ea1cf478ac526882770a Mon Sep 17 00:00:00 2001 From: Neale Ranns Date: Tue, 23 Jul 2019 08:16:19 -0700 Subject: qos: QoS dump APIs Type: feature Change-Id: I514b40026986f3828c8727453456b20a0a45f3af Signed-off-by: Neale Ranns --- src/vnet/qos/qos.api | 174 ++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 131 insertions(+), 43 deletions(-) (limited to 'src/vnet/qos/qos.api') diff --git a/src/vnet/qos/qos.api b/src/vnet/qos/qos.api index 1960ccb9548..11c91638c5b 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 @@ enum qos_source 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. -*/ -autoreply define qos_mark_enable_disable +/** + * Dump the QoS egress maps + */ +define qos_egress_map_dump { u32 client_index; u32 context; - u32 map_id; +}; + +/** + * 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; 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; }; /* -- cgit 1.2.3-korg