AVB Multicast Maximum Number of Listeners

Technical discussions around xCORE processors (e.g. xcore-200 & xcore.ai).
Post Reply
JohnnyRoehn
Member
Posts: 15
Joined: Thu May 19, 2016 1:18 pm

AVB Multicast Maximum Number of Listeners

Post by JohnnyRoehn »

Hi,

I am having a question about the maximum number of possible listeners per talker stream in terms of multicast. There is a maximum value of 4 listeners given in the AVB LC source code (AVB_1722_1_MAX_LISTENERS_PER_TALKER - avb_1722_1_default_conf.h). Isn't this number independent of the endpoint capabilities since multicast packet duplication is done in by AVB switchtes?
How can I connect listeners to a multicast talker stream with AVDECC ACMP messages? Which MAC adresses should be used?

Thanks
Johnny


User avatar
ers35
Active Member
Posts: 62
Joined: Mon Jun 10, 2013 2:14 pm
Contact:

Post by ers35 »

JohnnyRoehn wrote:Isn't this number independent of the endpoint capabilities
You are correct that the number of multicast AVB listeners is independent of the talker endpoint capabilities. However, section 8.2.2.6.2.2 of the 1722.1 spec states that the AVDECC talker stores the listener_entity_id and listener_unique_id of each AVDECC listener that is connected to its talker stream. This places an additional requirement on the AVDECC entity tracking such connections which in this case is the XMOS endpoint.

Depending on your use case you may be able to either increase AVB_1722_1_MAX_LISTENERS_PER_TALKER or accept that ACMP_STATUS_NO_SUCH_CONNECTION is returned by acmp_talker_get_connection() once the listener connection_count is greater than AVB_1722_1_MAX_LISTENERS_PER_TALKER. This may or may not be an issue depending on the requirements imposed by the implementations of the other endpoints on the AVB network and the AVDECC controller used to make the connection. If there is no issue all listeners will receive the talker stream, but the talker connection information available with AVDECC will be limited to AVB_1722_1_MAX_LISTENERS_PER_TALKER.
JohnnyRoehn wrote:How can I connect listeners to a multicast talker stream with AVDECC ACMP messages? Which MAC adresses should be used?
Are you willing to use external AVDECC controller software or do you want to use the XMOS endpoint to make the connection? Can you explain your use case in more detail?
JohnnyRoehn
Member
Posts: 15
Joined: Thu May 19, 2016 1:18 pm

Post by JohnnyRoehn »

Thank you for the quick reply!

Yes I want to use an external AVDECC Controller like the avdecc cmd tool to connect the streams. How can I connect multiple listeners to one talker stream? I need to type in source and destination MAC adresses.
User avatar
ers35
Active Member
Posts: 62
Joined: Mon Jun 10, 2013 2:14 pm
Contact:

Post by ers35 »

avdecccmdline contains help for its commands. You can list discovered entities on a network so you do not have to manually enter addresses. See an example session below:

Code: Select all

$ sudo ./avdecccmdline

AVDECC Controller version: v0.6.1
1 (lo, address: <127.0.0.1>)
2 (eth0, address: <192.168.1.149>)
3 (virbr0, address: <192.168.122.1>)
4 (lxcbr0, address: <10.0.3.1>)
Enter the interface number (1-4): 2

$ help list
list 
Display a table with information about each End Station.

$ list
End Station  |  Name                  |  Entity ID         |  Firmware Version  |  MAC
----------------------------------------------------------------------------------------------------

C - End Station Connected.
D - End Station Disconnected.

$ help connect
connect [s_e_s] [s_d_i] [d_e_s] [d_d_i] [f] 
Connect an instream to an outstream.
Parameters:
  s_e_s    : the source End Station (index as int or Entity ID)
  s_d_i    : the source descriptor index (type int)
  d_e_s    : the destination End Station (index as int or Entity ID)
  d_d_i    : the destination descriptor index (type int)
  f        : the set of flags (type string)
               Valid flags are class_b, fast_connect, saved_state, streaming_wait,
               supports_encrypted, encrypted_pdu, and talker_failed.

connect [d_e_s] [d_d_i] 
Display all the available outstreams for all End Stations that can connect with
the instreams.
Parameters:
  d_e_s    : the destination End Station (index as int or Entity ID)
  d_d_i    : the destination descriptor index (type int)

connect 
Display all the available instreams for all End Stations.

$ connect [s_e_s] [s_d_i] [d_e_s] [d_d_i]
Alternatively, use a GUI AVDECC controller like Riedel AVB Manager or the Pivitec AVDECC Controller.
Post Reply