| 1149 | } |
| 1150 | |
| 1151 | static void |
| 1152 | create_meter_rule(int port_id, uint32_t counter) |
| 1153 | { |
| 1154 | int ret; |
| 1155 | struct rte_mtr_params params; |
| 1156 | struct rte_mtr_error error; |
| 1157 | |
| 1158 | memset(¶ms, 0, sizeof(struct rte_mtr_params)); |
| 1159 | params.meter_enable = 1; |
| 1160 | params.stats_mask = 0xffff; |
| 1161 | params.use_prev_mtr_color = 0; |
| 1162 | params.dscp_table = NULL; |
| 1163 | |
| 1164 | /*create meter*/ |
| 1165 | params.meter_profile_id = DEFAULT_METER_PROF_ID; |
| 1166 | |
| 1167 | if (!policy_mtr) { |
| 1168 | ret = rte_mtr_create(port_id, counter, ¶ms, 1, &error); |
| 1169 | } else { |
| 1170 | params.meter_policy_id = policy_id[port_id]; |
| 1171 | ret = rte_mtr_create(port_id, counter, ¶ms, 0, &error); |
| 1172 | } |
| 1173 | |
| 1174 | if (ret != 0) { |
| 1175 | printf("Port %u create meter idx(%d) error(%d) message: %s\n", |
| 1176 | port_id, counter, error.type, |
| 1177 | error.message ? error.message : "(no stated reason)"); |
| 1178 | rte_exit(EXIT_FAILURE, "Error in creating meter\n"); |
| 1179 | } |
| 1180 | } |
| 1181 | |
| 1182 | static void |
| 1183 | destroy_meter_rule(int port_id, uint32_t counter) |
no test coverage detected