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.

On 12/20/2010 07:15 PM, Jay Sprenkle wrote:
I misunderstood. The documentation lead me to believe it was a global function:

void enet_host_bandwidth_limit <http://enet.bespin.org/group__host.html#g83c5fa02a3ba6ab829856302e54929fe> (ENetHost <http://enet.bespin.org/struct__ENetHost.html> *host, enet_uint32 incomingBandwidth, enet_uint32 outgoingBandwidth)
        Adjusts the bandwidth limits of a host.


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?

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.

Thanks


On Mon, Dec 20, 2010 at 1:59 AM, Lee Salzman <[email protected] <mailto:[email protected]>> wrote:

    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.

    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.

    Lee


    On 12/20/2010 05:38 PM, Jay Sprenkle wrote:

    On Sun, Dec 19, 2010 at 6:49 PM, Lee Salzman <[email protected]
    <mailto:[email protected]>> wrote:



        Problem solved in one damned line of code. Oh, how blind I
        was. :( -> :)

        Thoughts?


    Thanks for putting in the time to make enet better :)  I'll patch
    my code.

    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.

    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.



    ---
    "The great thing about Object Oriented code is that it can make
    small, simple problems look like large, complex ones."


    _______________________________________________
    ENet-discuss mailing list
    [email protected] <mailto:[email protected]>
    http://lists.cubik.org/mailman/listinfo/enet-discuss


    _______________________________________________
    ENet-discuss mailing list
    [email protected] <mailto:[email protected]>
    http://lists.cubik.org/mailman/listinfo/enet-discuss




--
---
"The great thing about Object Oriented code is that it can make small, simple problems look like large, complex ones."


_______________________________________________
ENet-discuss mailing list
[email protected]
http://lists.cubik.org/mailman/listinfo/enet-discuss

_______________________________________________
ENet-discuss mailing list
[email protected]
http://lists.cubik.org/mailman/listinfo/enet-discuss

Reply via email to