diff options
Diffstat (limited to 'OpenSim/Region/ClientStack/Linden')
-rw-r--r-- | OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | 9 | ||||
-rwxr-xr-x | OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs | 25 |
2 files changed, 2 insertions, 32 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs index cb2d9e2..547c8a6 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | |||
@@ -1815,14 +1815,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
1815 | { | 1815 | { |
1816 | // An inventory descendents packet consists of a single agent section and an inventory details | 1816 | // An inventory descendents packet consists of a single agent section and an inventory details |
1817 | // section for each inventory item. The size of each inventory item is approximately 550 bytes. | 1817 | // section for each inventory item. The size of each inventory item is approximately 550 bytes. |
1818 | // In theory, UDP has a maximum packet size of 64k, so it should be possible to send descendent | 1818 | // limit to what may fit on MTU |
1819 | // packets containing metadata for in excess of 100 items. But in practice, there may be other | ||
1820 | // factors (e.g. firewalls) restraining the maximum UDP packet size. See, | ||
1821 | // | ||
1822 | // http://opensimulator.org/mantis/view.php?id=226 | ||
1823 | // | ||
1824 | // for one example of this kind of thing. In fact, the Linden servers appear to only send about | ||
1825 | // 6 to 7 items at a time, so let's stick with 6 | ||
1826 | int MAX_ITEMS_PER_PACKET = 5; | 1819 | int MAX_ITEMS_PER_PACKET = 5; |
1827 | int MAX_FOLDERS_PER_PACKET = 6; | 1820 | int MAX_FOLDERS_PER_PACKET = 6; |
1828 | 1821 | ||
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs index 2300800..780e8f8 100755 --- a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs | |||
@@ -279,11 +279,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
279 | /// OnQueueEmpty event is triggered for textures</summary> | 279 | /// OnQueueEmpty event is triggered for textures</summary> |
280 | public readonly int TextureSendLimit; | 280 | public readonly int TextureSendLimit; |
281 | 281 | ||
282 | /// <summary>Handlers for incoming packets</summary> | ||
283 | //PacketEventDictionary packetEvents = new PacketEventDictionary(); | ||
284 | /// <summary>Incoming packets that are awaiting handling</summary> | ||
285 | //protected OpenMetaverse.BlockingQueue<IncomingPacket> packetInbox = new OpenMetaverse.BlockingQueue<IncomingPacket>(); | ||
286 | |||
287 | protected BlockingCollection<IncomingPacket> packetInbox = new BlockingCollection<IncomingPacket>(); | 282 | protected BlockingCollection<IncomingPacket> packetInbox = new BlockingCollection<IncomingPacket>(); |
288 | 283 | ||
289 | /// <summary>Bandwidth throttle for this UDP server</summary> | 284 | /// <summary>Bandwidth throttle for this UDP server</summary> |
@@ -375,12 +370,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
375 | public int IncomingOrphanedPacketCount { get; protected set; } | 370 | public int IncomingOrphanedPacketCount { get; protected set; } |
376 | 371 | ||
377 | /// <summary> | 372 | /// <summary> |
378 | /// Queue some low priority but potentially high volume async requests so that they don't overwhelm available | ||
379 | /// threadpool threads. | ||
380 | /// </summary> | ||
381 | // public JobEngine IpahEngine { get; protected set; } | ||
382 | |||
383 | /// <summary> | ||
384 | /// Run queue empty processing within a single persistent thread. | 373 | /// Run queue empty processing within a single persistent thread. |
385 | /// </summary> | 374 | /// </summary> |
386 | /// <remarks> | 375 | /// <remarks> |
@@ -557,12 +546,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
557 | 546 | ||
558 | Scene = (Scene)scene; | 547 | Scene = (Scene)scene; |
559 | m_location = new Location(Scene.RegionInfo.RegionHandle); | 548 | m_location = new Location(Scene.RegionInfo.RegionHandle); |
560 | /* | 549 | |
561 | IpahEngine | ||
562 | = new JobEngine( | ||
563 | string.Format("Incoming Packet Async Handling Engine ({0})", Scene.Name), | ||
564 | "INCOMING PACKET ASYNC HANDLING ENGINE"); | ||
565 | */ | ||
566 | OqrEngine = new JobEngine( | 550 | OqrEngine = new JobEngine( |
567 | string.Format("Outgoing Queue Refill Engine ({0})", Scene.Name), | 551 | string.Format("Outgoing Queue Refill Engine ({0})", Scene.Name), |
568 | "OUTGOING QUEUE REFILL ENGINE"); | 552 | "OUTGOING QUEUE REFILL ENGINE"); |
@@ -844,13 +828,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
844 | bool doZerocode = (data[0] & Helpers.MSG_ZEROCODED) != 0; | 828 | bool doZerocode = (data[0] & Helpers.MSG_ZEROCODED) != 0; |
845 | bool doCopy = true; | 829 | bool doCopy = true; |
846 | 830 | ||
847 | // Frequency analysis of outgoing packet sizes shows a large clump of packets at each end of the spectrum. | ||
848 | // The vast majority of packets are less than 200 bytes, although due to asset transfers and packet splitting | ||
849 | // there are a decent number of packets in the 1000-1140 byte range. We allocate one of two sizes of data here | ||
850 | // to accomodate for both common scenarios and provide ample room for ACK appending in both | ||
851 | //int bufferSize = (dataLength > 180) ? LLUDPServer.MTU : 200; | ||
852 | |||
853 | //UDPPacketBuffer buffer = new UDPPacketBuffer(udpClient.RemoteEndPoint, bufferSize); | ||
854 | UDPPacketBuffer buffer = GetNewUDPBuffer(udpClient.RemoteEndPoint); | 831 | UDPPacketBuffer buffer = GetNewUDPBuffer(udpClient.RemoteEndPoint); |
855 | 832 | ||
856 | // Zerocode if needed | 833 | // Zerocode if needed |