Uploaded image for project: 'EtherNet/IP Core V3'
  1. EtherNet/IP Core V3
  2. PSEIP-1171

[Scanner] Consumer IO transport receives IO packets before binding to a connection, blocks updating of ACTIVE bitlist

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: V3.8.0.15
    • Component/s: Core
    • Labels:
      None
    • Account:
      SPC EthernetIp Core (SPCETHERNET)

      Description

      It's observed that in a multi adapter setup, some times the scanner's ACTIVE bit list is not updated properly and some devices are missing in this bit list even if they are in a communication with the scanner and exchanging IO packets.

      Root of the issue:
      To establish connections on a scanner, the scanner will send a ForwardOpen requests to a list of adapters and then allocates and configures the required resources after receiving the ForwradOpen response from each adapter in the foolowing order:

      1. Allocating and configuring the Producer IO transport 
      2. Allocating and configuring the Consumer IO transport 
      3. Binding athe associated Connection Configuration instance to those Consuming/Producing transports.

      Once the consuming assembly is allocated, it will transition to ready state WAIT_FOR_DATA even if the binding is still not started. Receiving an IO packet in the high-prio thread, will trigger a one-shot update procedure of the ACTIVE bitlist which will fail since no Connection is associated with that transport yet.

        Attachments

          Issue Links

            Expenses

              Activity

                Status Description

                  People

                  • Reporter:
                    OKompani Omid Kompani
                  • Votes:
                    0 Vote for this issue
                    Watchers:
                    1 Start watching this issue

                    Dates

                    • Created:
                      Updated:
                      Resolved: