[hipl-users] Re: HIPL and Network Interface

  • From: Miika Komu <mkomu@xxxxxxxxx>
  • To: hipl-users@xxxxxxxxxxxxx
  • Date: Fri, 13 Mar 2015 13:47:24 +0200


On 03/10/2015 11:24 PM, Lingyuan He wrote:
Hi Miika,

Thank you for helping out from time to time.

Is there a place hipd keeps a list IP addresses? (And also storing
preference?) Do you know which source file to look into?

hidb.c: local HIs (public key stuff)
hadb.c: HIP associations (remote HITs and IP addresses)
netdev.c: local IP addresses, local HITs, routes, triggering of base exchange

I recommend using gdb, ddd or xxgdb to trace through the code base.

And what is hip association, is there a table for it? In hadb.c?


I am currently working on migrating previous modifications to OpenHIP
in a project to HIPL, and obviously some term (hip association) and
functionalities I mentioned come from their implementation. Any help
would be greatly appreciated since it will shorten my time to dig
into the code.

I suggest subscribing to hipl-dev if you're interesting in asking questions about the code:


Thanks, Lingyuan

On Mar 9, 2015, at 5:24 AM, Miika Komu <mkomu@xxxxxxxxx> wrote:

Hi Lingyuan,

On 03/08/2015 02:26 AM, Lingyuan He wrote: Hi,

I am currently studying the implementation of hipd, about how it
uses network interfaces, for the purpose of a research on network
handover (interface switching) in my university.

I have been looking into the implementation, but without too
much progress on my own.

My questions, - where in the code that the daemon handles
outbound connection and pack/send a packets? Or simply put, where
is the socket connection to the other node created?

1. hipd is started and sets up a security policy matching to HIT
prefix 2. application sends data to a HIT (or LSI) 3. IPsec
intercepts the packet, notices that IPsec keys do not exist 4.
IPsec sends a message to userspace key exchange daemons 5. hipd
receives the message in netdev_handle_acquire()

- does hipd uses the default network interface without any
consideration of multiple network interfaces?

by default, hipd uses the default route (i.e. source address) to
send the message. You can use the experimental "shotgun" extension
to trigger flooding of the I1 message through all
source-destination address pairs. Hipd just selects the address
pair that responses first.


Shotgun does not support yet mobility, just base exchange is
supported. I can give more information if you're interesting in

The end-result I am pursuing is to modify the implementation (if
needed) to insert a preferred network interface for hipl to use,
in case there are several.

Any insights would be greatly appreciated, thanks a lot in

Other related posts: