mm-iot-sdk/framework/doc/html/group__MMIPERF.html
Morse Micro 4f4eb7fc7a Morse Micro MM-IoT-SDK release 2.9.7
This commit introduces version 2.9.7 of the Morse Micro MM-IoT-SDK
for ARM microcontroller base platforms.
2025-10-04 02:04:28 +10:00

711 lines
49 KiB
HTML

<!-- HTML header for doxygen 1.8.17-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Morse Micro IoT SDK: Morse Micro Iperf</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="style.css" rel="stylesheet" type="text/css"/>
<link rel="shortcut icon" href="favicon.svg" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Morse Micro IoT SDK
&#160;<span id="projectnumber">2.9.7</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('group__MMIPERF.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle"><div class="title">Morse Micro Iperf<div class="ingroups"><a class="el" href="group__MMAPP.html">Application Layer Protocol APIs</a></div></div></div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p >This is an iperf implementation that supports both TCP and UDP. </p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmmiperf__report.html">mmiperf_report</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Report data structure. <a href="structmmiperf__report.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmmiperf__client__args.html">mmiperf_client_args</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Iperf client arguments data structure. <a href="structmmiperf__client__args.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmmiperf__server__args.html">mmiperf_server_args</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Iperf server arguments data structure. <a href="structmmiperf__server__args.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:gaa013e4cb9e22aa75347f3acf47e901d0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__MMIPERF.html#gaa013e4cb9e22aa75347f3acf47e901d0">BLOCK_DURATION_MS</a>&#160;&#160;&#160;200</td></tr>
<tr class="memdesc:gaa013e4cb9e22aa75347f3acf47e901d0"><td class="mdescLeft">&#160;</td><td class="mdescRight">If a bandwidth limit is set then we divide transmission into blocks and limit the amount of data that can be sent per block. <a href="group__MMIPERF.html#gaa013e4cb9e22aa75347f3acf47e901d0">More...</a><br /></td></tr>
<tr class="separator:gaa013e4cb9e22aa75347f3acf47e901d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacce2ea31d2fc21aa46f979e157250053"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__MMIPERF.html#gacce2ea31d2fc21aa46f979e157250053">IPV6_HEADER_SIZE_DIFF</a>&#160;&#160;&#160;(20)</td></tr>
<tr class="memdesc:gacce2ea31d2fc21aa46f979e157250053"><td class="mdescLeft">&#160;</td><td class="mdescRight">Difference between <code>IPv4</code> and <code>IPv6</code> Header size in bytes. <a href="group__MMIPERF.html#gacce2ea31d2fc21aa46f979e157250053">More...</a><br /></td></tr>
<tr class="separator:gacce2ea31d2fc21aa46f979e157250053"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa02eb362024d33a91fbe31c45d211b47"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__MMIPERF.html#gaa02eb362024d33a91fbe31c45d211b47">MMIPERF_DEFAULT_PORT</a>&#160;&#160;&#160;(5001)</td></tr>
<tr class="memdesc:gaa02eb362024d33a91fbe31c45d211b47"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default port for TCP and UDP iperf. <a href="group__MMIPERF.html#gaa02eb362024d33a91fbe31c45d211b47">More...</a><br /></td></tr>
<tr class="separator:gaa02eb362024d33a91fbe31c45d211b47"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6ab851d1585d69524e779e2a7532358f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__MMIPERF.html#ga6ab851d1585d69524e779e2a7532358f">MMIPERF_DEFAULT_UDP_PACKET_SIZE_V4</a>&#160;&#160;&#160;(1460)</td></tr>
<tr class="memdesc:ga6ab851d1585d69524e779e2a7532358f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default packet size for <code>IPv4</code> UDP iperf. <a href="group__MMIPERF.html#ga6ab851d1585d69524e779e2a7532358f">More...</a><br /></td></tr>
<tr class="separator:ga6ab851d1585d69524e779e2a7532358f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1b07a023ba2aa0c77384bb1fedb99a41"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__MMIPERF.html#ga1b07a023ba2aa0c77384bb1fedb99a41">MMIPERF_DEFAULT_UDP_PACKET_SIZE_V6</a>&#160;&#160;&#160;(1440)</td></tr>
<tr class="memdesc:ga1b07a023ba2aa0c77384bb1fedb99a41"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default packet size for <code>IPv4</code> UDP iperf. <a href="group__MMIPERF.html#ga1b07a023ba2aa0c77384bb1fedb99a41">More...</a><br /></td></tr>
<tr class="separator:ga1b07a023ba2aa0c77384bb1fedb99a41"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3048e920630fa51f6301f3022b7bf639"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__MMIPERF.html#ga3048e920630fa51f6301f3022b7bf639">MMIPERF_DEFAULT_AMOUNT</a>&#160;&#160;&#160;(-1000)</td></tr>
<tr class="memdesc:ga3048e920630fa51f6301f3022b7bf639"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default amount iperf (negative number indicates a time in hundredths of seconds, a positive value indicates a number of bytes). <a href="group__MMIPERF.html#ga3048e920630fa51f6301f3022b7bf639">More...</a><br /></td></tr>
<tr class="separator:ga3048e920630fa51f6301f3022b7bf639"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5c6ce79aabc8ef67ffcb185552e417d8"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__MMIPERF.html#ga5c6ce79aabc8ef67ffcb185552e417d8">MMIPERF_DEFAULT_BANDWIDTH</a>&#160;&#160;&#160;(0)</td></tr>
<tr class="memdesc:ga5c6ce79aabc8ef67ffcb185552e417d8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default bandwidth limit for iperf (in kbps) <a href="group__MMIPERF.html#ga5c6ce79aabc8ef67ffcb185552e417d8">More...</a><br /></td></tr>
<tr class="separator:ga5c6ce79aabc8ef67ffcb185552e417d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacbd53afcfa9f34f8855320f0aad2d6a5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__MMIPERF.html#gacbd53afcfa9f34f8855320f0aad2d6a5">MMIPERF_IPADDR_MAXLEN</a>&#160;&#160;&#160;(48)</td></tr>
<tr class="memdesc:gacbd53afcfa9f34f8855320f0aad2d6a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum length of an IP address string including null-terminator. <a href="group__MMIPERF.html#gacbd53afcfa9f34f8855320f0aad2d6a5">More...</a><br /></td></tr>
<tr class="separator:gacbd53afcfa9f34f8855320f0aad2d6a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7bde22e4d975d9be260e57be375e3c96"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__MMIPERF.html#ga7bde22e4d975d9be260e57be375e3c96">MMIPERF_STACK_SIZE</a>&#160;&#160;&#160;512</td></tr>
<tr class="memdesc:ga7bde22e4d975d9be260e57be375e3c96"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default stack to use for MMIPERF tasks. <a href="group__MMIPERF.html#ga7bde22e4d975d9be260e57be375e3c96">More...</a><br /></td></tr>
<tr class="separator:ga7bde22e4d975d9be260e57be375e3c96"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4f10814c20514ad3a82f6b084d11edc2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__MMIPERF.html#ga4f10814c20514ad3a82f6b084d11edc2">MMIPERF_CLIENT_ARGS_DEFAULT</a></td></tr>
<tr class="memdesc:ga4f10814c20514ad3a82f6b084d11edc2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializer for <a class="el" href="structmmiperf__client__args.html">mmiperf_client_args</a>. <a href="group__MMIPERF.html#ga4f10814c20514ad3a82f6b084d11edc2">More...</a><br /></td></tr>
<tr class="separator:ga4f10814c20514ad3a82f6b084d11edc2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad0beef7190209bfc21f9adbc54255686"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__MMIPERF.html#gad0beef7190209bfc21f9adbc54255686">MMIPERF_SERVER_ARGS_DEFAULT</a></td></tr>
<tr class="memdesc:gad0beef7190209bfc21f9adbc54255686"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializer for <a class="el" href="structmmiperf__server__args.html">mmiperf_server_args</a>. <a href="group__MMIPERF.html#gad0beef7190209bfc21f9adbc54255686">More...</a><br /></td></tr>
<tr class="separator:gad0beef7190209bfc21f9adbc54255686"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="typedef-members" name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:gad922644134c6319c84f738c60d5c8301"><td class="memItemLeft" align="right" valign="top">typedef struct mmiperf_state *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__MMIPERF.html#gad922644134c6319c84f738c60d5c8301">mmiperf_handle_t</a></td></tr>
<tr class="memdesc:gad922644134c6319c84f738c60d5c8301"><td class="mdescLeft">&#160;</td><td class="mdescRight">Iperf client/server handle. <a href="group__MMIPERF.html#gad922644134c6319c84f738c60d5c8301">More...</a><br /></td></tr>
<tr class="separator:gad922644134c6319c84f738c60d5c8301"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga94a06d5ec557103dd3310e0c0a158583"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__MMIPERF.html#ga94a06d5ec557103dd3310e0c0a158583">mmiperf_report_fn</a>) (const struct <a class="el" href="structmmiperf__report.html">mmiperf_report</a> *report, void *arg, <a class="el" href="group__MMIPERF.html#gad922644134c6319c84f738c60d5c8301">mmiperf_handle_t</a> handle)</td></tr>
<tr class="memdesc:ga94a06d5ec557103dd3310e0c0a158583"><td class="mdescLeft">&#160;</td><td class="mdescRight">Report callback function prototype. <a href="group__MMIPERF.html#ga94a06d5ec557103dd3310e0c0a158583">More...</a><br /></td></tr>
<tr class="separator:ga94a06d5ec557103dd3310e0c0a158583"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="enum-members" name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:ga7b67e7f7ee9517307f9037835fc7f2ee"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__MMIPERF.html#ga7b67e7f7ee9517307f9037835fc7f2ee">mmiperf_report_type</a> { <br />
&#160;&#160;<a class="el" href="group__MMIPERF.html#gga7b67e7f7ee9517307f9037835fc7f2eeae9ec9ff1a4b18cf2cab11bf2de9525c4">MMIPERF_TCP_DONE_SERVER</a>
, <a class="el" href="group__MMIPERF.html#gga7b67e7f7ee9517307f9037835fc7f2eea27f46efff531edf3c97f06dc8e407d47">MMIPERF_TCP_DONE_CLIENT</a>
, <a class="el" href="group__MMIPERF.html#gga7b67e7f7ee9517307f9037835fc7f2eea26a228d6b895eeecf6fbfbd70f045c6a">MMIPERF_TCP_ABORTED_LOCAL</a>
, <a class="el" href="group__MMIPERF.html#gga7b67e7f7ee9517307f9037835fc7f2eea51361f14ceefa0e7710da61e39bdaa25">MMIPERF_TCP_ABORTED_LOCAL_DATAERROR</a>
, <br />
&#160;&#160;<a class="el" href="group__MMIPERF.html#gga7b67e7f7ee9517307f9037835fc7f2eea18f34566b974c5d19006238e76130449">MMIPERF_TCP_ABORTED_LOCAL_TXERROR</a>
, <a class="el" href="group__MMIPERF.html#gga7b67e7f7ee9517307f9037835fc7f2eea43d3dd076f296d508c8ba2f9006a3b01">MMIPERF_TCP_ABORTED_REMOTE</a>
, <a class="el" href="group__MMIPERF.html#gga7b67e7f7ee9517307f9037835fc7f2eeab5b6fd297fd7a50f6861e91709553aa8">MMIPERF_UDP_DONE_SERVER</a>
, <a class="el" href="group__MMIPERF.html#gga7b67e7f7ee9517307f9037835fc7f2eea08e59155cc22da9449201ea737be1761">MMIPERF_UDP_DONE_CLIENT</a>
, <br />
&#160;&#160;<a class="el" href="group__MMIPERF.html#gga7b67e7f7ee9517307f9037835fc7f2eea26634f39378587f549478c26d13a4375">MMIPERF_INTERRIM_REPORT</a>
<br />
}</td></tr>
<tr class="memdesc:ga7b67e7f7ee9517307f9037835fc7f2ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enumeration of iperf report types. <a href="group__MMIPERF.html#ga7b67e7f7ee9517307f9037835fc7f2ee">More...</a><br /></td></tr>
<tr class="separator:ga7b67e7f7ee9517307f9037835fc7f2ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga509c8a42171b7e6ece4d791e75e3c927"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__MMIPERF.html#ga509c8a42171b7e6ece4d791e75e3c927">traffic_agent_state</a> { <a class="el" href="group__MMIPERF.html#gga509c8a42171b7e6ece4d791e75e3c927a628c91ae4a589fe68d95d9092a010b10">TRAFFIC_AGENT_NOT_STARTED</a>
, <a class="el" href="group__MMIPERF.html#gga509c8a42171b7e6ece4d791e75e3c927a796f97b101c4c1f1984dc17db9385777">TRAFFIC_AGENT_RUNNING</a>
, <a class="el" href="group__MMIPERF.html#gga509c8a42171b7e6ece4d791e75e3c927a42e944ee3bdf92a9d8b3f166effc57d8">TRAFFIC_AGENT_STOPPED</a>
}</td></tr>
<tr class="memdesc:ga509c8a42171b7e6ece4d791e75e3c927"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enumeration of traffic agent state. <a href="group__MMIPERF.html#ga509c8a42171b7e6ece4d791e75e3c927">More...</a><br /></td></tr>
<tr class="separator:ga509c8a42171b7e6ece4d791e75e3c927"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa1fc3bae5d5847c9e2d5a5a2a264a9da"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__MMIPERF.html#gaa1fc3bae5d5847c9e2d5a5a2a264a9da">iperf_version</a> { <a class="el" href="group__MMIPERF.html#ggaa1fc3bae5d5847c9e2d5a5a2a264a9daa611cb8c6d4f1309605b36b5cefc2251e">IPERF_VERSION_2_0_13</a>
, <a class="el" href="group__MMIPERF.html#ggaa1fc3bae5d5847c9e2d5a5a2a264a9daa77187ded8b5f12e29fe9efaadcf56e1f">IPERF_VERSION_2_0_9</a>
}</td></tr>
<tr class="memdesc:gaa1fc3bae5d5847c9e2d5a5a2a264a9da"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enumeration of Iperf versions. <a href="group__MMIPERF.html#gaa1fc3bae5d5847c9e2d5a5a2a264a9da">More...</a><br /></td></tr>
<tr class="separator:gaa1fc3bae5d5847c9e2d5a5a2a264a9da"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga61d51224cc9d3c26ecf297bb0062a82d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__MMIPERF.html#gad922644134c6319c84f738c60d5c8301">mmiperf_handle_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__MMIPERF.html#ga61d51224cc9d3c26ecf297bb0062a82d">mmiperf_start_udp_client</a> (const struct <a class="el" href="structmmiperf__client__args.html">mmiperf_client_args</a> *args)</td></tr>
<tr class="memdesc:ga61d51224cc9d3c26ecf297bb0062a82d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Start a UDP iperf client. <a href="group__MMIPERF.html#ga61d51224cc9d3c26ecf297bb0062a82d">More...</a><br /></td></tr>
<tr class="separator:ga61d51224cc9d3c26ecf297bb0062a82d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9debf8f97dddeac14878b87ac70f542f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__MMIPERF.html#gad922644134c6319c84f738c60d5c8301">mmiperf_handle_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__MMIPERF.html#ga9debf8f97dddeac14878b87ac70f542f">mmiperf_start_udp_server</a> (const struct <a class="el" href="structmmiperf__server__args.html">mmiperf_server_args</a> *args)</td></tr>
<tr class="memdesc:ga9debf8f97dddeac14878b87ac70f542f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Start a UDP iperf server. <a href="group__MMIPERF.html#ga9debf8f97dddeac14878b87ac70f542f">More...</a><br /></td></tr>
<tr class="separator:ga9debf8f97dddeac14878b87ac70f542f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2d61d0df53429bab16d1aab5f702f2aa"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__MMIPERF.html#gad922644134c6319c84f738c60d5c8301">mmiperf_handle_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__MMIPERF.html#ga2d61d0df53429bab16d1aab5f702f2aa">mmiperf_start_tcp_client</a> (const struct <a class="el" href="structmmiperf__client__args.html">mmiperf_client_args</a> *args)</td></tr>
<tr class="memdesc:ga2d61d0df53429bab16d1aab5f702f2aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Start a TCP iperf client. <a href="group__MMIPERF.html#ga2d61d0df53429bab16d1aab5f702f2aa">More...</a><br /></td></tr>
<tr class="separator:ga2d61d0df53429bab16d1aab5f702f2aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae78d2b5ebd73d3f43ce854b2cd21caff"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__MMIPERF.html#gad922644134c6319c84f738c60d5c8301">mmiperf_handle_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__MMIPERF.html#gae78d2b5ebd73d3f43ce854b2cd21caff">mmiperf_start_tcp_server</a> (const struct <a class="el" href="structmmiperf__server__args.html">mmiperf_server_args</a> *args)</td></tr>
<tr class="memdesc:gae78d2b5ebd73d3f43ce854b2cd21caff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Start a TCP iperf server. <a href="group__MMIPERF.html#gae78d2b5ebd73d3f43ce854b2cd21caff">More...</a><br /></td></tr>
<tr class="separator:gae78d2b5ebd73d3f43ce854b2cd21caff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaecdf17c7ce68929075cb3e6cc51c50f7"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__MMIPERF.html#gaecdf17c7ce68929075cb3e6cc51c50f7">mmiperf_get_interim_report</a> (<a class="el" href="group__MMIPERF.html#gad922644134c6319c84f738c60d5c8301">mmiperf_handle_t</a> handle, struct <a class="el" href="structmmiperf__report.html">mmiperf_report</a> *report)</td></tr>
<tr class="memdesc:gaecdf17c7ce68929075cb3e6cc51c50f7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve report for an in progress iperf session. <a href="group__MMIPERF.html#gaecdf17c7ce68929075cb3e6cc51c50f7">More...</a><br /></td></tr>
<tr class="separator:gaecdf17c7ce68929075cb3e6cc51c50f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a id="gaa013e4cb9e22aa75347f3acf47e901d0" name="gaa013e4cb9e22aa75347f3acf47e901d0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa013e4cb9e22aa75347f3acf47e901d0">&#9670;&nbsp;</a></span>BLOCK_DURATION_MS</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define BLOCK_DURATION_MS&#160;&#160;&#160;200</td>
</tr>
</table>
</div><div class="memdoc">
<p>If a bandwidth limit is set then we divide transmission into blocks and limit the amount of data that can be sent per block. </p>
<p >This sets the duration of each block (in milliseconds). </p>
<p class="definition">Definition at line <a class="el" href="mmiperf_8h_source.html#l00027">27</a> of file <a class="el" href="mmiperf_8h_source.html">mmiperf.h</a>.</p>
</div>
</div>
<a id="gacce2ea31d2fc21aa46f979e157250053" name="gacce2ea31d2fc21aa46f979e157250053"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gacce2ea31d2fc21aa46f979e157250053">&#9670;&nbsp;</a></span>IPV6_HEADER_SIZE_DIFF</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define IPV6_HEADER_SIZE_DIFF&#160;&#160;&#160;(20)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Difference between <code>IPv4</code> and <code>IPv6</code> Header size in bytes. </p>
<p class="definition">Definition at line <a class="el" href="mmiperf_8h_source.html#l00030">30</a> of file <a class="el" href="mmiperf_8h_source.html">mmiperf.h</a>.</p>
</div>
</div>
<a id="ga4f10814c20514ad3a82f6b084d11edc2" name="ga4f10814c20514ad3a82f6b084d11edc2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga4f10814c20514ad3a82f6b084d11edc2">&#9670;&nbsp;</a></span>MMIPERF_CLIENT_ARGS_DEFAULT</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MMIPERF_CLIENT_ARGS_DEFAULT</td>
</tr>
</table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"> { \</div>
<div class="line"> { 0 }, <a class="code hl_define" href="group__MMIPERF.html#gaa02eb362024d33a91fbe31c45d211b47">MMIPERF_DEFAULT_PORT</a>, <a class="code hl_define" href="group__MMIPERF.html#ga5c6ce79aabc8ef67ffcb185552e417d8">MMIPERF_DEFAULT_BANDWIDTH</a>, \</div>
<div class="line"> 0, <a class="code hl_define" href="group__MMIPERF.html#ga3048e920630fa51f6301f3022b7bf639">MMIPERF_DEFAULT_AMOUNT</a>, NULL, \</div>
<div class="line"> NULL, <a class="code hl_enumvalue" href="group__MMIPERF.html#ggaa1fc3bae5d5847c9e2d5a5a2a264a9daa611cb8c6d4f1309605b36b5cefc2251e">IPERF_VERSION_2_0_13</a>, \</div>
<div class="line"> }</div>
<div class="ttc" id="agroup__MMIPERF_html_ga3048e920630fa51f6301f3022b7bf639"><div class="ttname"><a href="group__MMIPERF.html#ga3048e920630fa51f6301f3022b7bf639">MMIPERF_DEFAULT_AMOUNT</a></div><div class="ttdeci">#define MMIPERF_DEFAULT_AMOUNT</div><div class="ttdoc">Default amount iperf (negative number indicates a time in hundredths of seconds, a positive value ind...</div><div class="ttdef"><b>Definition:</b> <a href="mmiperf_8h_source.html#l00040">mmiperf.h:40</a></div></div>
<div class="ttc" id="agroup__MMIPERF_html_ga5c6ce79aabc8ef67ffcb185552e417d8"><div class="ttname"><a href="group__MMIPERF.html#ga5c6ce79aabc8ef67ffcb185552e417d8">MMIPERF_DEFAULT_BANDWIDTH</a></div><div class="ttdeci">#define MMIPERF_DEFAULT_BANDWIDTH</div><div class="ttdoc">Default bandwidth limit for iperf (in kbps)</div><div class="ttdef"><b>Definition:</b> <a href="mmiperf_8h_source.html#l00042">mmiperf.h:42</a></div></div>
<div class="ttc" id="agroup__MMIPERF_html_gaa02eb362024d33a91fbe31c45d211b47"><div class="ttname"><a href="group__MMIPERF.html#gaa02eb362024d33a91fbe31c45d211b47">MMIPERF_DEFAULT_PORT</a></div><div class="ttdeci">#define MMIPERF_DEFAULT_PORT</div><div class="ttdoc">Default port for TCP and UDP iperf.</div><div class="ttdef"><b>Definition:</b> <a href="mmiperf_8h_source.html#l00033">mmiperf.h:33</a></div></div>
<div class="ttc" id="agroup__MMIPERF_html_ggaa1fc3bae5d5847c9e2d5a5a2a264a9daa611cb8c6d4f1309605b36b5cefc2251e"><div class="ttname"><a href="group__MMIPERF.html#ggaa1fc3bae5d5847c9e2d5a5a2a264a9daa611cb8c6d4f1309605b36b5cefc2251e">IPERF_VERSION_2_0_13</a></div><div class="ttdeci">@ IPERF_VERSION_2_0_13</div><div class="ttdoc">Iperf version 2.0.13.</div><div class="ttdef"><b>Definition:</b> <a href="mmiperf_8h_source.html#l00090">mmiperf.h:90</a></div></div>
</div><!-- fragment -->
<p>Initializer for <a class="el" href="structmmiperf__client__args.html">mmiperf_client_args</a>. </p>
<p class="definition">Definition at line <a class="el" href="mmiperf_8h_source.html#l00181">181</a> of file <a class="el" href="mmiperf_8h_source.html">mmiperf.h</a>.</p>
</div>
</div>
<a id="ga3048e920630fa51f6301f3022b7bf639" name="ga3048e920630fa51f6301f3022b7bf639"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3048e920630fa51f6301f3022b7bf639">&#9670;&nbsp;</a></span>MMIPERF_DEFAULT_AMOUNT</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MMIPERF_DEFAULT_AMOUNT&#160;&#160;&#160;(-1000)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Default amount iperf (negative number indicates a time in hundredths of seconds, a positive value indicates a number of bytes). </p>
<p class="definition">Definition at line <a class="el" href="mmiperf_8h_source.html#l00040">40</a> of file <a class="el" href="mmiperf_8h_source.html">mmiperf.h</a>.</p>
</div>
</div>
<a id="ga5c6ce79aabc8ef67ffcb185552e417d8" name="ga5c6ce79aabc8ef67ffcb185552e417d8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5c6ce79aabc8ef67ffcb185552e417d8">&#9670;&nbsp;</a></span>MMIPERF_DEFAULT_BANDWIDTH</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MMIPERF_DEFAULT_BANDWIDTH&#160;&#160;&#160;(0)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Default bandwidth limit for iperf (in kbps) </p>
<p class="definition">Definition at line <a class="el" href="mmiperf_8h_source.html#l00042">42</a> of file <a class="el" href="mmiperf_8h_source.html">mmiperf.h</a>.</p>
</div>
</div>
<a id="gaa02eb362024d33a91fbe31c45d211b47" name="gaa02eb362024d33a91fbe31c45d211b47"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa02eb362024d33a91fbe31c45d211b47">&#9670;&nbsp;</a></span>MMIPERF_DEFAULT_PORT</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MMIPERF_DEFAULT_PORT&#160;&#160;&#160;(5001)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Default port for TCP and UDP iperf. </p>
<p class="definition">Definition at line <a class="el" href="mmiperf_8h_source.html#l00033">33</a> of file <a class="el" href="mmiperf_8h_source.html">mmiperf.h</a>.</p>
</div>
</div>
<a id="ga6ab851d1585d69524e779e2a7532358f" name="ga6ab851d1585d69524e779e2a7532358f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6ab851d1585d69524e779e2a7532358f">&#9670;&nbsp;</a></span>MMIPERF_DEFAULT_UDP_PACKET_SIZE_V4</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MMIPERF_DEFAULT_UDP_PACKET_SIZE_V4&#160;&#160;&#160;(1460)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Default packet size for <code>IPv4</code> UDP iperf. </p>
<p class="definition">Definition at line <a class="el" href="mmiperf_8h_source.html#l00035">35</a> of file <a class="el" href="mmiperf_8h_source.html">mmiperf.h</a>.</p>
</div>
</div>
<a id="ga1b07a023ba2aa0c77384bb1fedb99a41" name="ga1b07a023ba2aa0c77384bb1fedb99a41"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1b07a023ba2aa0c77384bb1fedb99a41">&#9670;&nbsp;</a></span>MMIPERF_DEFAULT_UDP_PACKET_SIZE_V6</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MMIPERF_DEFAULT_UDP_PACKET_SIZE_V6&#160;&#160;&#160;(1440)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Default packet size for <code>IPv4</code> UDP iperf. </p>
<p class="definition">Definition at line <a class="el" href="mmiperf_8h_source.html#l00037">37</a> of file <a class="el" href="mmiperf_8h_source.html">mmiperf.h</a>.</p>
</div>
</div>
<a id="gacbd53afcfa9f34f8855320f0aad2d6a5" name="gacbd53afcfa9f34f8855320f0aad2d6a5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gacbd53afcfa9f34f8855320f0aad2d6a5">&#9670;&nbsp;</a></span>MMIPERF_IPADDR_MAXLEN</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MMIPERF_IPADDR_MAXLEN&#160;&#160;&#160;(48)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Maximum length of an IP address string including null-terminator. </p>
<p class="definition">Definition at line <a class="el" href="mmiperf_8h_source.html#l00045">45</a> of file <a class="el" href="mmiperf_8h_source.html">mmiperf.h</a>.</p>
</div>
</div>
<a id="gad0beef7190209bfc21f9adbc54255686" name="gad0beef7190209bfc21f9adbc54255686"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad0beef7190209bfc21f9adbc54255686">&#9670;&nbsp;</a></span>MMIPERF_SERVER_ARGS_DEFAULT</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MMIPERF_SERVER_ARGS_DEFAULT</td>
</tr>
</table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"> { \</div>
<div class="line"> { 0 }, <a class="code hl_define" href="group__MMIPERF.html#gaa02eb362024d33a91fbe31c45d211b47">MMIPERF_DEFAULT_PORT</a>, NULL, NULL, <a class="code hl_enumvalue" href="group__MMIPERF.html#ggaa1fc3bae5d5847c9e2d5a5a2a264a9daa611cb8c6d4f1309605b36b5cefc2251e">IPERF_VERSION_2_0_13</a>, \</div>
<div class="line"> }</div>
</div><!-- fragment -->
<p>Initializer for <a class="el" href="structmmiperf__server__args.html">mmiperf_server_args</a>. </p>
<p class="definition">Definition at line <a class="el" href="mmiperf_8h_source.html#l00213">213</a> of file <a class="el" href="mmiperf_8h_source.html">mmiperf.h</a>.</p>
</div>
</div>
<a id="ga7bde22e4d975d9be260e57be375e3c96" name="ga7bde22e4d975d9be260e57be375e3c96"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7bde22e4d975d9be260e57be375e3c96">&#9670;&nbsp;</a></span>MMIPERF_STACK_SIZE</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MMIPERF_STACK_SIZE&#160;&#160;&#160;512</td>
</tr>
</table>
</div><div class="memdoc">
<p>Default stack to use for MMIPERF tasks. </p>
<p class="definition">Definition at line <a class="el" href="mmiperf_8h_source.html#l00049">49</a> of file <a class="el" href="mmiperf_8h_source.html">mmiperf.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a id="gad922644134c6319c84f738c60d5c8301" name="gad922644134c6319c84f738c60d5c8301"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad922644134c6319c84f738c60d5c8301">&#9670;&nbsp;</a></span>mmiperf_handle_t</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct mmiperf_state* <a class="el" href="group__MMIPERF.html#gad922644134c6319c84f738c60d5c8301">mmiperf_handle_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Iperf client/server handle. </p>
<p class="definition">Definition at line <a class="el" href="mmiperf_8h_source.html#l00096">96</a> of file <a class="el" href="mmiperf_8h_source.html">mmiperf.h</a>.</p>
</div>
</div>
<a id="ga94a06d5ec557103dd3310e0c0a158583" name="ga94a06d5ec557103dd3310e0c0a158583"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga94a06d5ec557103dd3310e0c0a158583">&#9670;&nbsp;</a></span>mmiperf_report_fn</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void(* mmiperf_report_fn) (const struct <a class="el" href="structmmiperf__report.html">mmiperf_report</a> *report, void *arg, <a class="el" href="group__MMIPERF.html#gad922644134c6319c84f738c60d5c8301">mmiperf_handle_t</a> handle)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Report callback function prototype. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">report</td><td>The report data. </td></tr>
<tr><td class="paramname">arg</td><td>Opaque argument given when the iperf server/client was started. </td></tr>
<tr><td class="paramname">handle</td><td>Handle of the iperf client/server that generated the report. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="mmiperf_8h_source.html#l00143">143</a> of file <a class="el" href="mmiperf_8h_source.html">mmiperf.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="gaa1fc3bae5d5847c9e2d5a5a2a264a9da" name="gaa1fc3bae5d5847c9e2d5a5a2a264a9da"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa1fc3bae5d5847c9e2d5a5a2a264a9da">&#9670;&nbsp;</a></span>iperf_version</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__MMIPERF.html#gaa1fc3bae5d5847c9e2d5a5a2a264a9da">iperf_version</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Enumeration of Iperf versions. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ggaa1fc3bae5d5847c9e2d5a5a2a264a9daa611cb8c6d4f1309605b36b5cefc2251e" name="ggaa1fc3bae5d5847c9e2d5a5a2a264a9daa611cb8c6d4f1309605b36b5cefc2251e"></a>IPERF_VERSION_2_0_13&#160;</td><td class="fielddoc"><p >Iperf version 2.0.13. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggaa1fc3bae5d5847c9e2d5a5a2a264a9daa77187ded8b5f12e29fe9efaadcf56e1f" name="ggaa1fc3bae5d5847c9e2d5a5a2a264a9daa77187ded8b5f12e29fe9efaadcf56e1f"></a>IPERF_VERSION_2_0_9&#160;</td><td class="fielddoc"><p >Iperf version 2.0.9. </p>
</td></tr>
</table>
<p class="definition">Definition at line <a class="el" href="mmiperf_8h_source.html#l00087">87</a> of file <a class="el" href="mmiperf_8h_source.html">mmiperf.h</a>.</p>
</div>
</div>
<a id="ga7b67e7f7ee9517307f9037835fc7f2ee" name="ga7b67e7f7ee9517307f9037835fc7f2ee"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7b67e7f7ee9517307f9037835fc7f2ee">&#9670;&nbsp;</a></span>mmiperf_report_type</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__MMIPERF.html#ga7b67e7f7ee9517307f9037835fc7f2ee">mmiperf_report_type</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Enumeration of iperf report types. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga7b67e7f7ee9517307f9037835fc7f2eeae9ec9ff1a4b18cf2cab11bf2de9525c4" name="gga7b67e7f7ee9517307f9037835fc7f2eeae9ec9ff1a4b18cf2cab11bf2de9525c4"></a>MMIPERF_TCP_DONE_SERVER&#160;</td><td class="fielddoc"><p >The server side test is done. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7b67e7f7ee9517307f9037835fc7f2eea27f46efff531edf3c97f06dc8e407d47" name="gga7b67e7f7ee9517307f9037835fc7f2eea27f46efff531edf3c97f06dc8e407d47"></a>MMIPERF_TCP_DONE_CLIENT&#160;</td><td class="fielddoc"><p >The client side test is done. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7b67e7f7ee9517307f9037835fc7f2eea26a228d6b895eeecf6fbfbd70f045c6a" name="gga7b67e7f7ee9517307f9037835fc7f2eea26a228d6b895eeecf6fbfbd70f045c6a"></a>MMIPERF_TCP_ABORTED_LOCAL&#160;</td><td class="fielddoc"><p >Local error lead to test abort. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7b67e7f7ee9517307f9037835fc7f2eea51361f14ceefa0e7710da61e39bdaa25" name="gga7b67e7f7ee9517307f9037835fc7f2eea51361f14ceefa0e7710da61e39bdaa25"></a>MMIPERF_TCP_ABORTED_LOCAL_DATAERROR&#160;</td><td class="fielddoc"><p >Data check error lead to test abort. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7b67e7f7ee9517307f9037835fc7f2eea18f34566b974c5d19006238e76130449" name="gga7b67e7f7ee9517307f9037835fc7f2eea18f34566b974c5d19006238e76130449"></a>MMIPERF_TCP_ABORTED_LOCAL_TXERROR&#160;</td><td class="fielddoc"><p >Transmit error lead to test abort. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7b67e7f7ee9517307f9037835fc7f2eea43d3dd076f296d508c8ba2f9006a3b01" name="gga7b67e7f7ee9517307f9037835fc7f2eea43d3dd076f296d508c8ba2f9006a3b01"></a>MMIPERF_TCP_ABORTED_REMOTE&#160;</td><td class="fielddoc"><p >Remote side aborted the test. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7b67e7f7ee9517307f9037835fc7f2eeab5b6fd297fd7a50f6861e91709553aa8" name="gga7b67e7f7ee9517307f9037835fc7f2eeab5b6fd297fd7a50f6861e91709553aa8"></a>MMIPERF_UDP_DONE_SERVER&#160;</td><td class="fielddoc"><p >The server side test is done. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7b67e7f7ee9517307f9037835fc7f2eea08e59155cc22da9449201ea737be1761" name="gga7b67e7f7ee9517307f9037835fc7f2eea08e59155cc22da9449201ea737be1761"></a>MMIPERF_UDP_DONE_CLIENT&#160;</td><td class="fielddoc"><p >The client side test is done. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7b67e7f7ee9517307f9037835fc7f2eea26634f39378587f549478c26d13a4375" name="gga7b67e7f7ee9517307f9037835fc7f2eea26634f39378587f549478c26d13a4375"></a>MMIPERF_INTERRIM_REPORT&#160;</td><td class="fielddoc"><p >Interrim report requested via <a class="el" href="group__MMIPERF.html#gaecdf17c7ce68929075cb3e6cc51c50f7">mmiperf_get_interim_report()</a>. </p>
</td></tr>
</table>
<p class="definition">Definition at line <a class="el" href="mmiperf_8h_source.html#l00053">53</a> of file <a class="el" href="mmiperf_8h_source.html">mmiperf.h</a>.</p>
</div>
</div>
<a id="ga509c8a42171b7e6ece4d791e75e3c927" name="ga509c8a42171b7e6ece4d791e75e3c927"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga509c8a42171b7e6ece4d791e75e3c927">&#9670;&nbsp;</a></span>traffic_agent_state</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__MMIPERF.html#ga509c8a42171b7e6ece4d791e75e3c927">traffic_agent_state</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Enumeration of traffic agent state. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga509c8a42171b7e6ece4d791e75e3c927a628c91ae4a589fe68d95d9092a010b10" name="gga509c8a42171b7e6ece4d791e75e3c927a628c91ae4a589fe68d95d9092a010b10"></a>TRAFFIC_AGENT_NOT_STARTED&#160;</td><td class="fielddoc"><p >Traffic agent has not started. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga509c8a42171b7e6ece4d791e75e3c927a796f97b101c4c1f1984dc17db9385777" name="gga509c8a42171b7e6ece4d791e75e3c927a796f97b101c4c1f1984dc17db9385777"></a>TRAFFIC_AGENT_RUNNING&#160;</td><td class="fielddoc"><p >Traffic agent is running. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga509c8a42171b7e6ece4d791e75e3c927a42e944ee3bdf92a9d8b3f166effc57d8" name="gga509c8a42171b7e6ece4d791e75e3c927a42e944ee3bdf92a9d8b3f166effc57d8"></a>TRAFFIC_AGENT_STOPPED&#160;</td><td class="fielddoc"><p >Traffic agent has stopped. </p>
</td></tr>
</table>
<p class="definition">Definition at line <a class="el" href="mmiperf_8h_source.html#l00076">76</a> of file <a class="el" href="mmiperf_8h_source.html">mmiperf.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="gaecdf17c7ce68929075cb3e6cc51c50f7" name="gaecdf17c7ce68929075cb3e6cc51c50f7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaecdf17c7ce68929075cb3e6cc51c50f7">&#9670;&nbsp;</a></span>mmiperf_get_interim_report()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool mmiperf_get_interim_report </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__MMIPERF.html#gad922644134c6319c84f738c60d5c8301">mmiperf_handle_t</a>&#160;</td>
<td class="paramname"><em>handle</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">struct <a class="el" href="structmmiperf__report.html">mmiperf_report</a> *&#160;</td>
<td class="paramname"><em>report</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Retrieve report for an in progress iperf session. </p>
<p >This shall not be called after the report callback has been received for the given session.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">handle</td><td>Handle to the iperf session to retrieve the report for. </td></tr>
<tr><td class="paramname">report</td><td>Pointer to a report instance to receive the report.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> on success or <code>false</code> on error (e.g., the handle was invalid). </dd></dl>
</div>
</div>
<a id="ga2d61d0df53429bab16d1aab5f702f2aa" name="ga2d61d0df53429bab16d1aab5f702f2aa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2d61d0df53429bab16d1aab5f702f2aa">&#9670;&nbsp;</a></span>mmiperf_start_tcp_client()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__MMIPERF.html#gad922644134c6319c84f738c60d5c8301">mmiperf_handle_t</a> mmiperf_start_tcp_client </td>
<td>(</td>
<td class="paramtype">const struct <a class="el" href="structmmiperf__client__args.html">mmiperf_client_args</a> *&#160;</td>
<td class="paramname"><em>args</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Start a TCP iperf client. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">args</td><td>Iperf client arguments.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a handle to the client on success, or <code>NULL</code> on failure. </dd></dl>
</div>
</div>
<a id="gae78d2b5ebd73d3f43ce854b2cd21caff" name="gae78d2b5ebd73d3f43ce854b2cd21caff"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae78d2b5ebd73d3f43ce854b2cd21caff">&#9670;&nbsp;</a></span>mmiperf_start_tcp_server()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__MMIPERF.html#gad922644134c6319c84f738c60d5c8301">mmiperf_handle_t</a> mmiperf_start_tcp_server </td>
<td>(</td>
<td class="paramtype">const struct <a class="el" href="structmmiperf__server__args.html">mmiperf_server_args</a> *&#160;</td>
<td class="paramname"><em>args</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Start a TCP iperf server. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">args</td><td>Iperf server arguments.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a handle to the server on success, or <code>NULL</code> on failure. </dd></dl>
</div>
</div>
<a id="ga61d51224cc9d3c26ecf297bb0062a82d" name="ga61d51224cc9d3c26ecf297bb0062a82d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga61d51224cc9d3c26ecf297bb0062a82d">&#9670;&nbsp;</a></span>mmiperf_start_udp_client()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__MMIPERF.html#gad922644134c6319c84f738c60d5c8301">mmiperf_handle_t</a> mmiperf_start_udp_client </td>
<td>(</td>
<td class="paramtype">const struct <a class="el" href="structmmiperf__client__args.html">mmiperf_client_args</a> *&#160;</td>
<td class="paramname"><em>args</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Start a UDP iperf client. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">args</td><td>Iperf client arguments.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a handle to the client on success, or <code>NULL</code> on failure. </dd></dl>
</div>
</div>
<a id="ga9debf8f97dddeac14878b87ac70f542f" name="ga9debf8f97dddeac14878b87ac70f542f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9debf8f97dddeac14878b87ac70f542f">&#9670;&nbsp;</a></span>mmiperf_start_udp_server()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__MMIPERF.html#gad922644134c6319c84f738c60d5c8301">mmiperf_handle_t</a> mmiperf_start_udp_server </td>
<td>(</td>
<td class="paramtype">const struct <a class="el" href="structmmiperf__server__args.html">mmiperf_server_args</a> *&#160;</td>
<td class="paramname"><em>args</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Start a UDP iperf server. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">args</td><td>Iperf server arguments.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a handle to the server on success, or <code>NULL</code> on failure. </dd></dl>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.17-->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Copyright 2021 Morse Micro </li>
</ul>
</div>
</body>
</html>