Uploaded image for project: 'PROFINET IO-Device V4'
  1. PROFINET IO-Device V4
  2. PSPNSV4-39

Improve DCP Ident All Response Delay calculation

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: V3.6.0.0
    • Fix Version/s: V3.6.1.0
    • Labels:
      None
    • Sprint:
      PI KW 6 2014

      Description

      The calculation of the delay of a DCP Ident All Response might lead to problems with topology scans for large setups. If the mac addresses in such large setups are close to each other, the algorithm still leads to a high busload. In turn dcp responses might be dropped at the receiver. The current implemention is

      uiDelay = (((tMacAddr[5] << 8) + tMacAddr[4]) % uiDelayFactor) * PNIO_DCPMCR_IDENTIFY_TIMEOUT

      Although this implementation is fully according to specification it still results in problems with large setups. I suggest to modify the calculation as follows:

      uiDelay = ((tMacAddr[5] << 8) + tMacAddr[4]) % (uiDelayFactor * PNIO_DCPMCR_IDENTIFY_TIMEOUT)
       
      if (uiDelay < 10)
        uiDelay = 10;
      if (uiDelay > 64000)
        uiDelay = 64000;

      This will lead to a more uniform distribution of the delays in large setups with closer mac addresses.

        Attachments

          Issue Links

            Expenses

              Activity

                Status Description

                  People

                  • Reporter:
                    Benjamin Benjamin Meyer
                  • Votes:
                    0 Vote for this issue
                    Watchers:
                    0 Start watching this issue

                    Dates

                    • Due:
                      Created:
                      Updated:
                      Resolved: