diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index 7c5aee764d..3b0c7752cc 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -1209,8 +1209,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP
public virtual bool CanSendLayerData()
{
- int n = m_udpClient.GetCatBytesInSendQueue(ThrottleOutPacketType.Land);
- if ( n > 100000)
+ int n = m_udpClient.GetPacketsQueuedCount(ThrottleOutPacketType.Land);
+ if ( n > 256)
return false;
return true;
}
@@ -1355,15 +1355,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
{
try
{
- /* test code using the terrain compressor in libOpenMetaverse
- int[] patchInd = new int[1];
- patchInd[0] = px + (py * Constants.TerrainPatchSize);
- LayerDataPacket layerpack = TerrainCompressor.CreateLandPacket(terrData.GetFloatsSerialized(), patchInd);
- */
- // Many, many patches could have been passed to us. Since the patches will be compressed
- // into variable sized blocks, we cannot pre-compute how many will fit into one
- // packet. While some fancy packing algorithm is possible, 4 seems to always fit.
- int PatchesAssumedToFit = 4;
+ int PatchesAssumedToFit = 3;
for (int pcnt = 0; pcnt < px.Length; pcnt += PatchesAssumedToFit)
{
int remaining = Math.Min(px.Length - pcnt, PatchesAssumedToFit);
@@ -1377,10 +1369,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP
LayerDataPacket layerpack = OpenSimTerrainCompressor.CreateLandPacket(terrData, xPatches, yPatches);
// DebugSendingPatches("SendLayerDataInternal", xPatches, yPatches);
- SendTheLayerPacket(layerpack);
+ OutPacket(layerpack, ThrottleOutPacketType.Land);
}
- // LayerDataPacket layerpack = OpenSimTerrainCompressor.CreateLandPacket(terrData, px, py);
-
}
catch (Exception e)
{
@@ -1388,11 +1378,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
}
}
- private void SendTheLayerPacket(LayerDataPacket layerpack)
- {
- OutPacket(layerpack, ThrottleOutPacketType.Land);
- }
-
///
/// Send the wind matrix to the client
///
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPClient.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPClient.cs
index 8d4117db89..507c07c451 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPClient.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPClient.cs
@@ -122,11 +122,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
/// Sequence numbers of packets we've received (for duplicate checking)
public readonly IncomingPacketHistoryCollection PacketArchive = new IncomingPacketHistoryCollection(200);
- ///
- /// If true then we take action in response to unacked reliably sent packets such as resending the packet.
- ///
- public bool ProcessUnackedSends { get; set; }
-
/// Packets we have sent that need to be ACKed by the client
public readonly UnackedPacketCollection NeedAcks = new UnackedPacketCollection();
@@ -252,8 +247,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
if (maxRTO != 0)
m_maxRTO = maxRTO;
- ProcessUnackedSends = true;
-
m_burstTime = rates.BrustTime;
float m_burst = rates.ClientMaxRate * m_burstTime;
@@ -357,8 +350,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP
///
public int GetPacketsQueuedCount(ThrottleOutPacketType throttleType)
{
- if ((int)throttleType > 0)
- return m_packetOutboxes[(int)throttleType].Count;
+ int icat = (int)throttleType;
+ if (icat > 0 && icat < THROTTLE_CATEGORY_COUNT)
+ return m_packetOutboxes[icat].Count;
else
return 0;
}
@@ -544,21 +538,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
return data;
}
-
- public int GetCatBytesInSendQueue(ThrottleOutPacketType cat)
- {
- ;
- int icat = (int)cat;
- if (icat > 0 && icat < THROTTLE_CATEGORY_COUNT)
- {
- TokenBucket bucket = m_throttleCategories[icat];
- return m_packetOutboxes[icat].Count;
- }
- else
- return 0;
- }
-
-
+
public int GetCatBytesCanSend(ThrottleOutPacketType cat, int timeMS)
{
int icat = (int)cat;
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs
index b5bdd469c6..8f345e7508 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs
@@ -991,8 +991,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP
bufferSize = dataLength;
buffer = new UDPPacketBuffer(udpClient.RemoteEndPoint, bufferSize);
- // m_log.Error("[LLUDPSERVER]: Packet exceeded buffer size! This could be an indication of packet assembly not obeying the MTU. Type=" +
- // type + ", DataLength=" + dataLength + ", BufferLength=" + buffer.Data.Length + ". Dropping packet");
+ m_log.Error("[LLUDPSERVER]: Packet exceeded buffer size! This could be an indication of packet assembly not obeying the MTU. Type=" +
+ type + ", DataLength=" + dataLength + ", BufferLength=" + buffer.Data.Length);
Buffer.BlockCopy(data, 0, buffer.Data, 0, dataLength);
}
}
@@ -1200,7 +1200,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
Utils.UIntToBytesBig(sequenceNumber, buffer.Data, 1);
outgoingPacket.SequenceNumber = sequenceNumber;
- if (udpClient.ProcessUnackedSends && isReliable)
+ if (isReliable)
{
// Add this packet to the list of ACK responses we are waiting on from the server
udpClient.NeedAcks.Add(outgoingPacket);
@@ -1418,37 +1418,30 @@ namespace OpenSim.Region.ClientStack.LindenUDP
#region ACK Receiving
- if (udpClient.ProcessUnackedSends)
+ // Handle appended ACKs
+ if (packet.Header.AppendedAcks && packet.Header.AckList != null)
{
- // Handle appended ACKs
- if (packet.Header.AppendedAcks && packet.Header.AckList != null)
- {
- // m_log.DebugFormat(
- // "[LLUDPSERVER]: Handling {0} appended acks from {1} in {2}",
- // packet.Header.AckList.Length, client.Name, m_scene.Name);
+ // m_log.DebugFormat(
+ // "[LLUDPSERVER]: Handling {0} appended acks from {1} in {2}",
+ // packet.Header.AckList.Length, client.Name, m_scene.Name);
- for (int i = 0; i < packet.Header.AckList.Length; i++)
- udpClient.NeedAcks.Acknowledge(packet.Header.AckList[i], now, packet.Header.Resent);
- }
-
- // Handle PacketAck packets
- if (packet.Type == PacketType.PacketAck)
- {
- PacketAckPacket ackPacket = (PacketAckPacket)packet;
-
- // m_log.DebugFormat(
- // "[LLUDPSERVER]: Handling {0} packet acks for {1} in {2}",
- // ackPacket.Packets.Length, client.Name, m_scene.Name);
-
- for (int i = 0; i < ackPacket.Packets.Length; i++)
- udpClient.NeedAcks.Acknowledge(ackPacket.Packets[i].ID, now, packet.Header.Resent);
-
- // We don't need to do anything else with PacketAck packets
- return;
- }
+ for (int i = 0; i < packet.Header.AckList.Length; i++)
+ udpClient.NeedAcks.Acknowledge(packet.Header.AckList[i], now, packet.Header.Resent);
}
- else if (packet.Type == PacketType.PacketAck)
+
+ // Handle PacketAck packets
+ if (packet.Type == PacketType.PacketAck)
{
+ PacketAckPacket ackPacket = (PacketAckPacket)packet;
+
+ // m_log.DebugFormat(
+ // "[LLUDPSERVER]: Handling {0} packet acks for {1} in {2}",
+ // ackPacket.Packets.Length, client.Name, m_scene.Name);
+
+ for (int i = 0; i < ackPacket.Packets.Length; i++)
+ udpClient.NeedAcks.Acknowledge(ackPacket.Packets[i].ID, now, packet.Header.Resent);
+
+ // We don't need to do anything else with PacketAck packets
return;
}
@@ -1510,7 +1503,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
#endregion BinaryStats
-//Ubit AgentUpdate mess removed from here
+//AgentUpdate removed from here
#region Ping Check Handling
@@ -2168,7 +2161,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
if (udpClient.IsConnected)
{
- if (udpClient.ProcessUnackedSends && m_resendUnacked)
+ if (m_resendUnacked)
HandleUnacked(llClient);
if (m_sendAcks)
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServerCommands.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServerCommands.cs
index 3dab5d2619..6e6a2d1b37 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServerCommands.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServerCommands.cs
@@ -558,6 +558,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
m_console.OutputFormat("{0} set to {1} in {2}", param, rawValue, m_udpServer.Scene.Name);
}
+/* not in use, nothing to set/get from lludp
private void HandleClientGetCommand(string module, string[] args)
{
if (SceneManager.Instance.CurrentScene != null && SceneManager.Instance.CurrentScene != m_udpServer.Scene)
@@ -584,11 +585,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
m_console.OutputFormat(
"Client debug parameters for {0} ({1}) in {2}",
sp.Name, sp.IsChildAgent ? "child" : "root", m_udpServer.Scene.Name);
-
- ConsoleDisplayList cdl = new ConsoleDisplayList();
- cdl.AddRow("process-unacked-sends", udpClient.ProcessUnackedSends);
-
- m_console.Output(cdl.ToString());
}
});
}
@@ -611,28 +607,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP
if (args.Length == 8)
name = string.Format("{0} {1}", args[6], args[7]);
-
- if (param == "process-unacked-sends")
- {
- bool newValue;
-
- if (!ConsoleUtil.TryParseConsoleBool(MainConsole.Instance, rawValue, out newValue))
- return;
-
- m_udpServer.Scene.ForEachScenePresence(
- sp =>
- {
- if ((name == null || sp.Name == name) && sp.ControllingClient is LLClientView)
- {
- LLUDPClient udpClient = ((LLClientView)sp.ControllingClient).UDPClient;
- udpClient.ProcessUnackedSends = newValue;
-
- m_console.OutputFormat("{0} set to {1} for {2} in {3}", param, newValue, sp.Name, m_udpServer.Scene.Name);
- }
- });
- }
+ // nothing here now
}
-
+*/
private void HandlePacketCommand(string module, string[] args)
{
if (SceneManager.Instance.CurrentScene != null && SceneManager.Instance.CurrentScene != m_udpServer.Scene)
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/TokenBucket.cs b/OpenSim/Region/ClientStack/Linden/UDP/TokenBucket.cs
index 14099fe5dc..fd369c4034 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/TokenBucket.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/TokenBucket.cs
@@ -289,7 +289,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
public int GetCatBytesCanSend(int timeMS)
{
// return (int)(m_tokenCount + timeMS * m_dripRate * 1e-3);
- return (int)(timeMS * m_dripRate * 1e-3);
+ return (int)(timeMS * DripRate * 1e-3);
}
///