You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We have openPowerlink 2.3.2 stack and Vimba camera (Ethernet) driver running on one PC with Windows 10 64-bit. Each of them are using separate network card. Both are operated at the same time. Powerlink cycle is 10ms. Camera is generating something like 62 Mbyte/s data stream. But it works.
However, if I run at the same time program communicating intern on PC with network on loopback adapter then from time to time Powerlink stack restarts communication to B&R Powerlink controller. CPU Load is low: ~12% (multicore system).
From debugging issue, I've found that it comes because function timerHdlCycleCb() signal error 30 (kErrorEdrvCurTxListEmpty) that in turn provoked "Cycle error" in handleMnCycTimeExceed(). The reason is that notification from network card driver about successful send of packets did not come. I've find out that these notifications comes ~10ms later bundled into one call of protocolSendNblComplete() protocol driver function (drv_ndis_intermediate).
From Documentation for NDIS 6.0 NdisSendNetBufferLists() function:
NDIS can collect the structures and data from multiple send requests into a single linked list of NET_BUFFER_LIST structures before it passes the list to ProtocolSendNetBufferListsComplete.
So it seems the problem is the effect of collecting callbacks in NDIS on Windows 10 under high network load. Unfortunately these callbacks play very important role in openPowerlink implementation of cycle timing.
Is there any solution for this problem?
The text was updated successfully, but these errors were encountered:
NDIS callback collect period on Windows 10 64-bit Pro 10.0.14393 seems to be 10ms. The only workaround at the moment is to set Powerlink cycle to 20ms.
We have openPowerlink 2.3.2 stack and Vimba camera (Ethernet) driver running on one PC with Windows 10 64-bit. Each of them are using separate network card. Both are operated at the same time. Powerlink cycle is 10ms. Camera is generating something like 62 Mbyte/s data stream. But it works.
However, if I run at the same time program communicating intern on PC with network on loopback adapter then from time to time Powerlink stack restarts communication to B&R Powerlink controller. CPU Load is low: ~12% (multicore system).
From debugging issue, I've found that it comes because function timerHdlCycleCb() signal error 30 (kErrorEdrvCurTxListEmpty) that in turn provoked "Cycle error" in handleMnCycTimeExceed(). The reason is that notification from network card driver about successful send of packets did not come. I've find out that these notifications comes ~10ms later bundled into one call of protocolSendNblComplete() protocol driver function (drv_ndis_intermediate).
From Documentation for NDIS 6.0 NdisSendNetBufferLists() function:
So it seems the problem is the effect of collecting callbacks in NDIS on Windows 10 under high network load. Unfortunately these callbacks play very important role in openPowerlink implementation of cycle timing.
Is there any solution for this problem?
The text was updated successfully, but these errors were encountered: