extern "C" {
#endif
+/** @internal MTR capabilities get. */
typedef int (*rte_mtr_capabilities_get_t)(struct rte_eth_dev *dev,
struct rte_mtr_capabilities *cap,
struct rte_mtr_error *error);
-/**< @internal MTR capabilities get */
+/** @internal MTR meter profile add. */
typedef int (*rte_mtr_meter_profile_add_t)(struct rte_eth_dev *dev,
uint32_t meter_profile_id,
struct rte_mtr_meter_profile *profile,
struct rte_mtr_error *error);
-/**< @internal MTR meter profile add */
+/** @internal MTR meter profile delete. */
typedef int (*rte_mtr_meter_profile_delete_t)(struct rte_eth_dev *dev,
uint32_t meter_profile_id,
struct rte_mtr_error *error);
-/**< @internal MTR meter profile delete */
+/** @internal MTR meter policy validate. */
+typedef int (*rte_mtr_meter_policy_validate_t)(struct rte_eth_dev *dev,
+ struct rte_mtr_meter_policy_params *policy,
+ struct rte_mtr_error *error);
+
+/** @internal MTR meter policy add. */
+typedef int (*rte_mtr_meter_policy_add_t)(struct rte_eth_dev *dev,
+ uint32_t policy_id,
+ struct rte_mtr_meter_policy_params *policy,
+ struct rte_mtr_error *error);
+
+/** @internal MTR meter policy delete. */
+typedef int (*rte_mtr_meter_policy_delete_t)(struct rte_eth_dev *dev,
+ uint32_t policy_id,
+ struct rte_mtr_error *error);
+
+/** @internal MTR object create. */
typedef int (*rte_mtr_create_t)(struct rte_eth_dev *dev,
uint32_t mtr_id,
struct rte_mtr_params *params,
int shared,
struct rte_mtr_error *error);
-/**< @internal MTR object create */
+/** @internal MTR object destroy. */
typedef int (*rte_mtr_destroy_t)(struct rte_eth_dev *dev,
uint32_t mtr_id,
struct rte_mtr_error *error);
-/**< @internal MTR object destroy */
+/** @internal MTR object meter enable. */
typedef int (*rte_mtr_meter_enable_t)(struct rte_eth_dev *dev,
uint32_t mtr_id,
struct rte_mtr_error *error);
-/**< @internal MTR object meter enable */
+/** @internal MTR object meter disable. */
typedef int (*rte_mtr_meter_disable_t)(struct rte_eth_dev *dev,
uint32_t mtr_id,
struct rte_mtr_error *error);
-/**< @internal MTR object meter disable */
+/** @internal MTR object meter profile update. */
typedef int (*rte_mtr_meter_profile_update_t)(struct rte_eth_dev *dev,
uint32_t mtr_id,
uint32_t meter_profile_id,
struct rte_mtr_error *error);
-/**< @internal MTR object meter profile update */
+/** @internal MTR object meter policy update. */
+typedef int (*rte_mtr_meter_policy_update_t)(struct rte_eth_dev *dev,
+ uint32_t mtr_id,
+ uint32_t meter_policy_id,
+ struct rte_mtr_error *error);
+
+/** @internal MTR object meter DSCP table update. */
typedef int (*rte_mtr_meter_dscp_table_update_t)(struct rte_eth_dev *dev,
uint32_t mtr_id,
enum rte_color *dscp_table,
struct rte_mtr_error *error);
-/**< @internal MTR object meter DSCP table update */
-typedef int (*rte_mtr_policer_actions_update_t)(struct rte_eth_dev *dev,
+/** @internal mtr object meter vlan table update. */
+typedef int (*rte_mtr_meter_vlan_table_update_t)(struct rte_eth_dev *dev,
+ uint32_t mtr_id,
+ enum rte_color *vlan_table,
+ struct rte_mtr_error *error);
+
+/** @internal Set the input color protocol on MTR object. */
+typedef int (*rte_mtr_meter_color_in_proto_set_t)(struct rte_eth_dev *dev,
uint32_t mtr_id,
- uint32_t action_mask,
- enum rte_mtr_policer_action *actions,
+ enum rte_mtr_color_in_protocol proto,
+ uint32_t priority,
struct rte_mtr_error *error);
-/**< @internal MTR object policer action update*/
+/** @internal Get the input color protocols of MTR object. */
+typedef int (*rte_mtr_meter_color_in_proto_get_t)(struct rte_eth_dev *dev,
+ uint32_t mtr_id,
+ uint64_t *proto_mask,
+ struct rte_mtr_error *error);
+
+/** @internal Get the input color protocol priority of MTR object. */
+typedef int (*rte_mtr_meter_color_in_proto_prio_get_t)(struct rte_eth_dev *dev,
+ uint32_t mtr_id,
+ enum rte_mtr_color_in_protocol proto,
+ uint32_t *priority,
+ struct rte_mtr_error *error);
+
+/** @internal MTR object enabled stats update. */
typedef int (*rte_mtr_stats_update_t)(struct rte_eth_dev *dev,
uint32_t mtr_id,
uint64_t stats_mask,
struct rte_mtr_error *error);
-/**< @internal MTR object enabled stats update */
+/** @internal MTR object stats read. */
typedef int (*rte_mtr_stats_read_t)(struct rte_eth_dev *dev,
uint32_t mtr_id,
struct rte_mtr_stats *stats,
uint64_t *stats_mask,
int clear,
struct rte_mtr_error *error);
-/**< @internal MTR object stats read */
struct rte_mtr_ops {
/** MTR capabilities get */
/** MTR object meter DSCP table update */
rte_mtr_meter_dscp_table_update_t meter_dscp_table_update;
- /** MTR object policer action update */
- rte_mtr_policer_actions_update_t policer_actions_update;
+ /** MTR object meter VLAN table update */
+ rte_mtr_meter_vlan_table_update_t meter_vlan_table_update;
+
+ /** Set the input color protocol on MTR object. */
+ rte_mtr_meter_color_in_proto_set_t in_proto_set;
+
+ /** Get the input color protocol of MTR object. */
+ rte_mtr_meter_color_in_proto_get_t in_proto_get;
+
+ /** Get the input color protocol priority of MTR object. */
+ rte_mtr_meter_color_in_proto_prio_get_t in_proto_prio_get;
/** MTR object enabled stats update */
rte_mtr_stats_update_t stats_update;
/** MTR object stats read */
rte_mtr_stats_read_t stats_read;
+
+ /** MTR meter policy validate */
+ rte_mtr_meter_policy_validate_t meter_policy_validate;
+
+ /** MTR meter policy add */
+ rte_mtr_meter_policy_add_t meter_policy_add;
+
+ /** MTR meter policy delete */
+ rte_mtr_meter_policy_delete_t meter_policy_delete;
+
+ /** MTR object meter policy update */
+ rte_mtr_meter_policy_update_t meter_policy_update;
};
/**