diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs
index 664e23e55f..9dfe0e98b5 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs
@@ -247,6 +247,11 @@ namespace OpenSim.Region.ClientStack.LindenUDP
//private UDPClientCollection m_clients = new UDPClientCollection();
/// Bandwidth throttle for this UDP server
protected TokenBucket m_throttle;
+
+ ///
+ /// Gets the maximum total drip rate allowed to all clients.
+ ///
+ public long MaxTotalDripRate { get { return m_throttle.RequestedDripRate; } }
/// Bandwidth throttle rates for this UDP server
public ThrottleRates ThrottleRates { get; private set; }
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServerCommands.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServerCommands.cs
index 5b23080327..354a47da39 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServerCommands.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServerCommands.cs
@@ -47,6 +47,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP
public void Register()
{
+ m_console.Commands.AddCommand(
+ "Comms", false, "show server throttles",
+ "show server throttles",
+ "Show information about server throttles",
+ HandleShowServerThrottlesCommand);
+
m_console.Commands.AddCommand(
"Debug", false, "debug lludp packet",
"debug lludp packet [--default | --all] [ ]",
@@ -155,6 +161,21 @@ namespace OpenSim.Region.ClientStack.LindenUDP
HandleAgentUpdateCommand);
}
+ private void HandleShowServerThrottlesCommand(string module, string[] args)
+ {
+ if (SceneManager.Instance.CurrentScene != null && SceneManager.Instance.CurrentScene != m_udpServer.Scene)
+ return;
+
+ m_console.OutputFormat("Throttles for {0}", m_udpServer.Scene.Name);
+ ConsoleDisplayList cdl = new ConsoleDisplayList();
+ cdl.AddRow("Adaptive throttles", m_udpServer.ThrottleRates.AdaptiveThrottlesEnabled);
+ cdl.AddRow(
+ "Max scene throttle",
+ m_udpServer.MaxTotalDripRate != 0 ? string.Format("{0} kbit", m_udpServer.MaxTotalDripRate / 8 / 1000) : "unset");
+
+ m_console.Output(cdl.ToString());
+ }
+
private void HandleDataCommand(string module, string[] args)
{
if (SceneManager.Instance.CurrentScene != null && SceneManager.Instance.CurrentScene != m_udpServer.Scene)