Details
-
Type: Bug
-
Status: Closed
-
Priority: Critical
-
Resolution: Fixed
-
Affects Version/s: V3.4.36.1, V3.4.138.4
-
Fix Version/s: V3.4.46.0, V3.4.138.5, V3.4.146.0
-
Component/s: Stack
-
Labels:None
-
Sprint:PI KW 6 2014
-
Account:SPC Profinet Slave (SPCPROFINE)
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
- is cloned by
-
PSPNS-1899 Improve DCP Ident All Response Delay calculation
- Closed
-
PSPNSV4-39 Improve DCP Ident All Response Delay calculation
- Closed