Skip to main content
Electronic Theatre Controls Inc

Troubleshooting sACN priority using Wireshark

Introduction

As discussed in Difference between sACN per-address and per-port priority, ANSI E1.31 streaming ACN (sACN) priority is a powerful way to determine which source's levels will be used on lighting networks. When there are unexpected results, and sACNview isn't providing the necessary information to solve the problem, using Wireshark to capture network data may be a next step. Wireshark is a free third-party utility used to capture raw packet information on a network. For sACN troubleshooting it's typically only used when very deep troubleshooting is needed, and often requires port-mirroring specific devices to see what data is or is not being sent to/from said device. If you're using this tool chances are high that you're already working with ETC Technical Support for assistance.

As a starting point, reference the information in Wireshark - Setup and Background Info for the basics of setting up a capture. ETC Technical Support can help determine where the best place to plug into the network is, or which device's traffic needs captured. Most of the time Wireshark captures will be sent to ETC for diagnosis, but the information below is provided to help users understand how sACN priority can be found in the packets.

NOTE: Wireshark as a tool does not know or tell you if the data it's showing you is correct. It's just displaying information and helping dissect the packets. Only the people reading the data will be able to determine if the data is correct and/or missing.

sACN-specific Wireshark Setup

Before sACN data can be viewed in Wireshark, the program must have the ACN protocol enabled, or the packets won't be nearly as readable.

  1. Navigate to Analyze > Enabled Protocols
  2. In the Search field at the top of the new window, type in "ACN" without quotes to narrow the list of protocols. Make sure both the "ACN" and "acn" boxes are checked per the screenshot below.
    priority-04.png
  3. Click [OK] in the Enabled Protocols window to save the settings and close the window
  4. Navigate to Edit > Preferences
  5. In the browser on the left side of Preferences, expand Protocols, and scroll/select ACN in the list
  6. Check the Streaming DMX box
    priority-03.png
  7. Other ACN settings can be changed to user-preference, such as the display format of the DMX, and how many values to display per line
  8. Click [OK] in the Preferences to save the settings and close the window

Proceed to capturing/saving the data.

Filtering Wireshark to show sACN packets

Once the capture is taken, there will be a lot of packets displayed, many of which have nothing to do with sACN. Wireshark offers powerful filtering tools to only display the packets of interest. Although there are many ways to filter them, and additional columns can be added to show sACN-specific data, this article will only point out the basics.

Firstly all the filters below are entered in the filter field where it says "Apply a display filter".
priority-05.png

Secondly, although some products are capable of outputting sACN via unicast, most products send/receive sACN via multicast traffic. Each sACN universe is associated with a specific multicast IP address within the 239.255/16 subnet. Refer to the sACN Multicast Calculator to determine which addresses/universes are seen in a capture.

Filtering by all sACN traffic

acn.dmx.universe!=0

This filter includes all sACN packets within the capture that are not universe 0, which is everything. It's useful for the "big picture" to check what is all coming across the port/product the capture was taken for. In the example screenshot below there are two universes (81 and 701) being output from two different sources at 10.101.10.101 and 10.101.250.101.

priority-06.png

NOTE: filtering using just acn will produce similar results, but may also include non-sACN traffic that's still transmitted as part of the larger ACN protocol.

Filtering by specific sources

ip.src==aaa.bbb.ccc.ddd && acn.dmx.universe!=0

This filter includes all sACN data that is not universe 0 from a specific source, which is useful for diagnosing what is coming from a specific product. aaa.bbb.ccc.ddd is the IP address of the source device. The example screenshot shows that the only universe output from 10.101.10.101 is 701 (239.255.2.189).

priority-07.png

Filtering by specific sACN universes

acn.dmx.universe==xxx - where xxx is the sACN universe #
OR
ip.dst==239.255.yyy.zzz - where yyy.zzz is the last two octects of the universe's multicast IP address

This filter includes sACN data for a specific universe from all sources, which is useful for diagnosing problems with overlapping sources. The example screenshot below shows there are two sources (10.101.10.101 and 10.101.250.41) that are both outputting universe 701 (239.255.2.189).

priority-08.png

Filtering by specific sources AND sACN universes

ip.src==aaa.bbb.ccc.ddd && acn.dmx.universe==xxx - where aaa.bbb.ccc.ddd is the source's IP address and xxx is the sACN universe
OR
ip.src==aaa.bbb.ccc.ddd && ip.dst==239.255.yyy.zzz - where aaa.bbb.ccc.ddd is the source's IP address, and yyy.zzz are the last two octets of the universe's multicast IP address.

This filter includes sACN data for a specific universe output from a single source. This is useful for checking that all data from the source is properly sequenced and within the expected timing. The example screenshot below shows universe 81 (239.255.0.81) output from source 10.101.250.101.

priority-09.png

Checking priority in sACN packets

Once the packets are filtered to the desired view, it's time to inspect them for priority and level values. Priority values are found in different places depending on if it's a level packet (0x00) or a priority packet (0xdd). Each is outlined separately below.

Per-Port Priority

Any sACN packet's priority can be viewed in Wireshark by selecting the packet, and in the Packet Details pane expand "Architecture for Control Networks > PDU: Root DMX". The priority can be found on the "PDU: Streaming DMX" line below the source's CID, next to the universe #. Below is a screenshot with the priority value outlined in a red box which tells us this packet is for Universe 701 at priority 100.

priority-01.png

Since all sACN packet's have a priority (even per-address priority 0xdd packets), the packet must be further inspected to confirm whether this is a level (0x00) or priority (0xdd) packet. To do so expand "PDU: Streaming DMX > PDU: Set Property". This exposes several bits of information, one of which is the Start Code, as outlined in red in the screenshot below. Since the Start Code in the screenshot is 0x00, that means the values below the Start Code are level data, and all levels will share the same priority displayed above.

priority-10.png

Per-Address Priority

To see per-address priority levels first select the packet and confirm if it's a level or priority packet by expanding "Architecture for Control Networks > PDU: Root DMX > PDU: Streaming DMX > PDU: Set Property". If the Start Code is 0xdd, as outlined in red in the screenshot below, that means it's a priority packet. The data following the Start Code are the priority values for each address. The screenshot shows addresses 9 and 10 with a value of 64, which converts to priority 100 in decimal form, and all other displayed addresses are priority 0, noted by the double period: "..".

priority-02.png

  • Was this article helpful?