Lines Matching defs:pParams

493  * @param   pParams             The TCP parameters block.
497 static int netperfTCPThroughputSend(NETPERFPARAMS const *pParams, NETPERFHDR *pBuf, NETPERFSTATS *pSendStats)
511 RT_BZERO(pBuf, pParams->cbPacket);
521 rc = RTTimerLRStart(hTimer, pParams->cMsWarmup * UINT64_C(1000000) /* nsec */);
528 rc = RTTcpWrite(pParams->hSocket, pBuf, pParams->cbPacket);
546 rc = RTTimerLRStart(hTimer, pParams->cSecTimeout * UINT64_C(1000000000) /* nsec */);
554 rc = RTTcpWrite(pParams->hSocket, pBuf, pParams->cbPacket);
575 rc = RTTimerLRStart(hTimer, pParams->cMsCoolDown * UINT64_C(1000000) /* nsec */);
582 rc = RTTcpWrite(pParams->hSocket, pBuf, pParams->cbPacket);
602 rc = RTTcpWrite(pParams->hSocket, pBuf, pParams->cbPacket);
619 * @param pParams The TCP parameters block.
623 static int netperfTCPThroughputRecv(NETPERFPARAMS const *pParams, NETPERFHDR *pBuf, NETPERFSTATS *pStats)
635 rc = RTTcpRead(pParams->hSocket, pBuf, pParams->cbPacket, NULL);
660 if (pParams->fCheckData && uState == RT_H2LE_U32_C(NETPERFHDR_TESTING))
663 for (;i < pParams->cbPacket; ++i)
666 if (i != pParams->cbPacket)
787 * @param pParams The parameters to use for this test.
789 static int netperfTCPServerDoThroughput(NETPERFPARAMS const *pParams)
794 NETPERFHDR *pBuf = (NETPERFHDR *)RTMemAllocZ(pParams->cbPacket);
802 int rc = netperfTCPThroughputRecv(pParams, pBuf, &RecvStats);
805 rc = netperfSendStats(&RecvStats, pParams->hSocket);
809 rc = netperfTCPThroughputSend(pParams, pBuf, &SendStats);
812 rc = netperfSendStats(&SendStats, pParams->hSocket);
813 netperfPrintThroughputStats(&SendStats, &RecvStats, pParams->cbPacket);
825 * @param pParams The parameters to use for this test.
827 static int netperfTCPServerDoThroughputXmit(NETPERFPARAMS const *pParams)
832 NETPERFHDR *pBuf = (NETPERFHDR *)RTMemAllocZ(pParams->cbPacket);
840 int rc = netperfTCPThroughputRecv(pParams, pBuf, &RecvStats);
843 rc = netperfSendStats(&RecvStats, pParams->hSocket);
845 netperfPrintThroughputStats(NULL, &RecvStats, pParams->cbPacket);
855 * @param pParams The parameters to use for this test.
857 static int netperfTCPServerDoThroughputRecv(NETPERFPARAMS const *pParams)
862 NETPERFHDR *pBuf = (NETPERFHDR *)RTMemAllocZ(pParams->cbPacket);
870 int rc = netperfTCPThroughputSend(pParams, pBuf, &SendStats);
873 rc = netperfSendStats(&SendStats, pParams->hSocket);
875 netperfPrintThroughputStats(&SendStats, NULL, pParams->cbPacket);
885 * @param pParams The parameters to use for this test.
887 static int netperfTCPServerDoLatency(NETPERFPARAMS const *pParams)
889 NETPERFHDR *pBuf = (NETPERFHDR *)RTMemAllocZ(pParams->cbPacket);
891 return RTTestIFailedRc(VERR_NO_MEMORY, "Failed to allocated packet buffer of %u bytes.\n", pParams->cbPacket);
906 rc = RTTcpRead(pParams->hSocket, pBuf, pParams->cbPacket, NULL);
975 rc = RTTcpWrite(pParams->hSocket, pBuf, pParams->cbPacket);
989 netperfSendStats(&Stats, pParams->hSocket);
993 netperfPrintLatencyStats(&Stats, pParams->cbPacket);
1003 * @param pParams The parameter structure to store the parameters
1007 static int netperfTCPServerParseParams(NETPERFPARAMS *pParams, char *pszParams)
1012 pParams->fNoDelay = false;
1013 pParams->enmMode = NETPERFMODE_LATENCY;
1014 pParams->cSecTimeout = NETPERF_DEFAULT_WARMUP;
1015 pParams->cMsCoolDown = NETPERF_DEFAULT_COOL_DOWN;
1016 pParams->cMsWarmup = NETPERF_DEFAULT_WARMUP;
1017 pParams->cbPacket = NETPERF_DEFAULT_PKT_SIZE_LATENCY;
1039 pParams->enmMode = netperfModeFromString(pszCur);
1040 if (pParams->enmMode == NETPERFMODE_INVALID)
1057 { false, true, &pParams->cSecTimeout, NETPERF_MIN_TIMEOUT, NETPERF_MAX_TIMEOUT, "timeout" },
1058 { false, true, &pParams->cbPacket, NETPERF_MIN_PKT_SIZE, NETPERF_MAX_PKT_SIZE, "packet size" },
1059 { false, true, &pParams->cMsWarmup, NETPERF_MIN_WARMUP, NETPERF_MAX_WARMUP, "warmup period" },
1060 { false, true, &pParams->cMsCoolDown, NETPERF_MIN_COOL_DOWN, NETPERF_MAX_COOL_DOWN, "cool down period" },
1061 { true, true, &pParams->fNoDelay, false, true, "no delay" },
1109 NETPERFPARAMS *pParams = (NETPERFPARAMS *)pvUser;
1110 AssertReturn(pParams, VERR_INVALID_POINTER);
1112 pParams->hSocket = hSocket;
1157 rc = netperfTCPServerParseParams(pParams, szBuf);
1168 netperfModeToString(pParams->enmMode), pParams->cSecTimeout, pParams->cbPacket);
1171 netperfModeToString(pParams->enmMode), pParams->cSecTimeout, pParams->cbPacket);
1173 rc = RTTcpSetSendCoalescing(hSocket, !pParams->fNoDelay);
1175 return RTTestIFailedRc(rc, "Failed to apply no-delay option (%RTbool): %Rrc\n", pParams->fNoDelay, rc);
1184 switch (pParams->enmMode)
1187 rc = netperfTCPServerDoLatency(pParams);
1191 rc = netperfTCPServerDoThroughput(pParams);
1195 rc = netperfTCPServerDoThroughputXmit(pParams);
1199 rc = netperfTCPServerDoThroughputRecv(pParams);
1214 if (pParams->fSingleClient)
1224 * @param pParams The TCP parameter block.
1226 static int netperfTCPServer(NETPERFPARAMS *pParams)
1232 int rc = RTTcpServerCreateEx(NULL, pParams->uPort, &pServer);
1235 RTPrintf("Server listening on TCP port %d\n", pParams->uPort);
1236 rc = RTTcpServerListen(pServer, netperfTCPServerWorker, pParams);
1250 * @param pParams The parameter block.
1252 static RTEXITCODE netperfServer(NETPERFPROTO enmProto, NETPERFPARAMS *pParams)
1259 int rc = netperfTCPServer(pParams);
1277 * @param pParams The parameters.
1279 static int netperfTCPClientDoThroughput(NETPERFPARAMS *pParams)
1284 NETPERFHDR *pBuf = (NETPERFHDR *)RTMemAllocZ(pParams->cbPacket);
1292 int rc = netperfTCPThroughputSend(pParams, pBuf, &SendStats);
1296 rc = netperfRecvStats(&SrvSendStats, pParams->hSocket);
1300 rc = netperfTCPThroughputRecv(pParams, pBuf, &RecvStats);
1304 rc = netperfRecvStats(&SrvRecvStats, pParams->hSocket);
1307 if (pParams->fServerStats)
1308 netperfPrintThroughputStats(&SrvSendStats, &SrvRecvStats, pParams->cbPacket);
1310 netperfPrintThroughputStats(&SendStats, &RecvStats, pParams->cbPacket);
1324 * @param pParams The parameters.
1326 static int netperfTCPClientDoThroughputXmit(NETPERFPARAMS *pParams)
1331 NETPERFHDR *pBuf = (NETPERFHDR *)RTMemAllocZ(pParams->cbPacket);
1339 int rc = netperfTCPThroughputSend(pParams, pBuf, &SendStats);
1343 rc = netperfRecvStats(&SrvSendStats, pParams->hSocket);
1346 if (pParams->fServerStats)
1347 netperfPrintThroughputStats(&SrvSendStats, NULL, pParams->cbPacket);
1349 netperfPrintThroughputStats(&SendStats, NULL, pParams->cbPacket);
1361 * @param pParams The parameters.
1363 static int netperfTCPClientDoThroughputRecv(NETPERFPARAMS *pParams)
1368 NETPERFHDR *pBuf = (NETPERFHDR *)RTMemAllocZ(pParams->cbPacket);
1376 int rc = netperfTCPThroughputRecv(pParams, pBuf, &RecvStats);
1380 rc = netperfRecvStats(&SrvRecvStats, pParams->hSocket);
1383 if (pParams->fServerStats)
1384 netperfPrintThroughputStats(NULL, &SrvRecvStats, pParams->cbPacket);
1386 netperfPrintThroughputStats(NULL, &RecvStats, pParams->cbPacket);
1398 * @param pParams The parameters.
1400 static int netperfTCPClientDoLatency(NETPERFPARAMS *pParams)
1406 void *pvReadBuf = RTMemAllocZ(pParams->cbPacket);
1414 apPackets[i] = (NETPERFHDR *)RTMemAllocZ(pParams->cbPacket);
1421 RTRandBytes(apPackets[i], pParams->cbPacket);
1443 rc = RTTimerLRStart(hTimer, pParams->cMsWarmup * UINT64_C(1000000) /* nsec */);
1452 rc = RTTcpWrite(pParams->hSocket, pPacket, pParams->cbPacket);
1458 rc = RTTcpRead(pParams->hSocket, pvReadBuf, pParams->cbPacket, NULL);
1475 rc = RTTimerLRStart(hTimer, pParams->cSecTimeout * UINT64_C(1000000000) /* nsec */);
1485 rc = RTTcpWrite(pParams->hSocket, pPacket, pParams->cbPacket);
1493 rc = RTTcpRead(pParams->hSocket, pvReadBuf, pParams->cbPacket, NULL);
1501 if (!memcmp(pvReadBuf, pPacket, pParams->cbPacket))
1518 rc = RTTimerLRStart(hTimer, pParams->cMsCoolDown * UINT64_C(1000000) /* nsec */);
1527 rc = RTTcpWrite(pParams->hSocket, pPacket, pParams->cbPacket);
1533 rc = RTTcpRead(pParams->hSocket, pvReadBuf, pParams->cbPacket, NULL);
1554 rc = RTTcpWrite(pParams->hSocket, pPacket, pParams->cbPacket);
1566 rc = netperfRecvStats(&SrvStats, pParams->hSocket);
1567 if (RT_SUCCESS(rc) && pParams->fServerStats)
1568 netperfPrintLatencyStats(&SrvStats, pParams->cbPacket);
1569 else if (!pParams->fServerStats)
1570 netperfPrintLatencyStats(&Stats, pParams->cbPacket);
1589 * @param pParams The parameter structure.
1591 static int netperfTCPClient(const char *pszServer, NETPERFPARAMS *pParams)
1593 AssertReturn(pParams, VERR_INVALID_POINTER);
1594 RTTestISubF("TCP - %u s, %u bytes%s", pParams->cSecTimeout,
1595 pParams->cbPacket, pParams->fNoDelay ? ", no delay" : "");
1598 int rc = RTTcpClientConnect(pszServer, pParams->uPort, &hSocket);
1600 return RTTestIFailedRc(rc, "Failed to connect to %s on port %u: %Rrc\n", pszServer, pParams->uPort, rc);
1601 pParams->hSocket = hSocket;
1606 if (pParams->fNoDelay)
1634 netperfModeToString(pParams->enmMode),
1635 pParams->cSecTimeout,
1636 pParams->cbPacket,
1637 pParams->cMsWarmup,
1638 pParams->cMsCoolDown,
1639 pParams->fNoDelay);
1656 return RTTestIFailedRc(VERR_NET_PROTOCOL_ERROR, "Server failed to accept packet size of %u bytes.\n", pParams->cbPacket);
1663 switch (pParams->enmMode)
1667 pszServer, pParams->uPort, pParams->cSecTimeout);
1668 rc = netperfTCPClientDoLatency(pParams);
1673 pszServer, pParams->uPort, pParams->cSecTimeout);
1674 rc = netperfTCPClientDoThroughput(pParams);
1679 pszServer, pParams->uPort, pParams->cSecTimeout);
1680 rc = netperfTCPClientDoThroughputXmit(pParams);
1685 pszServer, pParams->uPort, pParams->cSecTimeout);
1686 rc = netperfTCPClientDoThroughputRecv(pParams);
1703 * @param pParams The parameter block.
1711 NETPERFPARAMS *pParams = (NETPERFPARAMS *)pvUser;
1712 int rc = netperfTCPClient(pszServer, pParams);
1713 if (pParams->hSocket != NIL_RTSOCKET)
1715 RTTcpClientClose(pParams->hSocket);
1716 pParams->hSocket = NIL_RTSOCKET;