<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html; charset=ISO-8859-1"
 http-equiv="Content-Type">
</head>
<body text="#c0c0c0" bgcolor="#000000">
If you look inside enet_host_bandwidth_throttle(), that is where it
diddles throttles to achieve various bandwidth targets depending on
what it knows of the limits on both ends of the connection. Pretty much
any effect you want so long as it can be expressed in terms of nudging
the throttle around can be done there.<br>
<br>
<br>
On 12/20/2010 07:15 PM, Jay Sprenkle wrote:
<blockquote
 cite="mid:AANLkTimLAPbtcZ1MLfOh92zvNVvA=7VeY8RkBSs9QQbb@mail.gmail.com"
 type="cite">I misunderstood. The documentation lead me to believe it
was a global function:<br>
  <br>
  <table border="0" cellpadding="0" cellspacing="0">
    <tbody>
      <tr>
        <td class="memItemLeft" nowrap="nowrap" valign="top"
 align="right">void </td>
        <td class="memItemRight" valign="bottom"><a
 moz-do-not-send="true" class="el"
 href="http://enet.bespin.org/group__host.html#g83c5fa02a3ba6ab829856302e54929fe">enet_host_bandwidth_limit</a>
(<a moz-do-not-send="true" class="el"
 href="http://enet.bespin.org/struct__ENetHost.html">ENetHost</a>
*host, enet_uint32 incomingBandwidth, enet_uint32 outgoingBandwidth)</td>
      </tr>
      <tr>
        <td class="mdescLeft"> </td>
        <td class="mdescRight">Adjusts the bandwidth limits of a host. </td>
      </tr>
    </tbody>
  </table>
  <br>
It adjusts the bandwidth limit of the host (I.E. all peers). So in
reality it's really on a per peer basis, but can't be effectively
controlled at that level because of the design of the network stack?<br>
  <br>
That would imply I need to "de-congest the link" by pushing the
connection throttling to the operating system network stack. Iptables
has rate limiting so I can perhaps I can get iptables to do the
throttling.<br>
  <br>
Thanks<br>
  <br>
  <br>
  <div class="gmail_quote">On Mon, Dec 20, 2010 at 1:59 AM, Lee Salzman
  <span dir="ltr"><<a moz-do-not-send="true"
 href="mailto:lsalzman@gmail.com">lsalzman@gmail.com</a>></span>
wrote:<br>
  <blockquote class="gmail_quote"
 style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
    <div text="#c0c0c0" bgcolor="#000000">Throttling in ENet has always
been done on a per connection basis. :)
The congestion metric is based on the length of a round trip time
between a host and a given peer, and the RTT metrics and throttle
values are stored in the peers themselves.<br>
    <br>
The issue is more one of quality of service: one connection hogging
bandwidth can cause the throttles of all other connections to go down
because  the link overall is congested.<br>
    <br>
Lee
    <div>
    <div class="h5"><br>
    <br>
On 12/20/2010 05:38 PM, Jay Sprenkle wrote:
    </div>
    </div>
    <blockquote type="cite">
      <div>
      <div class="h5"><br>
      <div class="gmail_quote">On Sun, Dec 19, 2010 at 6:49 PM, Lee
Salzman <span dir="ltr"><<a moz-do-not-send="true"
 href="mailto:lsalzman@gmail.com" target="_blank">lsalzman@gmail.com</a>></span>
wrote:<br>
      <blockquote class="gmail_quote"
 style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
        <div text="#c0c0c0" bgcolor="#000000"><br>
        <br>
Problem solved in one damned line of code. Oh, how blind I was. :(
-> :)<br>
        <br>
Thoughts?<br>
        <br>
        </div>
      </blockquote>
      <div><br>
Thanks for putting in the time to make enet better :)  I'll patch my
code.<br>
      <br>
I realize it's a much larger change than one line but I'd really like
to see throttling adjustable on a per connection basis. That would
provide a better mechanism to react to denial of service attacks. I
could at least attempt to throttle back the offending connection with
less affect on other connections.<br>
      <br>
It may be a better solution to handle this in the network firewall code
instead of enet. If anyone has any feedback on this I'd love to receive
it.<br>
      <br>
      <br>
 </div>
      </div>
      <br>
---<br>
"The great thing about Object Oriented code is that it can make small,
simple problems look like large, complex ones."<br>
      <br>
      </div>
      </div>
      <pre><fieldset></fieldset>
_______________________________________________
ENet-discuss mailing list
<div class="im"><a moz-do-not-send="true"
 href="mailto:ENet-discuss@cubik.org" target="_blank">ENet-discuss@cubik.org</a>
<a moz-do-not-send="true"
 href="http://lists.cubik.org/mailman/listinfo/enet-discuss"
 target="_blank">http://lists.cubik.org/mailman/listinfo/enet-discuss</a>
  </div></pre>
    </blockquote>
    <br>
    </div>
    <br>
_______________________________________________<br>
ENet-discuss mailing list<br>
    <a moz-do-not-send="true" href="mailto:ENet-discuss@cubik.org">ENet-discuss@cubik.org</a><br>
    <a moz-do-not-send="true"
 href="http://lists.cubik.org/mailman/listinfo/enet-discuss"
 target="_blank">http://lists.cubik.org/mailman/listinfo/enet-discuss</a><br>
    <br>
  </blockquote>
  </div>
  <br>
  <br clear="all">
  <br>
-- <br>
---<br>
"The great thing about Object Oriented code is that it can make small,
simple problems look like large, complex ones."<br>
  <pre wrap="">
<fieldset class="mimeAttachmentHeader"></fieldset>
_______________________________________________
ENet-discuss mailing list
<a class="moz-txt-link-abbreviated" href="mailto:ENet-discuss@cubik.org">ENet-discuss@cubik.org</a>
<a class="moz-txt-link-freetext" href="http://lists.cubik.org/mailman/listinfo/enet-discuss">http://lists.cubik.org/mailman/listinfo/enet-discuss</a>
  </pre>
</blockquote>
<br>
</body>
</html>