X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Fsoftnic%2Frte_eth_softnic_internals.h;h=1b3186ef0bdb2b3f2050504865e7f2cc93eb180f;hb=21b1677d87a23a9695be0cbcbdf38607a2d58f84;hp=08bc6605106430f63d5e8851814235b658719bae;hpb=186b14d6850654eb84a8ae9ea29b736f0ba5e093;p=dpdk.git diff --git a/drivers/net/softnic/rte_eth_softnic_internals.h b/drivers/net/softnic/rte_eth_softnic_internals.h index 08bc660510..1b3186ef0b 100644 --- a/drivers/net/softnic/rte_eth_softnic_internals.h +++ b/drivers/net/softnic/rte_eth_softnic_internals.h @@ -19,7 +19,7 @@ #include #include -#include +#include #include #include #include @@ -83,6 +83,16 @@ struct softnic_mtr_meter_profile { TAILQ_HEAD(softnic_mtr_meter_profile_list, softnic_mtr_meter_profile); +/* MTR meter policy */ +struct softnic_mtr_meter_policy { + TAILQ_ENTRY(softnic_mtr_meter_policy) node; + uint32_t meter_policy_id; + enum rte_table_action_policer policer[RTE_COLORS]; + uint32_t n_users; +}; + +TAILQ_HEAD(softnic_mtr_meter_policy_list, softnic_mtr_meter_policy); + /* MTR meter object */ struct softnic_mtr { TAILQ_ENTRY(softnic_mtr) node; @@ -95,6 +105,7 @@ TAILQ_HEAD(softnic_mtr_list, softnic_mtr); struct mtr_internals { struct softnic_mtr_meter_profile_list meter_profiles; + struct softnic_mtr_meter_policy_list meter_policies; struct softnic_mtr_list mtrs; }; @@ -161,13 +172,22 @@ TAILQ_HEAD(softnic_link_list, softnic_link); #define TM_MAX_PIPES_PER_SUBPORT 4096 #endif +#ifndef TM_MAX_PIPE_PROFILE +#define TM_MAX_PIPE_PROFILE 256 +#endif + +#ifndef TM_MAX_SUBPORT_PROFILE +#define TM_MAX_SUBPORT_PROFILE 256 +#endif + struct tm_params { struct rte_sched_port_params port_params; - struct rte_sched_subport_params subport_params[TM_MAX_SUBPORTS]; - - struct rte_sched_pipe_params - pipe_profiles[RTE_SCHED_PIPE_PROFILES_PER_PORT]; + struct rte_sched_subport_profile_params + subport_profile[TM_MAX_SUBPORT_PROFILE]; + uint32_t n_subport_profiles; + uint32_t subport_to_profile[TM_MAX_SUBPORT_PROFILE]; + struct rte_sched_pipe_params pipe_profiles[TM_MAX_PIPE_PROFILE]; uint32_t n_pipe_profiles; uint32_t pipe_to_profile[TM_MAX_SUBPORTS * TM_MAX_PIPES_PER_SUBPORT]; }; @@ -545,7 +565,7 @@ TAILQ_HEAD(pipeline_list, pipeline); #endif /** - * Master thead: data plane thread context + * Main thread: data plane thread context */ struct softnic_thread { struct rte_ring *msgq_req; @@ -669,6 +689,10 @@ struct softnic_mtr_meter_profile * softnic_mtr_meter_profile_find(struct pmd_internals *p, uint32_t meter_profile_id); +struct softnic_mtr_meter_policy * +softnic_mtr_meter_policy_find(struct pmd_internals *p, + uint32_t meter_policy_id); + extern const struct rte_mtr_ops pmd_mtr_ops; /** @@ -832,9 +856,6 @@ softnic_table_action_profile_create(struct pmd_internals *p, const char *name, struct softnic_table_action_profile_params *params); -enum rte_table_action_policer -softnic_table_action_policer(enum rte_mtr_policer_action action); - /** * Pipeline */