ClusterLabs/pacemaker-1.0 — pull request #8 by ikedaj (2012-07-26 09:25:41+00:00)
Title: Clean up for handling the unrelated ICMP packets

I recently complained about pingd, let me explain this again.
This is the long comment, but it's just for my memorandum and an excuse for our team :)

First of all, the original problem which was reported from our customer is here;
One day, pingd detected the network failure but there was no network trouble, it means that "manual ping command" returned the normal status.
They suspected pingd's improper behavior.
An important characteristic of their system was that they run Pacemaker and the other monitoring and control products, for example, Zabbix, Nagios, IBM Tivoli, HP OpenView, and so on.
These products also call their own "ping" to monitor the target processes and Pacemaker's pingd had caught not only its ECHO REPLY but also the other services' packets.
Pingd handled the other's ECHO REPLAY packet as the wrong one.
It's certainly wrong packet for pingd but it would be better to ignore these packets and retry to get the correct ECHO REPLAY during its timeout period.

In the above case,
- the received packet(ECHO REPLAY) should be larger than zero byte.
- pingd says "unreachable" (detects network failure) in the original code.