[etherlab-dev] FoE is interrupted if link configuration is applied for EoE-capable device

Knud Baastrup kba at deif.com
Wed Feb 13 10:29:29 CET 2013


Hi

I have observed an issue where FoE is interrupted if my EoE-capable slave (named IFM52) has its eoeXsY link set to up (ifconfig eoe0s1 up). FoE is in this case used to perform a firmware upgrade in state BOOT using a run_update.sh script.

Below sequence show first a successful firmware upgrade of the IFM52 EoE-capable device followed by a link configuration (ifconfig eoe0s1 up) and the then an unsuccessful firmware upgrade due to the applied link configuration. Once the link configuration is removed (ifconfig eoe0s1 down), FoE is once again possible.

FoE was in this case interrupted after FOE_DATA packet number 11 and it was in Wireshark confirmed that the EoE-capable device responded correctly with an FOE_ACK for this packet number 11. In the syslog, I get "Mailbox error response received - Unknown error reply code 0x0000", but according to Wireshark no error codes are replied from the slave.

I suspect that IgH Master stop sending more FOE_DATA packets due to the applied link configuration. Can this make sense?

I used IgH Master version 1.4.0

~ # ethercat sl
0  0:0  PREOP  +  PCM5*1 Power and Control Module
1  0:1  PREOP  +  IFM5*2 Interface Module
2  0:2  PREOP  +  IFM5*1 Interface and Fieldbus Module
3  0:3  PREOP  +  IOM5*1 Input and Output Module
4  0:4  PREOP  +  GPM5*1 Grid and Protection Module

~ # ifconfig -a
eoe0s1    Link encap:Ethernet  HWaddr 00:11:22:33:44:08
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

eth0      Link encap:Ethernet  HWaddr 00:E0:0C:00:95:02
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1230574 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1230574 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:99212466 (94.6 MiB)  TX bytes:79523282 (75.8 MiB)
          Base address:0xc000

