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

Function test19

dpdk/app/test/test_lpm.c:1290–1343  ·  view source on GitHub ↗

* rte_lpm_rcu_qsbr_add positive and negative tests. * - Add RCU QSBR variable to LPM * - Add another RCU QSBR variable to LPM * - Check returns */

Source from the content-addressed store, hash-verified

1288 * - Check returns
1289 */
1290int32_t
1291test19(void)
1292{
1293 struct rte_lpm *lpm = NULL;
1294 struct rte_lpm_config config;
1295 size_t sz;
1296 struct rte_rcu_qsbr *qsv;
1297 struct rte_rcu_qsbr *qsv2;
1298 int32_t status;
1299 struct rte_lpm_rcu_config rcu_cfg = {0};
1300
1301 config.max_rules = MAX_RULES;
1302 config.number_tbl8s = NUMBER_TBL8S;
1303 config.flags = 0;
1304
1305 lpm = rte_lpm_create(__func__, SOCKET_ID_ANY, &config);
1306 TEST_LPM_ASSERT(lpm != NULL);
1307
1308 /* Create RCU QSBR variable */
1309 sz = rte_rcu_qsbr_get_memsize(RTE_MAX_LCORE);
1310 qsv = (struct rte_rcu_qsbr *)rte_zmalloc_socket(NULL, sz,
1311 RTE_CACHE_LINE_SIZE, SOCKET_ID_ANY);
1312 TEST_LPM_ASSERT(qsv != NULL);
1313
1314 status = rte_rcu_qsbr_init(qsv, RTE_MAX_LCORE);
1315 TEST_LPM_ASSERT(status == 0);
1316
1317 rcu_cfg.v = qsv;
1318 /* Invalid QSBR mode */
1319 rcu_cfg.mode = 2;
1320 status = rte_lpm_rcu_qsbr_add(lpm, &rcu_cfg);
1321 TEST_LPM_ASSERT(status != 0);
1322
1323 rcu_cfg.mode = RTE_LPM_QSBR_MODE_DQ;
1324 /* Attach RCU QSBR to LPM table */
1325 status = rte_lpm_rcu_qsbr_add(lpm, &rcu_cfg);
1326 TEST_LPM_ASSERT(status == 0);
1327
1328 /* Create and attach another RCU QSBR to LPM table */
1329 qsv2 = (struct rte_rcu_qsbr *)rte_zmalloc_socket(NULL, sz,
1330 RTE_CACHE_LINE_SIZE, SOCKET_ID_ANY);
1331 TEST_LPM_ASSERT(qsv2 != NULL);
1332
1333 rcu_cfg.v = qsv2;
1334 rcu_cfg.mode = RTE_LPM_QSBR_MODE_SYNC;
1335 status = rte_lpm_rcu_qsbr_add(lpm, &rcu_cfg);
1336 TEST_LPM_ASSERT(status != 0);
1337
1338 rte_lpm_free(lpm);
1339 rte_free(qsv);
1340 rte_free(qsv2);
1341
1342 return PASS;
1343}
1344
1345/*
1346 * rte_lpm_rcu_qsbr_add DQ mode functional test.

Callers

nothing calls this directly

Calls 7

rte_rcu_qsbr_get_memsizeFunction · 0.85
rte_zmalloc_socketFunction · 0.85
rte_rcu_qsbr_initFunction · 0.85
rte_lpm_rcu_qsbr_addFunction · 0.85
rte_freeFunction · 0.85
rte_lpm_createFunction · 0.50
rte_lpm_freeFunction · 0.50

Tested by

no test coverage detected