MCPcopy Create free account
hub / github.com/F-Stack/f-stack / create_meter_profile

Function create_meter_profile

dpdk/app/test-flow-perf/main.c:1283–1317  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1281}
1282
1283static void
1284create_meter_profile(void)
1285{
1286 uint16_t nr_ports;
1287 int ret, port_id;
1288 struct rte_mtr_meter_profile mp;
1289 struct rte_mtr_error error;
1290
1291 /*
1292 *currently , only create one meter file for one port
1293 *1 meter profile -> N meter rules -> N rte flows
1294 */
1295 memset(&mp, 0, sizeof(struct rte_mtr_meter_profile));
1296 nr_ports = rte_eth_dev_count_avail();
1297 for (port_id = 0; port_id < nr_ports; port_id++) {
1298 /* If port outside portmask */
1299 if (!((ports_mask >> port_id) & 0x1))
1300 continue;
1301 mp.alg = RTE_MTR_SRTCM_RFC2697;
1302 mp.srtcm_rfc2697.cir = meter_profile_values[0] ?
1303 meter_profile_values[0] : METER_CIR;
1304 mp.srtcm_rfc2697.cbs = meter_profile_values[1] ?
1305 meter_profile_values[1] : METER_CIR / 8;
1306 mp.srtcm_rfc2697.ebs = meter_profile_values[2];
1307 mp.packet_mode = packet_mode;
1308 ret = rte_mtr_meter_profile_add
1309 (port_id, DEFAULT_METER_PROF_ID, &mp, &error);
1310 if (ret != 0) {
1311 printf("Port %u create Profile error(%d) message: %s\n",
1312 port_id, error.type,
1313 error.message ? error.message : "(no stated reason)");
1314 rte_exit(EXIT_FAILURE, "Error: Creation meter profile Failed!\n");
1315 }
1316 }
1317}
1318
1319static inline void
1320destroy_flows(int port_id, uint8_t core_id, struct rte_flow **flows_list)

Callers 1

mainFunction · 0.85

Calls 5

memsetFunction · 0.85
rte_eth_dev_count_availFunction · 0.85
rte_exitFunction · 0.85
printfFunction · 0.50

Tested by

no test coverage detected