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