Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Connection procedure not working #3

Open
grrrr opened this issue Jan 20, 2024 · 1 comment
Open

Connection procedure not working #3

grrrr opened this issue Jan 20, 2024 · 1 comment

Comments

@grrrr
Copy link
Contributor

grrrr commented Jan 20, 2024

Currently, the connection through a ATDECC controller of a talker to a listener is not working. It does not respond with a CONNECT_TX_COMMAND.

From analyzing working commercial endpoints, the process seems is the following:

  • Controller to IEEE1722 Multicast: AVDECC Connection Management Protocol CONNECT_RX_COMMAND
  • Listener to IEEE1722 Multicast: AVDECC Connection Management Protocol CONNECT_RX_RESPONSE
  • Listener to IEEE1722 Multicast: AVDECC Connection Management Protocol CONNECT_TX_COMMAND
  • Talker to IEEE1722 Multicast: AVDECC Connection Management Protocol CONNECT_TX_RESPONSE

This is also described in Section 8.1.1 in the IEEE 17221-2021 document (although a little cryptic, because of exception cases):

  • The ATDECC Controller sends a CONNECT_RX_COMMAND to the ATDECC Listener.
  • The ATDECC Listener sends a CONNECT_TX_COMMAND to the ATDECC Talker.
  • The ATDECC Talker responds with an appropriate STATUS and the connection information.
  • In case of a timeout of the first CONNECT_TX_COMMAND, the ATDECC Listener sends a single retry to the ATDECC Talker. If this command fails then the ATDECC Listener returns failure for the CONNECT_RX_COMMAND.

The successful sequence captured through tshark looks like this:

Frame 140: 70 bytes on wire (560 bits), 70 bytes captured (560 bits) on interface enp7s0, id 0
    Section number: 1
    Interface id: 0 (enp7s0)
        Interface name: enp7s0
    Encapsulation type: Ethernet (1)
    Arrival Time: Jan 20, 2024 13:53:43.214685558 CET
    [Time shift for this packet: 0.000000000 seconds]
    Epoch Time: 1705755223.214685558 seconds
    [Time delta from previous captured frame: 0.019706947 seconds]
    [Time delta from previous displayed frame: 0.588755977 seconds]
    [Time since reference or first frame: 4.080592344 seconds]
    Frame Number: 140
    Frame Length: 70 bytes (560 bits)
    Capture Length: 70 bytes (560 bits)
    [Frame is marked: False]
    [Frame is ignored: False]
    [Protocols in frame: eth:ethertype:ieee1722:ieee17221]
Ethernet II, Src: IntelCor_ec:a0:e5 (00:1b:21:ec:a0:e5), Dst: IEEE1722_01:00:00 (91:e0:f0:01:00:00)
    Destination: IEEE1722_01:00:00 (91:e0:f0:01:00:00)
        Address: IEEE1722_01:00:00 (91:e0:f0:01:00:00)
        .... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
        .... ...1 .... .... .... .... = IG bit: Group address (multicast/broadcast)
    Source: IntelCor_ec:a0:e5 (00:1b:21:ec:a0:e5)
        Address: IntelCor_ec:a0:e5 (00:1b:21:ec:a0:e5)
        .... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
        .... ...0 .... .... .... .... = IG bit: Individual address (unicast)
    Type: IEEE 1722 Audio Video Transport Protocol (0x22f0)
IEEE 1722 Audio Video Transport Protocol (AVTP)
    AVTP Subtype: AVDECC Connection Management Protocol (0xfc)
    0... .... = AVTP Stream ID Valid: False
    .000 .... = AVTP Version: 0x0
IEEE 1722.1 Protocol
    .... 0110 = Message Type: CONNECT_RX_COMMAND (6)
    0000 0... = Status Field: SUCCESS (0)
    .... .000 0010 1100 = Control Data Length: 44
    Stream ID: 0x0000000000000000
    Controller GUID: 0x001b21eca0e50083
    Talker GUID: 0x020000fffe000019
    Listener GUID: 0x480bb2fffed08169
    Talker Unique ID: 0x0001
    Listener Unique ID: 0x0000
    Destination MAC address: 00:00:00_00:00:00 (00:00:00:00:00:00)
    Connection Count: 0
    Sequence ID: 0x001c
    Flags: 0x0000
        .... .... .... ...0 = CLASS_B: False
        .... .... .... ..0. = FAST_CONNECT: False
        .... .... .... .0.. = SAVED_STATE: False
        .... .... .... 0... = STREAMING_WAIT: False
        .... .... ...0 .... = SUPPORTS_ENCRYPTED: False
        .... .... ..0. .... = ENCRYPTED_PDU: False
        .... .... .0.. .... = TALKER_FAILED: False
    Stream VLAN Id: 0x0000

Frame 141: 70 bytes on wire (560 bits), 70 bytes captured (560 bits) on interface enp7s0, id 0
    Section number: 1
    Interface id: 0 (enp7s0)
        Interface name: enp7s0
    Encapsulation type: Ethernet (1)
    Arrival Time: Jan 20, 2024 13:53:43.219645441 CET
    [Time shift for this packet: 0.000000000 seconds]
    Epoch Time: 1705755223.219645441 seconds
    [Time delta from previous captured frame: 0.004959883 seconds]
    [Time delta from previous displayed frame: 0.004959883 seconds]
    [Time since reference or first frame: 4.085552227 seconds]
    Frame Number: 141
    Frame Length: 70 bytes (560 bits)
    Capture Length: 70 bytes (560 bits)
    [Frame is marked: False]
    [Frame is ignored: False]
    [Protocols in frame: eth:ethertype:ieee1722:ieee17221]
Ethernet II, Src: M2Lab_81:69 (48:0b:b2:d0:81:69), Dst: IEEE1722_01:00:00 (91:e0:f0:01:00:00)
    Destination: IEEE1722_01:00:00 (91:e0:f0:01:00:00)
        Address: IEEE1722_01:00:00 (91:e0:f0:01:00:00)
        .... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
        .... ...1 .... .... .... .... = IG bit: Group address (multicast/broadcast)
    Source: M2Lab_81:69 (48:0b:b2:d0:81:69)
        Address: M2Lab_81:69 (48:0b:b2:d0:81:69)
        .... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
        .... ...0 .... .... .... .... = IG bit: Individual address (unicast)
    Type: IEEE 1722 Audio Video Transport Protocol (0x22f0)
IEEE 1722 Audio Video Transport Protocol (AVTP)
    AVTP Subtype: AVDECC Connection Management Protocol (0xfc)
    0... .... = AVTP Stream ID Valid: False
    .000 .... = AVTP Version: 0x0
IEEE 1722.1 Protocol
    .... 0111 = Message Type: CONNECT_RX_RESPONSE (7)
    0000 0... = Status Field: SUCCESS (0)
    .... .000 0010 1100 = Control Data Length: 44
    Stream ID: 0x0000000000000000
    Controller GUID: 0x001b21eca0e50083
    Talker GUID: 0x020000fffe000019
    Listener GUID: 0x480bb2fffed08169
    Talker Unique ID: 0x0001
    Listener Unique ID: 0x0000
    Destination MAC address: 00:00:00_00:00:00 (00:00:00:00:00:00)
    Connection Count: 1
    Sequence ID: 0x001c
    Flags: 0x0000
        .... .... .... ...0 = CLASS_B: False
        .... .... .... ..0. = FAST_CONNECT: False
        .... .... .... .0.. = SAVED_STATE: False
        .... .... .... 0... = STREAMING_WAIT: False
        .... .... ...0 .... = SUPPORTS_ENCRYPTED: False
        .... .... ..0. .... = ENCRYPTED_PDU: False
        .... .... .0.. .... = TALKER_FAILED: False
    Stream VLAN Id: 0x0000

Frame 142: 70 bytes on wire (560 bits), 70 bytes captured (560 bits) on interface enp7s0, id 0
    Section number: 1
    Interface id: 0 (enp7s0)
        Interface name: enp7s0
    Encapsulation type: Ethernet (1)
    Arrival Time: Jan 20, 2024 13:53:43.219733066 CET
    [Time shift for this packet: 0.000000000 seconds]
    Epoch Time: 1705755223.219733066 seconds
    [Time delta from previous captured frame: 0.000087625 seconds]
    [Time delta from previous displayed frame: 0.000087625 seconds]
    [Time since reference or first frame: 4.085639852 seconds]
    Frame Number: 142
    Frame Length: 70 bytes (560 bits)
    Capture Length: 70 bytes (560 bits)
    [Frame is marked: False]
    [Frame is ignored: False]
    [Protocols in frame: eth:ethertype:ieee1722:ieee17221]
Ethernet II, Src: M2Lab_81:69 (48:0b:b2:d0:81:69), Dst: IEEE1722_01:00:00 (91:e0:f0:01:00:00)
    Destination: IEEE1722_01:00:00 (91:e0:f0:01:00:00)
        Address: IEEE1722_01:00:00 (91:e0:f0:01:00:00)
        .... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
        .... ...1 .... .... .... .... = IG bit: Group address (multicast/broadcast)
    Source: M2Lab_81:69 (48:0b:b2:d0:81:69)
        Address: M2Lab_81:69 (48:0b:b2:d0:81:69)
        .... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
        .... ...0 .... .... .... .... = IG bit: Individual address (unicast)
    Type: IEEE 1722 Audio Video Transport Protocol (0x22f0)
IEEE 1722 Audio Video Transport Protocol (AVTP)
    AVTP Subtype: AVDECC Connection Management Protocol (0xfc)
    0... .... = AVTP Stream ID Valid: False
    .000 .... = AVTP Version: 0x0
IEEE 1722.1 Protocol
    .... 0000 = Message Type: CONNECT_TX_COMMAND (0)
    0000 0... = Status Field: SUCCESS (0)
    .... .000 0010 1100 = Control Data Length: 44
    Stream ID: 0x0000000000000000
    Controller GUID: 0x001b21eca0e50083
    Talker GUID: 0x020000fffe000019
    Listener GUID: 0x480bb2fffed08169
    Talker Unique ID: 0x0001
    Listener Unique ID: 0x0000
    Destination MAC address: 00:00:00_00:00:00 (00:00:00:00:00:00)
    Connection Count: 0
    Sequence ID: 0x0009
    Flags: 0x0002
        .... .... .... ...0 = CLASS_B: False
        .... .... .... ..1. = FAST_CONNECT: True
        .... .... .... .0.. = SAVED_STATE: False
        .... .... .... 0... = STREAMING_WAIT: False
        .... .... ...0 .... = SUPPORTS_ENCRYPTED: False
        .... .... ..0. .... = ENCRYPTED_PDU: False
        .... .... .0.. .... = TALKER_FAILED: False
    Stream VLAN Id: 0x0000

Frame 143: 70 bytes on wire (560 bits), 70 bytes captured (560 bits) on interface enp7s0, id 0
    Section number: 1
    Interface id: 0 (enp7s0)
        Interface name: enp7s0
    Encapsulation type: Ethernet (1)
    Arrival Time: Jan 20, 2024 13:53:43.219889507 CET
    [Time shift for this packet: 0.000000000 seconds]
    Epoch Time: 1705755223.219889507 seconds
    [Time delta from previous captured frame: 0.000156441 seconds]
    [Time delta from previous displayed frame: 0.000156441 seconds]
    [Time since reference or first frame: 4.085796293 seconds]
    Frame Number: 143
    Frame Length: 70 bytes (560 bits)
    Capture Length: 70 bytes (560 bits)
    [Frame is marked: False]
    [Frame is ignored: False]
    [Protocols in frame: eth:ethertype:ieee1722:ieee17221]
Ethernet II, Src: 02:00:00:00:00:19 (02:00:00:00:00:19), Dst: IEEE1722_01:00:00 (91:e0:f0:01:00:00)
    Destination: IEEE1722_01:00:00 (91:e0:f0:01:00:00)
        Address: IEEE1722_01:00:00 (91:e0:f0:01:00:00)
        .... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
        .... ...1 .... .... .... .... = IG bit: Group address (multicast/broadcast)
    Source: 02:00:00:00:00:19 (02:00:00:00:00:19)
        Address: 02:00:00:00:00:19 (02:00:00:00:00:19)
        .... ..1. .... .... .... .... = LG bit: Locally administered address (this is NOT the factory default)
        .... ...0 .... .... .... .... = IG bit: Individual address (unicast)
    Type: IEEE 1722 Audio Video Transport Protocol (0x22f0)
IEEE 1722 Audio Video Transport Protocol (AVTP)
    AVTP Subtype: AVDECC Connection Management Protocol (0xfc)
    0... .... = AVTP Stream ID Valid: False
    .000 .... = AVTP Version: 0x0
IEEE 1722.1 Protocol
    .... 0001 = Message Type: CONNECT_TX_RESPONSE (1)
    0000 0... = Status Field: SUCCESS (0)
    .... .000 0010 1100 = Control Data Length: 44
    Stream ID: 0x0200000000190001
    Controller GUID: 0x001b21eca0e50083
    Talker GUID: 0x020000fffe000019
    Listener GUID: 0x480bb2fffed08169
    Talker Unique ID: 0x0001
    Listener Unique ID: 0x0000
    Destination MAC address: IEEE1722_00:86:de (91:e0:f0:00:86:de)
    Connection Count: 1
    Sequence ID: 0x0009
    Flags: 0x0002
        .... .... .... ...0 = CLASS_B: False
        .... .... .... ..1. = FAST_CONNECT: True
        .... .... .... .0.. = SAVED_STATE: False
        .... .... .... 0... = STREAMING_WAIT: False
        .... .... ...0 .... = SUPPORTS_ENCRYPTED: False
        .... .... ..0. .... = ENCRYPTED_PDU: False
        .... .... .0.. .... = TALKER_FAILED: False
    Stream VLAN Id: 0x0002
@grrrr
Copy link
Contributor Author

grrrr commented Jan 20, 2024

The problem is that the listener_unique_id checked in the _handleConnectRxCommand and other methods is not correctly set/handled, so that the validListenerUnique function returns false.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant