[hipl-users] Re: [HIP UPDATE] - select() error: Interrupted system call

  • From: Philippe Foubert <Philippe.Foubert@xxxxxxxxxx>
  • To: hipl-users@xxxxxxxxxxxxx
  • Date: Wed, 03 Feb 2010 16:26:56 +0100

Hi,

Thanks for your fast answer. I just turned on the "debug all" feature and I see a bit
more clear now.

I would say that everything looks ok except that the HIP UPDATE is never sent by my Mobile Node. I let everything running for 20 minutes and I never caught the HIP UPDATE
packet.

Here is screenshots when I just start the HIP daemons on the two nodes and when I try the
HIP connection via the tool "conntest" :
ftp://ftp.eurecom.fr/incoming/1-connection1.png
ftp://ftp.eurecom.fr/incoming/1-connection2.png
Everything is perfect.

Now I add one Ipv6 address (I add 2001:3::1/64 on eth0 where there was already
2001:6::1/64) :
ftp://ftp.eurecom.fr/incoming/2-adding_a_new_ipv6addr.png
ftp://ftp.eurecom.fr/incoming/2-adding_a_new_ipv6addr2.png (screenshot taken 1 minute
after the IPv6 was added)

We can clearly see that the HIPD is trying to create the UPDATE packet but the tcpdump
never caught it, and the "SENDMSG Interrupted system call" appears...

Do you have any other ideas why this UPDATE message is never sent ?
Thanks,
Philippe


Quoting Miika Komu <miika.komu@xxxxxxx>:

[Hide Quoted Text] <https://webmail.eurecom.fr/imp/message.php?index=1468#>
On 02/02/2010 08:08 PM, Philippe Foubert wrote:

Hi,

we have introduced some articifial delay to the sending of UPDATE. By
default, the mobility events are triggered when there has been no other
changes in addresses in 6 seconds. Persistent heartbeat failure for 40
seconds will also cause this 6 second timer to tick. If you have "debug
all" in your /etc/hipd/hipd_config, you should see the following
messages when hipd starts the timer:

debug(hipd/maintenance.c:402@periodic_maintenance): Delay mobility
triggering (count 1)
debug(hipd/maintenance.c:402@periodic_maintenance): Delay mobility
triggering (count 0)
debug(hipd/maintenance.c:397@periodic_maintenance): Triggering UPDATE

I am usually running tcpdump with the following filters:

tcpdump -n -i any port 10500 or esp or proto 139

Please notice that hipd uses UDP-encapsulation by default.

http://infrahip.hiit.fi/hipl/contrib/
Hi all,

I would like to catch a HIP UPDATE message in my wireshark by simulating
manually a softhandover, but I never get this packet.
*_
My configuration :

_*I have two nodes (let's call them A and B), directly connected by an
ethernet cable. (they are running the last ubuntu with 1.0.4-111 HIP
packages).

I give manually to node A :

* ip -6 addr add 2001:1::1/64 dev eth0
* ip -6 route add ::/0 dev eth0

I give manually to node B :

* ip -6 addr add 2001:2::1/64 dev eth0
* ip -6 route add ::/0 dev eth0

I ping6 each other, and it works.

Then I start the HIPD (hipfw and hipdnsproxy are NOT running)
On both machines I do :

* hipconf opendht off
* hipconf add map HIToftheotherone IPv6linked

then if I try the "conntest" or Ping6 with HIT, it is working perfectly
and I do have the HIP I1/2 R1/2 packets in my wireshark.

I let the "Ping6 HIT" running between them and then I add another Ipv6
address on one of the machine (I add 2001:5::1/64 on node A)
The ping6 is still running and I start to have these lines in my HIPD
(lines in bold):

Received I1 from:info(hipd/input.c:2937@hip_handle_i1): Source HIT::
2001:0011:0bcf:2e1d:a270:9e00:3b3e:ba96
info(hipd/input.c:2938@hip_handle_i1): Source IP ::
2001:0001:0000:0000:0000:0000:0000:0001
info(hipd/input.c:1878@hip_handle_i2):
Received I2 from:info(hipd/input.c:1879@hip_handle_i2): Source HIT::
2001:0011:0bcf:2e1d:a270:9e00:3b3e:ba96
info(hipd/input.c:1880@hip_handle_i2): Source IP ::
2001:0001:0000:0000:0000:0000:0000:0001
error(lib/tool/xfrmapi.c:482@hip_delete_sa): Warning: out sa count
negative
error(lib/tool/xfrmapi.c:492@hip_delete_sa): Warning: in sa count
negative
error(hipd/output.c:1495@hip_send_icmp): sendmsgSuccess
error(hipd/output.c:1501@hip_send_icmp): SENDMSG Success
info(hipd/input.c:2479@hip_handle_i2): Reached ESTABLISHED state
error(hipd/output.c:1495@hip_send_icmp): sendmsgSuccess
error(hipd/output.c:1501@hip_send_icmp): SENDMSG Success
error(hipd/output.c:1495@hip_send_icmp): sendmsgSuccess
error(hipd/output.c:1501@hip_send_icmp): SENDMSG Success
*error(hipd/hipd.c:639@hipd_main): select() error: Interrupted
system call. *
*error(hipd/hipd.c:639@hipd_main): select() error: Interrupted
system call. *


At this point then, node A has 2001:1::1/64 (the first address it used
to have) and 2001:5::1/64
I now remove 2001:1::1/64 in order to force the node A to send a HIP
UPDATE message but it does not happen. Actually the ping6 stops.
At this moment, if I do a "hipconf get ha all"
for the LOCAL IP, I still have 2001:1::1/64 .... :-s
Which means that HIPD is never actualised.

Theoretically, I should have a HIP UPDATE message there no ?
Do I forget to run a specific command on the HIPD ?

Thanks a lot in advance for your help,
Philippe


Other related posts: