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

Function parse_and_check_speed_duplex

dpdk/app/test-pmd/cmdline.c:1357–1417  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1355};
1356
1357static int
1358parse_and_check_speed_duplex(char *speedstr, char *duplexstr, uint32_t *speed)
1359{
1360
1361 int duplex;
1362
1363 if (!strcmp(duplexstr, "half")) {
1364 duplex = RTE_ETH_LINK_HALF_DUPLEX;
1365 } else if (!strcmp(duplexstr, "full")) {
1366 duplex = RTE_ETH_LINK_FULL_DUPLEX;
1367 } else if (!strcmp(duplexstr, "auto")) {
1368 duplex = RTE_ETH_LINK_FULL_DUPLEX;
1369 } else {
1370 fprintf(stderr, "Unknown duplex parameter\n");
1371 return -1;
1372 }
1373
1374 if (!strcmp(speedstr, "10")) {
1375 *speed = (duplex == RTE_ETH_LINK_HALF_DUPLEX) ?
1376 RTE_ETH_LINK_SPEED_10M_HD : RTE_ETH_LINK_SPEED_10M;
1377 } else if (!strcmp(speedstr, "100")) {
1378 *speed = (duplex == RTE_ETH_LINK_HALF_DUPLEX) ?
1379 RTE_ETH_LINK_SPEED_100M_HD : RTE_ETH_LINK_SPEED_100M;
1380 } else {
1381 if (duplex != RTE_ETH_LINK_FULL_DUPLEX) {
1382 fprintf(stderr, "Invalid speed/duplex parameters\n");
1383 return -1;
1384 }
1385 if (!strcmp(speedstr, "1000")) {
1386 *speed = RTE_ETH_LINK_SPEED_1G;
1387 } else if (!strcmp(speedstr, "2500")) {
1388 *speed = RTE_ETH_LINK_SPEED_2_5G;
1389 } else if (!strcmp(speedstr, "5000")) {
1390 *speed = RTE_ETH_LINK_SPEED_5G;
1391 } else if (!strcmp(speedstr, "10000")) {
1392 *speed = RTE_ETH_LINK_SPEED_10G;
1393 } else if (!strcmp(speedstr, "25000")) {
1394 *speed = RTE_ETH_LINK_SPEED_25G;
1395 } else if (!strcmp(speedstr, "40000")) {
1396 *speed = RTE_ETH_LINK_SPEED_40G;
1397 } else if (!strcmp(speedstr, "50000")) {
1398 *speed = RTE_ETH_LINK_SPEED_50G;
1399 } else if (!strcmp(speedstr, "100000")) {
1400 *speed = RTE_ETH_LINK_SPEED_100G;
1401 } else if (!strcmp(speedstr, "200000")) {
1402 *speed = RTE_ETH_LINK_SPEED_200G;
1403 } else if (!strcmp(speedstr, "400000")) {
1404 *speed = RTE_ETH_LINK_SPEED_400G;
1405 } else if (!strcmp(speedstr, "auto")) {
1406 *speed = RTE_ETH_LINK_SPEED_AUTONEG;
1407 } else {
1408 fprintf(stderr, "Unknown speed parameter\n");
1409 return -1;
1410 }
1411 }
1412
1413 if (*speed != RTE_ETH_LINK_SPEED_AUTONEG)
1414 *speed |= RTE_ETH_LINK_SPEED_FIXED;

Callers 2

Calls 1

strcmpFunction · 0.85

Tested by

no test coverage detected