191df013fSAsim Jamshed<!-- Creator : groff version 1.22.2 --> 2*e5df9dc1SAsim Jamshed<!-- CreationDate: Wed Feb 1 22:24:31 2017 --> 391df013fSAsim Jamshed<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 491df013fSAsim Jamshed"http://www.w3.org/TR/html4/loose.dtd"> 591df013fSAsim Jamshed<html> 691df013fSAsim Jamshed<head> 791df013fSAsim Jamshed<meta name="generator" content="groff -Thtml, see www.gnu.org"> 891df013fSAsim Jamshed<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> 991df013fSAsim Jamshed<meta name="Content-Style" content="text/css"> 1091df013fSAsim Jamshed<style type="text/css"> 1191df013fSAsim Jamshed p { margin-top: 0; margin-bottom: 0; vertical-align: top } 1291df013fSAsim Jamshed pre { margin-top: 0; margin-bottom: 0; vertical-align: top } 1391df013fSAsim Jamshed table { margin-top: 0; margin-bottom: 0; vertical-align: top } 1491df013fSAsim Jamshed h1 { text-align: center } 1591df013fSAsim Jamshed</style> 1691df013fSAsim Jamshed<title>mtcp_init_rss</title> 17*e5df9dc1SAsim Jamshed<link rel="stylesheet" href="./common.css"> 1891df013fSAsim Jamshed</head> 1991df013fSAsim Jamshed<body> 20*e5df9dc1SAsim Jamshed<div class="main"> 2191df013fSAsim Jamshed<h1 align="center">mtcp_init_rss</h1> 22*e5df9dc1SAsim Jamshed<!-- 2391df013fSAsim Jamshed<a href="#NAME">NAME</a><br> 2491df013fSAsim Jamshed<a href="#SYNOPSIS">SYNOPSIS</a><br> 2591df013fSAsim Jamshed<a href="#DESCRIPTION">DESCRIPTION</a><br> 2691df013fSAsim Jamshed<a href="#RETURN VALUE">RETURN VALUE</a><br> 2791df013fSAsim Jamshed<a href="#NOTES">NOTES</a><br> 2891df013fSAsim Jamshed<a href="#ERRORS">ERRORS</a><br> 2991df013fSAsim Jamshed<a href="#NOTES">NOTES</a><br> 3091df013fSAsim Jamshed<a href="#AUTHORS">AUTHORS</a><br> 3191df013fSAsim Jamshed<a href="#SEE ALSO">SEE ALSO</a><br> 3291df013fSAsim Jamshed<a href="#COLOPHON">COLOPHON</a><br> 3391df013fSAsim Jamshed<hr> 34*e5df9dc1SAsim Jamshed--> 3591df013fSAsim Jamshed 3691df013fSAsim Jamshed<h2>NAME 3791df013fSAsim Jamshed<a name="NAME"></a> 3891df013fSAsim Jamshed</h2> 3991df013fSAsim Jamshed 4091df013fSAsim Jamshed 4191df013fSAsim Jamshed<p style="margin-left:11%; margin-top: 1em">mtcp_init_rss 4291df013fSAsim Jamshed− initialize RSS-based NIC-queue-to-TCP-port numbers 4391df013fSAsim Jamshedmapping pool</p> 4491df013fSAsim Jamshed 4591df013fSAsim Jamshed<h2>SYNOPSIS 4691df013fSAsim Jamshed<a name="SYNOPSIS"></a> 4791df013fSAsim Jamshed</h2> 4891df013fSAsim Jamshed 4991df013fSAsim Jamshed 5091df013fSAsim Jamshed<p style="margin-left:11%; margin-top: 1em"><b>#include 5191df013fSAsim Jamshed<mtcp_api.h></b></p> 5291df013fSAsim Jamshed 5391df013fSAsim Jamshed<p style="margin-left:11%; margin-top: 1em"><b>int 5491df013fSAsim Jamshedmtcp_init_rss(mctx_t</b> <i>mctx</i><b>, in_addr_t</b> 5591df013fSAsim Jamshed<i>srcip</i><b>, int</b> <i>num_addr</i><b>, in_addr_t</b> 5691df013fSAsim Jamshed<i>dstip</i><b>, in_addr_t</b> <i>dport</i><b>);</b></p> 5791df013fSAsim Jamshed 5891df013fSAsim Jamshed<h2>DESCRIPTION 5991df013fSAsim Jamshed<a name="DESCRIPTION"></a> 6091df013fSAsim Jamshed</h2> 6191df013fSAsim Jamshed 6291df013fSAsim Jamshed 6391df013fSAsim Jamshed 6491df013fSAsim Jamshed<p style="margin-left:11%; margin-top: 1em"><b>mtcp_init_rss</b>() 6591df013fSAsim Jamshedcreates a pool of TCP source ports that can be used by a 6691df013fSAsim Jamshedclient to generate outgoing connections for an arbitrary 6791df013fSAsim Jamshedtuple of < <i>srcip, dstip,</i> and, <i>dport</i> > 6891df013fSAsim Jamshedwhere ( <i>srcip</i> = source IPv4 address, <i>dstip</i> = 6991df013fSAsim Jamsheddestination IPv4 address, and <i>dport</i> = destination 7091df013fSAsim Jamshedport number respectively). Choosing the appropriate set of 7191df013fSAsim Jamshedsource ports for each mTCP context, <i>mctx</i> (running on 7291df013fSAsim Jamshedeach CPU) is important for connecting to peer TCP endpoints: 7391df013fSAsim JamshedmTCP relies on the underlying symmetric RSS-based hash 7491df013fSAsim Jamshedalgorithm (based on Toeplitz function) to read traffic from 7591df013fSAsim JamshedNIC hardware queues. This function ensures that all packets, 7691df013fSAsim Jamshedirrespective of the flow direction, are processed in the 7791df013fSAsim Jamshedsame CPU core.</p> 7891df013fSAsim Jamshed 7991df013fSAsim Jamshed<p style="margin-left:11%; margin-top: 1em">Please note 8091df013fSAsim Jamshedthat <b>mtcp_init_rss()</b> assumes that the CPU core-id (as 8191df013fSAsim Jamshedset inside <i>mctx</i> structure) will be used as the value 8291df013fSAsim Jamshedfor NIC queue-id, which the mTCP context will eventually 8391df013fSAsim Jamshedaccess during its operation. For example, mTCP context 8491df013fSAsim Jamshedrunning on core 3 will read traffic from NIC hardware 8591df013fSAsim Jamshedqueue-id 3.</p> 8691df013fSAsim Jamshed 8791df013fSAsim Jamshed 8891df013fSAsim Jamshed<p style="margin-left:11%; margin-top: 1em"><i>num_addr</i> 8991df013fSAsim Jamshedis a reserved argument whose value should be set to 1 for 9091df013fSAsim Jamshedthe time being.</p> 9191df013fSAsim Jamshed 9291df013fSAsim Jamshed<h2>RETURN VALUE 9391df013fSAsim Jamshed<a name="RETURN VALUE"></a> 9491df013fSAsim Jamshed</h2> 9591df013fSAsim Jamshed 9691df013fSAsim Jamshed 9791df013fSAsim Jamshed<p style="margin-left:11%; margin-top: 1em">Returns 0 on 9891df013fSAsim Jamshedsuccess; -1 on failure. In case of failure, <i>errno</i> is 9991df013fSAsim Jamshedset appropriately.</p> 10091df013fSAsim Jamshed 10191df013fSAsim Jamshed<h2>NOTES 10291df013fSAsim Jamshed<a name="NOTES"></a> 10391df013fSAsim Jamshed</h2> 10491df013fSAsim Jamshed 10591df013fSAsim Jamshed 10691df013fSAsim Jamshed<p style="margin-left:11%; margin-top: 1em">The default RSS 10791df013fSAsim Jamshedalgorithm set in NIC device is normally asymmetric. During 10891df013fSAsim JamshedNIC driver initialization, the mTCP core ensures that the 10991df013fSAsim Jamshedseed for the RSS algorithm is re-set to make traffic 11091df013fSAsim Jamshedreception symmetric. Also, during the driver intialization 11191df013fSAsim Jamshedstage, the mTCP core assigns NIC queue(s) binding with 11291df013fSAsim Jamshedarbitrary CPU core(s).</p> 11391df013fSAsim Jamshed 11491df013fSAsim Jamshed<h2>ERRORS 11591df013fSAsim Jamshed<a name="ERRORS"></a> 11691df013fSAsim Jamshed</h2> 11791df013fSAsim Jamshed 11891df013fSAsim Jamshed 11991df013fSAsim Jamshed<table width="100%" border="0" rules="none" frame="void" 12091df013fSAsim Jamshed cellspacing="0" cellpadding="0"> 12191df013fSAsim Jamshed<tr valign="top" align="left"> 12291df013fSAsim Jamshed<td width="11%"></td> 12391df013fSAsim Jamshed<td width="9%"> 12491df013fSAsim Jamshed 12591df013fSAsim Jamshed 12691df013fSAsim Jamshed<p style="margin-top: 1em"><b>ENOMEM</b></p></td> 12791df013fSAsim Jamshed<td width="6%"></td> 12891df013fSAsim Jamshed<td width="74%"> 12991df013fSAsim Jamshed 13091df013fSAsim Jamshed 13191df013fSAsim Jamshed<p style="margin-top: 1em">Failure to create mapping pool 13291df013fSAsim Jamsheddue to insufficient memory.</p></td></tr> 13391df013fSAsim Jamshed</table> 13491df013fSAsim Jamshed 13591df013fSAsim Jamshed<h2>NOTES 13691df013fSAsim Jamshed<a name="NOTES"></a> 13791df013fSAsim Jamshed</h2> 13891df013fSAsim Jamshed 13991df013fSAsim Jamshed 14091df013fSAsim Jamshed<p style="margin-left:11%; margin-top: 1em">See 14191df013fSAsim Jamshed<b>http://an.kaist.ac.kr/~shinae/paper/2012-srss.pdf</b> for 14291df013fSAsim Jamsheddetails on symmetric Receive-Side Scaling (RSS).</p> 14391df013fSAsim Jamshed 14491df013fSAsim Jamshed<h2>AUTHORS 14591df013fSAsim Jamshed<a name="AUTHORS"></a> 14691df013fSAsim Jamshed</h2> 14791df013fSAsim Jamshed 14891df013fSAsim Jamshed 149*e5df9dc1SAsim Jamshed<p style="margin-left:11%; margin-top: 1em">mOS 150*e5df9dc1SAsim Jamsheddevelopment team <[email protected]></p> 15191df013fSAsim Jamshed 15291df013fSAsim Jamshed<h2>SEE ALSO 15391df013fSAsim Jamshed<a name="SEE ALSO"></a> 15491df013fSAsim Jamshed</h2> 15591df013fSAsim Jamshed 15691df013fSAsim Jamshed 15791df013fSAsim Jamshed 15891df013fSAsim Jamshed<p style="margin-left:11%; margin-top: 1em"><b>mtcp_init</b>(), 15991df013fSAsim Jamshed<b>mtcp_destroy</b>()</p> 16091df013fSAsim Jamshed 16191df013fSAsim Jamshed<h2>COLOPHON 16291df013fSAsim Jamshed<a name="COLOPHON"></a> 16391df013fSAsim Jamshed</h2> 16491df013fSAsim Jamshed 16591df013fSAsim Jamshed 16691df013fSAsim Jamshed<p style="margin-left:11%; margin-top: 1em">This page is 16791df013fSAsim Jamshedpart of mOS release 0.3 <i>docs</i> section. A description 16891df013fSAsim Jamshedof the project, and information about reporting bugs, can be 16991df013fSAsim Jamshedfound at http://mos.kaist.edu/.</p> 170*e5df9dc1SAsim Jamshed<!--<hr>--> 171*e5df9dc1SAsim Jamshed<br> 172*e5df9dc1SAsim Jamshed<div class="footer"> 173*e5df9dc1SAsim Jamshed <img src="back-arrow.jpg" width="2%" height="2%"><a href="http://mos.kaist.edu/index_man.html">Back to Index</a> 174*e5df9dc1SAsim Jamshed</div> 175*e5df9dc1SAsim Jamshed</div> 17691df013fSAsim Jamshed</body> 17791df013fSAsim Jamshed</html> 178