Personal tools
The Open Lighting Project has moved!

We've launched our new site at www.openlighting.org. This wiki will remain and be updated with more technical information.

Difference between revisions of "OLA ArtNet Roadmap"

From wiki.openlighting.org

Jump to: navigation, search
(Optimize Send Path)
Line 12: Line 12:
 
== Proposed Changes==
 
== Proposed Changes==
  
=== Optimize Send Path ===
+
=== Investigate Optimizing the Send Path ===
 +
 
 +
The [http://man7.org/linux/man-pages/man2/sendmmsg.2.html sendmmsg] syscall was added in Linux 3.0. It allows multiple datagrams to be sent with a single syscall. sendmmsg would allos us to reduce the number of syscalls required for each ArtNet packet when unicasting. This scope of this change is to make the required changes and then benchmark the performance.
 +
 
 +
Steps:
 +
* Detect support for sendmmsg in configure.ac
 +
* Add a method to the UDPSocket class to enable a single data message to be sent to many addresses
 +
* Modify the ArtNetNode::SendDMX method to use the new UDPSocket method
  
 
=== Multiple ArtNet Devices ===
 
=== Multiple ArtNet Devices ===

Revision as of 09:34, 8 March 2013

This describes proposed changes to the OLA ArtNet plugin to make it more usable. Some of the use cases that have been requested include:

  • Receiving broadcast ArtNet data and unicasting to a static list of destinations
  • Converting many universes (10s, 100s?) from ArtNet to E1.31 and visa versa.

Requirements

  • Support multiple ArtNet Devices, one per logical network interface.
  • Support unicasting data to a static list of IPv4 addresses.
  • Support more than 4 ports in both directions
  • De-couple the ArtNet universe from the OLA universe number to support any-way patching. i.e. patch ArtNet universe 5 to OLA universe 3.

Proposed Changes

Investigate Optimizing the Send Path

The sendmmsg syscall was added in Linux 3.0. It allows multiple datagrams to be sent with a single syscall. sendmmsg would allos us to reduce the number of syscalls required for each ArtNet packet when unicasting. This scope of this change is to make the required changes and then benchmark the performance.

Steps:

  • Detect support for sendmmsg in configure.ac
  • Add a method to the UDPSocket class to enable a single data message to be sent to many addresses
  • Modify the ArtNetNode::SendDMX method to use the new UDPSocket method

Multiple ArtNet Devices

Increased Output Ports

Increased Input Ports