Cleaning up OpenSim.ini.example for LLUDP. The [LLClient] section has been removed and several new parameters have been added to [ClientStack.LindenUDP]

0.6.8-post-fixes
John Hurliman 2009-10-23 10:35:47 -07:00
parent 71c929137f
commit 4c45b5fd3c
3 changed files with 58 additions and 45 deletions

View File

@ -346,15 +346,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
protected int m_terrainCheckerCount;
protected uint m_agentFOVCounter;
// These numbers are guesses at a decent tradeoff between responsiveness
// of the interest list and throughput. Lower is more responsive, higher
// is better throughput
protected int m_primTerseUpdatesPerPacket = 25;
protected int m_primFullUpdatesPerPacket = 100;
protected int m_avatarTerseUpdatesPerPacket = 10;
/// <summary>Number of texture packets to put on the queue each time the
/// OnQueueEmpty event is triggered for the texture category</summary>
protected int m_textureSendLimit = 20;
protected IAssetService m_assetService;
private IHyperAssetService m_hyperAssets;
@ -3333,7 +3324,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
lock (m_avatarTerseUpdates.SyncRoot)
{
int count = Math.Min(m_avatarTerseUpdates.Count, m_avatarTerseUpdatesPerPacket);
int count = Math.Min(m_avatarTerseUpdates.Count, m_udpServer.AvatarTerseUpdatesPerPacket);
if (count == 0)
return;
@ -3418,7 +3409,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
lock (m_primFullUpdates.SyncRoot)
{
int count = Math.Min(m_primFullUpdates.Count, m_primFullUpdatesPerPacket);
int count = Math.Min(m_primFullUpdates.Count, m_udpServer.PrimFullUpdatesPerPacket);
if (count == 0)
return;
@ -3462,7 +3453,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
lock (m_primTerseUpdates.SyncRoot)
{
int count = Math.Min(m_primTerseUpdates.Count, m_primTerseUpdatesPerPacket);
int count = Math.Min(m_primTerseUpdates.Count, m_udpServer.PrimTerseUpdatesPerPacket);
if (count == 0)
return;
@ -3585,7 +3576,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
void ProcessTextureRequests()
{
if (m_imageManager != null)
m_imageManager.ProcessImageQueue(m_textureSendLimit);
m_imageManager.ProcessImageQueue(m_udpServer.TextureSendLimit);
}
public void SendAssetUploadCompleteMessage(sbyte AssetType, bool Success, UUID AssetFullID)

View File

@ -98,6 +98,18 @@ namespace OpenSim.Region.ClientStack.LindenUDP
/// <summary>The measured resolution of Environment.TickCount</summary>
public readonly float TickCountResolution;
/// <summary>Number of terse prim updates to put on the queue each time the
/// OnQueueEmpty event is triggered for updates</summary>
public readonly int PrimTerseUpdatesPerPacket;
/// <summary>Number of terse avatar updates to put on the queue each time the
/// OnQueueEmpty event is triggered for updates</summary>
public readonly int AvatarTerseUpdatesPerPacket;
/// <summary>Number of full prim updates to put on the queue each time the
/// OnQueueEmpty event is triggered for updates</summary>
public readonly int PrimFullUpdatesPerPacket;
/// <summary>Number of texture packets to put on the queue each time the
/// OnQueueEmpty event is triggered for textures</summary>
public readonly int TextureSendLimit;
/// <summary>Handlers for incoming packets</summary>
//PacketEventDictionary packetEvents = new PacketEventDictionary();
@ -172,6 +184,18 @@ namespace OpenSim.Region.ClientStack.LindenUDP
m_asyncPacketHandling = config.GetBoolean("async_packet_handling", false);
m_recvBufferSize = config.GetInt("client_socket_rcvbuf_size", 0);
sceneThrottleBps = config.GetInt("scene_throttle_max_bps", 0);
PrimTerseUpdatesPerPacket = config.GetInt("PrimTerseUpdatesPerPacket", 25);
AvatarTerseUpdatesPerPacket = config.GetInt("AvatarTerseUpdatesPerPacket", 10);
PrimFullUpdatesPerPacket = config.GetInt("PrimFullUpdatesPerPacket", 100);
TextureSendLimit = config.GetInt("TextureSendLimit", 20);
}
else
{
PrimTerseUpdatesPerPacket = 25;
AvatarTerseUpdatesPerPacket = 10;
PrimFullUpdatesPerPacket = 100;
TextureSendLimit = 20;
}
m_throttle = new TokenBucket(null, sceneThrottleBps, sceneThrottleBps);

View File

@ -355,8 +355,9 @@
; already separated from packet handling with a queue, so this will only
; affect whether networking internals such as packet decoding and
; acknowledgement accounting are done synchronously or asynchronously
async_packet_handling = false
;
;async_packet_handling = false
; The client socket receive buffer size determines how many
; incoming requests we can process; the default on .NET is 8192
; which is about 2 4k-sized UDP datagrams. On mono this is
@ -371,22 +372,26 @@
; by the system's settings for the maximum client receive buffer
; size (on linux systems you can set that with "sysctl -w
; net.core.rmem_max=X")
;
;client_socket_rcvbuf_size = 8388608
; Maximum outbound bytes per second for a single scene. This can be used to
; throttle total outbound UDP traffic for a simulator. The default value is
; 0, meaning no throttling at the scene level. The example given here is
; 20 megabits
;
;scene_throttle_max_bps = 2621440
; Maximum bits per second to send to any single client. This will override
; the user's viewer preference settings. The default value is 0, meaning no
; aggregate throttling on clients (only per-category throttling). The
; example given here is 1.5 megabits
;
;client_throttle_max_bps = 196608
; Per-client bytes per second rates for the various throttle categories.
; These are default values that will be overriden by clients
;
;resend_default = 12500
;land_default = 500
;wind_default = 500
@ -399,6 +404,7 @@
; Per-client maximum burst rates in bytes per second for the various
; throttle categories. These are default values that will be overriden by
; clients
;
;resend_limit = 18750
;land_limit = 29750
;wind_limit = 18750
@ -407,6 +413,28 @@
;texture_limit = 55750
;asset_limit = 27500
;state_limit = 37000
; Configures how ObjectUpdates are aggregated. These numbers
; do not literally mean how many updates will be put in each
; packet that goes over the wire, as packets are
; automatically split on a 1400 byte boundary. These control
; the balance between responsiveness of interest list updates
; and total throughput. Higher numbers will ensure more full-
; sized packets and faster sending of data, but more delay in
; updating interest lists
;
;PrimTerseUpdatesPerPacket = 25
;AvatarTerseUpdatesPerPacket = 10
;PrimFullUpdatesPerPacket = 100
; TextureSendLimit determines how many packets will be put on
; the outgoing queue each cycle. Like the settings above, this
; is a balance between responsiveness to priority updates and
; total throughput. Higher numbers will give a better
; throughput at the cost of reduced responsiveness to client
; priority changes or transfer aborts
;
;TextureSendLimit = 20
[Chat]
; Controls whether the chat module is enabled. Default is true.
@ -1365,36 +1393,6 @@
;RecycleDataBlocks = true;
[LLClient]
; Resend packets markes as reliable until they are received
;
;ReliableIsImportant = false
; Maximum number of times to resend packets marked reliable
;
;MaxReliableResends = 3
; Configures how ObjectUpdates are compressed.
;
;TerseUpdatesPerPacket=10
;FullUpdatesPerPacket=14
;TerseUpdateRate=10
;FullUpdateRate=14
;PacketMTU = 1400
; TextureSendLimit determines how many different textures
; will be considered on each cycle. Textures are selected
; by priority. The old mechanism specified a value of 10 for
; this parameter.
;
;TextureSendLimit = 10
; TextureDataLimit determines how many packets will be sent for
; each of the selected textures. Default is 5.
;
;TextureDataLimit = 5
[InterestManagement]
; This section controls how state updates are prioritized for each client
; Valid values are Time, Distance, SimpleAngularDistance, and FrontBack