From 8e1bf55e7b85f8c92237ef2208a4a2c31ba6153c Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Wed, 6 Nov 2013 01:02:20 +0000
Subject: Add IncomingPacketsResentCount clientstack statistics
This records how many packets were indicated to be resends by clients
Not 100% reliable since clients can lie about resends, but usually would indicate if clients are not receiving UDP acks at all or in a manner they consider timely.
---
.../Region/ClientStack/Linden/UDP/LLUDPServer.cs | 23 ++++++++++++++++++++++
1 file changed, 23 insertions(+)
(limited to 'OpenSim/Region/ClientStack')
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs
index 3bd1ef1..c0a4e56 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs
@@ -134,6 +134,19 @@ namespace OpenSim.Region.ClientStack.LindenUDP
StatsManager.RegisterStat(
new Stat(
+ "IncomingPacketsResentCount",
+ "Number of inbound packets that clients indicate are resends.",
+ "",
+ "",
+ "clientstack",
+ scene.Name,
+ StatType.Pull,
+ MeasuresOfInterest.AverageChangeOverTime,
+ stat => stat.Value = m_udpServer.IncomingPacketsResentCount,
+ StatVerbosity.Debug));
+
+ StatsManager.RegisterStat(
+ new Stat(
"OutgoingUDPSendsCount",
"Number of UDP sends performed",
"",
@@ -318,6 +331,11 @@ namespace OpenSim.Region.ClientStack.LindenUDP
internal int PacketsSentCount { get; set; }
///
+ /// Record how many incoming packets are indicated as resends by clients.
+ ///
+ internal int IncomingPacketsResentCount { get; set; }
+
+ ///
/// Record how many inbound packets could not be recognized as LLUDP packets.
///
public int IncomingMalformedPacketCount { get; private set; }
@@ -1467,6 +1485,11 @@ namespace OpenSim.Region.ClientStack.LindenUDP
#region Incoming Packet Accounting
+ // We're not going to worry about interlock yet since its not currently critical that this total count
+ // is 100% correct
+ if (packet.Header.Resent)
+ IncomingPacketsResentCount++;
+
// Check the archive of received reliable packet IDs to see whether we already received this packet
if (packet.Header.Reliable && !udpClient.PacketArchive.TryEnqueue(packet.Header.Sequence))
{
--
cgit v1.1
From 26fd29622d602cbd63743f4f2fa0b681b00826ed Mon Sep 17 00:00:00 2001
From: Latif Khalifa
Date: Wed, 6 Nov 2013 03:48:48 +0100
Subject: Added sending (for now hard-coded) sim isze in SendMapBlockSplit()
---
OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | 6 ++++++
1 file changed, 6 insertions(+)
(limited to 'OpenSim/Region/ClientStack')
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index 1a2d4de..20bc59c 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -1463,6 +1463,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
mapReply.AgentData.AgentID = AgentId;
mapReply.Data = new MapBlockReplyPacket.DataBlock[mapBlocks2.Length];
+ mapReply.Size = new MapBlockReplyPacket.SizeBlock[mapBlocks2.Length];
mapReply.AgentData.Flags = flag;
for (int i = 0; i < mapBlocks2.Length; i++)
@@ -1477,6 +1478,11 @@ namespace OpenSim.Region.ClientStack.LindenUDP
mapReply.Data[i].RegionFlags = mapBlocks2[i].RegionFlags;
mapReply.Data[i].Access = mapBlocks2[i].Access;
mapReply.Data[i].Agents = mapBlocks2[i].Agents;
+
+ // TODO: hookup varregion sim size here
+ mapReply.Size[i] = new MapBlockReplyPacket.SizeBlock();
+ mapReply.Size[i].SizeX = 256;
+ mapReply.Size[i].SizeY = 256;
}
OutPacket(mapReply, ThrottleOutPacketType.Land);
}
--
cgit v1.1
From ff4e7de7769b7eaa1b4fd3917e59f362b708226a Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Sat, 23 Nov 2013 00:53:09 +0000
Subject: Fix issue where sitting on non-root linked prims would send camera to
wrong position in third-person and mouselook
We now specify sits as offsets from the root prim, as the viewer expects.
---
OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
(limited to 'OpenSim/Region/ClientStack')
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index 20bc59c..29751ff 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -5218,7 +5218,13 @@ namespace OpenSim.Region.ClientStack.LindenUDP
update.NameValue = Utils.StringToBytes("FirstName STRING RW SV " + data.Firstname + "\nLastName STRING RW SV " +
data.Lastname + "\nTitle STRING RW SV " + data.Grouptitle);
update.ObjectData = objectData;
- update.ParentID = data.ParentID;
+
+ SceneObjectPart parentPart = data.ParentPart;
+ if (parentPart != null)
+ update.ParentID = parentPart.ParentGroup.LocalId;
+ else
+ update.ParentID = 0;
+
update.PathCurve = 16;
update.PathScaleX = 100;
update.PathScaleY = 100;
--
cgit v1.1
From 9bdd3dc7de46507b490a2eae5160123a28133d63 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Sat, 23 Nov 2013 01:12:20 +0000
Subject: Still send CameraEyeOffset in UDP SendSitReponse even if at offset is
Vector3.Zero
As far as I can see it's valid to change the eye offset even if you aren't changing the at target.
---
OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)
(limited to 'OpenSim/Region/ClientStack')
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index 29751ff..1ac9d7f 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -2635,11 +2635,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP
{
AvatarSitResponsePacket avatarSitResponse = new AvatarSitResponsePacket();
avatarSitResponse.SitObject.ID = TargetID;
- if (CameraAtOffset != Vector3.Zero)
- {
- avatarSitResponse.SitTransform.CameraAtOffset = CameraAtOffset;
- avatarSitResponse.SitTransform.CameraEyeOffset = CameraEyeOffset;
- }
+ avatarSitResponse.SitTransform.CameraAtOffset = CameraAtOffset;
+ avatarSitResponse.SitTransform.CameraEyeOffset = CameraEyeOffset;
avatarSitResponse.SitTransform.ForceMouselook = ForceMouseLook;
avatarSitResponse.SitTransform.AutoPilot = autopilot;
avatarSitResponse.SitTransform.SitPosition = OffsetPos;
--
cgit v1.1
From a68d1fad73f1b11ef5c1be84da0689586a2c7870 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Sat, 23 Nov 2013 02:29:14 +0000
Subject: Revert "Still send CameraEyeOffset in UDP SendSitReponse even if at
offset is Vector3.Zero"
This reverts commit 9bdd3dc7de46507b490a2eae5160123a28133d63.
---
OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
(limited to 'OpenSim/Region/ClientStack')
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index 1ac9d7f..29751ff 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -2635,8 +2635,11 @@ namespace OpenSim.Region.ClientStack.LindenUDP
{
AvatarSitResponsePacket avatarSitResponse = new AvatarSitResponsePacket();
avatarSitResponse.SitObject.ID = TargetID;
- avatarSitResponse.SitTransform.CameraAtOffset = CameraAtOffset;
- avatarSitResponse.SitTransform.CameraEyeOffset = CameraEyeOffset;
+ if (CameraAtOffset != Vector3.Zero)
+ {
+ avatarSitResponse.SitTransform.CameraAtOffset = CameraAtOffset;
+ avatarSitResponse.SitTransform.CameraEyeOffset = CameraEyeOffset;
+ }
avatarSitResponse.SitTransform.ForceMouselook = ForceMouseLook;
avatarSitResponse.SitTransform.AutoPilot = autopilot;
avatarSitResponse.SitTransform.SitPosition = OffsetPos;
--
cgit v1.1
From 60e049ea39f9b347ac1395c2373d17a983ab7ff3 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Sat, 23 Nov 2013 02:31:39 +0000
Subject: Revert "Fix issue where sitting on non-root linked prims would send
camera to wrong position in third-person and mouselook"
Reverting to place on separate branch
This reverts commit ff4e7de7769b7eaa1b4fd3917e59f362b708226a.
---
OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | 8 +-------
1 file changed, 1 insertion(+), 7 deletions(-)
(limited to 'OpenSim/Region/ClientStack')
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index 29751ff..20bc59c 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -5218,13 +5218,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
update.NameValue = Utils.StringToBytes("FirstName STRING RW SV " + data.Firstname + "\nLastName STRING RW SV " +
data.Lastname + "\nTitle STRING RW SV " + data.Grouptitle);
update.ObjectData = objectData;
-
- SceneObjectPart parentPart = data.ParentPart;
- if (parentPart != null)
- update.ParentID = parentPart.ParentGroup.LocalId;
- else
- update.ParentID = 0;
-
+ update.ParentID = data.ParentID;
update.PathCurve = 16;
update.PathScaleX = 100;
update.PathScaleY = 100;
--
cgit v1.1