LLUDP ClientStack

From OpenSimulator

(Difference between revisions)
Jump to: navigation, search
(More accurate stack setup doc. This is primarily per region rather than per viewer.)
Line 5: Line 5:
 
As such, this stack handles  
 
As such, this stack handles  
  
* Initial setup of an instance of the stack for a viewer.
+
* Setup of an inbound UDP handling stack for each region.
 
* Handling of inbound UDP messages from a connected viewer.
 
* Handling of inbound UDP messages from a connected viewer.
 
* Distribution of recieved UDP messages to appropriate handling code (e.g. selection handling code if a prim is selected).
 
* Distribution of recieved UDP messages to appropriate handling code (e.g. selection handling code if a prim is selected).

Revision as of 15:20, 28 April 2014

Contents

Introduction

These are draft notes on OpenSimulator's implementation of the LLUDP ClientStack, a chunk of code which is used to send and receive packets from viewers (clients) implementing the Linden Labs virtual environment protocol.

As such, this stack handles

  • Setup of an inbound UDP handling stack for each region.
  • Handling of inbound UDP messages from a connected viewer.
  • Distribution of recieved UDP messages to appropriate handling code (e.g. selection handling code if a prim is selected).
  • Sending of outbound UDP messages to a connected viewer.
  • Throttling of outbound messages.
  • Sending and receive of ack messages, both inline within other messages and as standalone messages.
  • Resending of messages that are marked as reliable but for which receipt has not been acknowledged by the viewer.
  • Throttling of outgoing UDP messages.
  • Pooling of clientstack structures (e.g. classes representing messages) in order to improve efficiency and reduce memory usage.

Useful console commands

These are console commands which are useful in debugging or investigating the LLUDP protocol.

  • debug lludp packet [--default] <level> [<avatar-first-name> <avatar-last-name>] - Turn on packet debugging. In OpenSimulator 0.7.5 and previous this command was "debug packet".
  • debug lludp pool <on|off> - Turn object pooling within the lludp component on or off.
  • debug lludp start <in|out|all> - Control LLUDP packet processing.
  • debug lludp status - Return status of LLUDP packet processing.
  • debug lludp stop <in|out|all> - Stop LLUDP packet processing.

Mechanisms

TODO: Need to fill out as required.

Inbound UDP

Other references

  • Sim Throttles contains very old information on the implementation of throttles. This has likely changed considerably but could still be useful.
Personal tools
General
About This Wiki