eth1      Link encap:Ethernet  HWaddr 00:E0:0C:00:95:01
          inet addr:192.168.20.13  Bcast:0.0.0.0  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3200 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1316 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:686587 (670.4 KiB)  TX bytes:150514 (146.9 KiB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:17 errors:0 dropped:0 overruns:0 frame:0
          TX packets:17 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:889 (889.0 B)  TX bytes:889 (889.0 B)

~ # tail -f /app/log/syslog
Feb 13 09:05:26 kernel: [  595.114246] EtherCAT 0: Stopping EoE thread.
Feb 13 09:05:26 kernel: [  595.114359] EtherCAT 0: EoE thread exited.
Feb 13 09:05:26 ./run_update.sh: Update success
Feb 13 09:05:26 kernel: [  595.151807] EtherCAT 0: Scanning bus.
Feb 13 09:05:28 kernel: [  596.915051] EtherCAT 0: Bus scanning completed in 1800 ms.
Feb 13 09:05:28 kernel: [  596.915087] EtherCAT 0: Starting EoE thread.
Feb 13 09:05:57 dupdate: Running tar -C /tmp/dupdate-4mas2Y -xf ifm52_r6164v9909.dupdate
Feb 13 09:05:57 dupdate: Tar extracted, Running ./run_update.sh in /tmp/dupdate-4mas2Y/
Feb 13 09:05:57 ./run_update.sh: Updating IFM5*2 module(s)
Feb 13 09:05:59 ./run_update.sh: DEVELOPMENT version 9909 - force update
Feb 13 09:05:59 kernel: [  628.426923] EtherCAT 0: Slave states: INIT, PREOP.
Feb 13 09:05:59 ./run_update.sh: Write ECATFW_ifm52_r6164v9909.efw to module 1
Feb 13 09:06:03 ./run_update.sh: Write ifm52_esc_r6164v9909.bin to module 1
Feb 13 09:06:12 ./run_update.sh: UPDATE PASS - module 1
Feb 13 09:06:12 kernel: [  640.751151] EtherCAT 0: Slave states: PREOP.
Feb 13 09:06:12 ./run_update.sh: Update success
Feb 13 09:06:12 kernel: [  640.850962] EtherCAT 0: Stopping EoE thread.
Feb 13 09:06:12 kernel: [  640.851110] EtherCAT 0: EoE thread exited.
Feb 13 09:06:12 kernel: [  640.889147] EtherCAT 0: Scanning bus.
Feb 13 09:06:14 kernel: [  642.653466] EtherCAT 0: Bus scanning completed in 1804 ms.
Feb 13 09:06:14 kernel: [  642.653502] EtherCAT 0: Starting EoE thread.

~ # ifconfig eoe0s1 up

~ # tail -f /app/log/syslog
Feb 13 09:06:12 ./run_update.sh: UPDATE PASS - module 1
Feb 13 09:06:12 kernel: [  640.751151] EtherCAT 0: Slave states: PREOP.
Feb 13 09:06:12 ./run_update.sh: Update success
Feb 13 09:06:12 kernel: [  640.850962] EtherCAT 0: Stopping EoE thread.
Feb 13 09:06:12 kernel: [  640.851110] EtherCAT 0: EoE thread exited.
Feb 13 09:06:12 kernel: [  640.889147] EtherCAT 0: Scanning bus.
Feb 13 09:06:14 kernel: [  642.653466] EtherCAT 0: Bus scanning completed in 1804 ms.
Feb 13 09:06:14 kernel: [  642.653502] EtherCAT 0: Starting EoE thread.
Feb 13 09:07:01 crond[422]: crond: USER root pid 1303 cmd hwclock -w
Feb 13 09:49:04 kernel: [ 3213.439436] EtherCAT 0: Slave states: PREOP, OP.
Feb 13 09:53:21 dupdate: Running tar -C /tmp/dupdate-w5kRFj -xf ifm52_r6164v9909.dupdate
Feb 13 09:53:21 dupdate: Tar extracted, Running ./run_update.sh in /tmp/dupdate-w5kRFj/
Feb 13 09:53:21 ./run_update.sh: Updating IFM5*2 module(s)
Feb 13 09:53:23 ./run_update.sh: DEVELOPMENT version 9909 - force update
Feb 13 09:53:23 kernel: [ 3472.512552] EtherCAT 0: Slave states: INIT, PREOP.
Feb 13 09:53:24 ./run_update.sh: Write ECATFW_ifm52_r6164v9909.efw to module 1
Feb 13 09:53:27 kernel: [ 3475.613073] EtherCAT ERROR 0-1: Mailbox error response received - Unknown error reply code 0x0000.
Feb 13 09:53:27 kernel: [ 3475.632377] EtherCAT WARNING 0-1: Invalid mailbox response for eoe0s1.
Feb 13 09:53:27 kernel: [ 3476.341012] EtherCAT ERROR 0-1: Mailbox error response received - Unknown error reply code 0x0000.
Feb 13 09:53:27 kernel: [ 3476.359837] EtherCAT WARNING 0-1: Invalid mailbox response for eoe0s1.
Feb 13 09:53:27 kernel: [ 3476.397086] EtherCAT ERROR 0-1: Mailbox error response received - Unknown error reply code 0x0000.
Feb 13 09:53:27 kernel: [ 3476.415031] EtherCAT WARNING 0-1: Invalid mailbox response for eoe0s1.
Feb 13 09:53:27 kernel: [ 3476.453087] EtherCAT ERROR 0-1: Mailbox error response received - Unknown error reply code 0x0000.
Feb 13 09:53:27 kernel: [ 3476.472383] EtherCAT WARNING 0-1: Invalid mailbox response for eoe0s1.
Feb 13 09:53:27 kernel: [ 3476.492876] EtherCAT WARNING 0-1: Other mailbox protocol response for eoe0s1.
Feb 13 09:53:30 kernel: [ 3479.489031] EtherCAT ERROR 0-1: Timeout while waiting for ack response.
Feb 13 09:53:30 kernel: [ 3479.495684] EtherCAT ERROR 0-1: Failed to handle FoE request.
Feb 13 09:53:30 ./run_update.sh: Failed to write via FoE: FOE_TIMEOUT_ERROR

~ # ifconfig eoe0s1 down

~ # tail -f /app/log/syslog
Feb 13 09:53:27 kernel: [ 3476.415031] EtherCAT WARNING 0-1: Invalid mailbox response for eoe0s1.
Feb 13 09:53:27 kernel: [ 3476.453087] EtherCAT ERROR 0-1: Mailbox error response received - Unknown error reply code 0x0000.
Feb 13 09:53:27 kernel: [ 3476.472383] EtherCAT WARNING 0-1: Invalid mailbox response for eoe0s1.
Feb 13 09:53:27 kernel: [ 3476.492876] EtherCAT WARNING 0-1: Other mailbox protocol response for eoe0s1.
Feb 13 09:53:30 kernel: [ 3479.489031] EtherCAT ERROR 0-1: Timeout while waiting for ack response.
Feb 13 09:53:30 kernel: [ 3479.495684] EtherCAT ERROR 0-1: Failed to handle FoE request.
Feb 13 09:53:30 ./run_update.sh: Failed to write via FoE: FOE_TIMEOUT_ERROR
Feb 13 09:54:29 kernel: [ 3538.383547] EtherCAT ERROR 0-1: Failed to set PREOP state, slave refused state change (INIT + ERROR).
Feb 13 09:54:29 kernel: [ 3538.393019] EtherCAT ERROR 0-1: AL status message 0x0016: "Invalid mailbox configuration".
Feb 13 09:54:29 kernel: [ 3538.402380] EtherCAT 0-1: Acknowledged state INIT.
Feb 13 09:54:44 dupdate: Running tar -C /tmp/dupdate-dNuiQI -xf ifm52_r6164v9909.dupdate
Feb 13 09:54:44 dupdate: Tar extracted, Running ./run_update.sh in /tmp/dupdate-dNuiQI/
Feb 13 09:54:44 ./run_update.sh: Updating IFM5*2 module(s)
Feb 13 09:54:46 ./run_update.sh: DEVELOPMENT version 9909 - force update
Feb 13 09:54:46 ./run_update.sh: Write ECATFW_ifm52_r6164v9909.efw to module 1
Feb 13 09:54:50 ./run_update.sh: Write ifm52_esc_r6164v9909.bin to module 1
Feb 13 09:54:58 ./run_update.sh: UPDATE PASS - module 1
Feb 13 09:54:58 kernel: [ 3567.421804] EtherCAT 0: Slave states: PREOP.
Feb 13 09:54:59 ./run_update.sh: Update success
Feb 13 09:54:59 kernel: [ 3567.546267] EtherCAT 0: Stopping EoE thread.
Feb 13 09:54:59 kernel: [ 3567.546419] EtherCAT 0: EoE thread exited.
Feb 13 09:54:59 kernel: [ 3567.568065] EtherCAT 0: Scanning bus.
Feb 13 09:55:00 kernel: [ 3569.334970] EtherCAT 0: Bus scanning completed in 1788 ms.
Feb 13 09:55:00 kernel: [ 3569.335006] EtherCAT 0: Starting EoE thread.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.etherlab.org/pipermail/etherlab-dev/attachments/20130213/bcfd0e01/attachment-0002.htm>


More information about the Etherlab-dev mailing list