aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ClientStack/LindenUDP (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Added an "immediate" queue to the priority queue. This isMic Bowman2011-04-201-245/+0
| | | | | | | | | per Melanie's very good suggestion. The immediate queue is serviced completely before all others, making it a very good place to put avatar updates & attachments. Moved the priority queue out of the LLUDP directory and into the framework. It is now a fairly general utility.
* Adds the first pass at an adaptive throttle to slow start newMic Bowman2011-04-204-18/+95
| | | | | | | | clients. If the sent packets are ack'ed successfully the throttle will open quickly up to the maximum specified by the client and/or the sims client throttle. This still needs a lot of adjustment to get the rates correct.
* Converted the property request queue to use the same retransmissionMic Bowman2011-04-191-23/+52
| | | | mechanism as the entity update queues.
* Requeue unacknowledged entity updates rather than resend then "as is".Dan Lake2011-04-193-54/+112
| | | | | | | | | | | | | | | | | | | | | | | | Often, by the time the UDPServer realizes that an entity update packet has not been acknowledged, there is a newer update for the same entity already queued up or there is a higher priority update that should be sent first. This patch eliminates 1:1 packet resends for unacked entity update packets. Insteawd, unacked update packets are decomposed into the original entity updates and those updates are placed back into the priority queues based on their new priority but the original update timestamp. This will generally place them at the head of the line to be put back on the wire as a new outgoing packet but prevents the resend queue from filling up with multiple stale updates for the same entity. This new approach takes advantage of the UDP nature of the Linden protocol in that the intent of a reliable update packet is that if it goes unacknowledge, SOMETHING has to happen to get the update to the client. We are simply making sure that we are resending current object state rather than stale object state. Additionally, this patch includes a generalized callback mechanism so that any caller can specify their own method to call when a packet expires without being acknowledged. We use this mechanism to requeue update packets and otherwise use the UDPServer default method of just putting expired packets in the resend queue.
* Remove the call to remove tokens from the parent. Under heavy loadMic Bowman2011-04-152-5/+14
| | | | | | | | | | this appears to cause problems with the system timer resolution. This caused a problem with tokens going into the root throttle as bursts leading to some starvation. Also changed EnqueueOutgoing to always queue a packet if there are already packets in the queue. Ensures consistent ordering of packet sends.
* Merge branch 'testmerge' into queuetestMic Bowman2011-04-131-2/+8
|\ | | | | | | | | Conflicts: OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
| * remove packet monitoring debugging codeMic Bowman2011-04-131-116/+2
| |
| * Fixed the update of items in the priority queue to enable bothMic Bowman2011-04-132-7/+16
| | | | | | | | | | | | types of property updates to be specified. Not sure if one form of property update should supercede another. But for now the old OpenSim behavior is preserved by sending both.
| * fixed a couple bugs with the property queuesMic Bowman2011-04-131-1/+37
| |
| * First pass at moving object property requests into a queue similarMic Bowman2011-04-132-143/+220
| | | | | | | | | | | | | | | | to the entity update queue. The number of property packets can become significant when selecting/deselecting large numbers of objects. This is experimental code.
| * New tokenbucket algorithm. This one provides fair sharing of the queuesMic Bowman2011-04-134-145/+259
| | | | | | | | | | | | | | | | | | when client and simulator throttles are set. This algorithm also uses pre-defined burst rate of 150% of the sustained rate for each of the throttles. Removed the "state" queue. The state queue is not a Linden queue and appeared to be used just to get kill packets sent.
| * Add a regression test for rezzing a single object into a scene from user ↵Justin Clark-Casey (justincc)2011-04-131-1/+8
| | | | | | | | inventory
* | remove packet monitoring debugging codeMic Bowman2011-04-121-116/+2
| |
* | Fixed the update of items in the priority queue to enable bothMic Bowman2011-04-122-7/+16
| | | | | | | | | | | | types of property updates to be specified. Not sure if one form of property update should supercede another. But for now the old OpenSim behavior is preserved by sending both.
* | fixed a couple bugs with the property queuesMic Bowman2011-04-121-1/+37
| |
* | First pass at moving object property requests into a queue similarMic Bowman2011-04-122-143/+220
| | | | | | | | | | | | | | | | to the entity update queue. The number of property packets can become significant when selecting/deselecting large numbers of objects. This is experimental code.
* | New tokenbucket algorithm. This one provides fair sharing of the queuesMic Bowman2011-04-124-145/+259
|/ | | | | | | | | when client and simulator throttles are set. This algorithm also uses pre-defined burst rate of 150% of the sustained rate for each of the throttles. Removed the "state" queue. The state queue is not a Linden queue and appeared to be used just to get kill packets sent.
* Merge branch 'queuetest' of ssh://opensimulator.org/var/git/opensim into ↵Mic Bowman2011-04-111-1/+75
|\ | | | | | | | | | | | | | | queuetest Conflicts: OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs OpenSim/Region/Framework/Scenes/Prioritizer.cs
| * Fix a bug in the computation of the RTO. Basically... the RTO (theMic Bowman2011-04-041-2/+2
| | | | | | | | | | | | | | | | time to wait to retransmit packets) always maxed out (no retransmissions for 24 or 48 seconds. Note that this is going to cause faster (and more) retransmissions. Fix for dynamic throttling needs to go with this.
| * Implements adaptive queue management and fair queueing forMic Bowman2011-04-041-118/+235
| | | | | | | | | | | | | | improved networking performance. Reprioritization algorithms need to be ported still. One is in place.
* | Removed some priority queue debugging codeMic Bowman2011-04-111-80/+0
| |
* | Split the priority queue class into a seperate file. LLClientViewMic Bowman2011-04-102-205/+245
| | | | | | | | is big enough.
* | Fix a bug in the computation of the RTO. Basically... the RTO (theMic Bowman2011-04-101-2/+2
| | | | | | | | | | | | | | | | time to wait to retransmit packets) always maxed out (no retransmissions for 24 or 48 seconds. Note that this is going to cause faster (and more) retransmissions. Fix for dynamic throttling needs to go with this.
* | Implements adaptive queue management and fair queueing forMic Bowman2011-04-101-118/+235
| | | | | | | | | | | | | | improved networking performance. Reprioritization algorithms need to be ported still. One is in place.
* | Handle the client's parcel info requests asynchronously rather than ↵Justin Clark-Casey (justincc)2011-04-051-1/+1
| | | | | | | | | | | | | | synchronously. Handling these synchronously kills the inbound packet loop if many requests are made for remote land and those requests are handled slowly or timeout (timeout is 10s) This can happen if a user searches for "land for sale" and then clicks many of the parcels in the list (or just presses down arrow to move through every entry).
* | Make the "All Estates" option work from the client (this makes chosen ↵Justin Clark-Casey (justincc)2011-04-051-4/+20
|/ | | | | | | | changes to all the estates that the user owns). This applies to adding/removing estate users, groups, managers and bans. This is the application of the AllEstates_0.5.patch from http://opensimulator.org/mantis/view.php?id=5420 Thanks very much, Snoopy!
* Log which address and port the UDP listener is configured for. This will ↵Justin Clark-Casey (justincc)2011-04-011-0/+4
| | | | | | match that given for InternalAddress in the config (e.g. 0.0.0.0) Can't obtain actually bound address until the UDP socket is used for the first time.
* (re)implement selected prim count.Justin Clark-Casey (justincc)2011-03-301-23/+23
| | | | This does not currently count objects that are sat upon (which the viewer ui implies should be included in this count)
* disable prim count debug logging temporarilyJustin Clark-Casey (justincc)2011-03-291-1/+1
|
* add save of LLClientView I forgot from last commitJustin Clark-Casey (justincc)2011-03-261-4/+2
|
* Add test for PCM taint. This currently fails due to unexpected behaviour of ↵Justin Clark-Casey (justincc)2011-03-261-0/+2
| | | | | | SceneGraph.ForEachSOG(). This will be corrected soon. Also adds lots of temproarily debug logging
* Start using IPrimCounts populated by PrimCountModule instead of LandData ↵Justin Clark-Casey (justincc)2011-03-251-13/+22
| | | | | | | counts populated by LandManagementModule. In order to pass ILandObject into IClientAPI.SendLandProperties(), had to push ILandObject and IPrimCounts into OpenSim.Framework from OpenSim.Region.Framework.Interfaces, in order to avoid ci Counts are showing odd behaviour at the moment, this will be addressed shortly.
* minor: remove mono compiler warningJustin Clark-Casey (justincc)2011-02-181-1/+1
|
* Reinstated a couple of null checks related to the previous revert.Diva Canto2011-02-101-11/+15
|
* Revert "Hunting down mantis #5365"Diva Canto2011-02-101-30/+15
| | | | This reverts commit ebeef02fef1a04b5b4cfe13dad588bcce7f9ba21.
* Put the Ack of UseCircuitCode back to where it used to be. Some ppl are ↵Diva Canto2011-02-091-6/+5
| | | | reporting login issues.
* Comment instrumentation out. Not needed anymore. Left in comments, in case ↵Diva Canto2011-02-091-4/+7
| | | | it is needed again. Mantis #5365
* Fix the negative number problem in TokenBucket. mantis #5365Diva Canto2011-02-091-5/+4
|
* Revert "Brute-force debug -- mantis #5365"Diva Canto2011-02-092-20/+3
| | | | This reverts commit 585473aade100c3ffeef27e0c8e6b6c8c09d0109.
* Revert "Don't build strings unless we're in emergency debugging."Diva Canto2011-02-091-8/+8
| | | | This reverts commit ba202ea9b08b1205de343c65fd209b6cca4cb6bc.
* More detection of negatives.Diva Canto2011-02-091-0/+3
|
* Detect negative dripAmounts in TokenBuckets. These negatives result from ↵Diva Canto2011-02-091-0/+3
| | | | overflown integer operations. Also added Total to the scene throttles in show throttles.
* Don't build strings unless we're in emergency debugging.Diva Canto2011-02-081-8/+8
|
* Brute-force debug -- mantis #5365Diva Canto2011-02-082-3/+20
|
* Avoid potential race conditions on UseCircuitCode. I artificially made the ↵Diva Canto2011-02-081-23/+28
| | | | race condition happen, and got very similar results to those described in mantis #5365 -- no prims/avie sent back.
* Minor addition to the previous commitDiva Canto2011-02-081-3/+12
|
* Minor improvement to previous commit.Diva Canto2011-02-081-2/+4
|
* Added emergency monitoring of UDP Outgoing packets thread. Just type ↵Diva Canto2011-02-081-0/+100
| | | | "emergency-monitoring on/off"
* Hunting down mantis #5365Diva Canto2011-02-071-15/+30
| | | | | | Revert "refactor: remove redundant null checks" This reverts commit 6e58996b4d9db202cd7795a37bd687362effef48.
* Record number of resent packets in LindenUDP stack and display in stats reportJustin Clark-Casey (justincc)2011-02-022-3/+9
|