<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p>A pull request has been opened for the initial support of traffic classes for libfabric. Please review as appropriate.
<o:p></o:p></p>
<p><a href="https://github.com/ofiwg/libfabric/pull/5148">https://github.com/ofiwg/libfabric/pull/5148</a><br>
<br>
This commit introduces the capability to select a traffic class when<br>
creating libfabric objects with the goal to allow applications to<br>
utilize traffic shaping mechanisms exposed to providers.<o:p></o:p></p>
<p>In this proposal, the fi_domain, fi_tx_attr, and fi_rx_attributes are<br>
modified to add the new fi_traffic_class structure to the structure definition.<br>
The fi_traffic_class structure provides a 'type' field, indicating the type of<br>
traffic class value that is represented in the 'value' field of the structure.<br>
Two different types of traffic class are presented with this commit; FI_TC_TYPE_LABEL,<br>
and FI_TC_TYPE_DSCP. Libfabric defines generalized traffic classes via community<br>
defined labels and expected behavior for those labels, which fall under the category<br>
of FI_TC_TYPE_LABEL. Providers may also define provider specific labels utilizing the<br>
most significant 32 bits of the value field. To provide applications with greater<br>
control over traffic class selection, this proposal exposes the ability to specify<br>
a specify DSCP value to be associated with libfabric objects, using the value field set<br>
to the DSCP value, and type set to FI_TC_TYPE_DSCP.<o:p></o:p></p>
<p>Additionally, to simplify the traffic class selection process, this commit introduces<br>
a heirarchal inheritance model with the fi_traffic_class structure. When an fi_domain<br>
is created, the application can choose to select a traffic class, or allow the provider<br>
to select a default traffic class. The traffic class associated with the domain is used<br>
as the default for all objects created within the domain. This allows an<br>
application to request a general traffic class for most traffic flows, while<br>
allowing the application to finely control traffic at the granularity of the tx context<br>
or rx context.<o:p></o:p></p>
<p>The original proposal to OFIWG did not include the rx context modification. However,<br>
multi-part data transfer operations such as rendezvous messaging benefit from the differentiation of<br>
request and response traffic shaping flows. The traffic class field in the rx attribute is<br>
only intended to apply to these multi-part data transfer operations and does not imply any<br>
relation with the tx attribute of a peer endpoint.<o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">-- Jim<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>