Menu

#3 Additions to r257

Unstable (example)
open
None
5
2014-02-19
2014-02-19
No

There are three main parts to this patch.

1) Some bug fixes and enhancements:

  • Changed the preprocessor macro for checking for big-endian from

    #if defined(BIG_ENDIAN) || defined(arm)

    to

    #if BYTE_ORDER == BIG_ENDIAN

  • OpenHIP revision 257 changed the preprocessor macro for HIT2LSI to use the HCNF structure. Code that used HIT2LSI in the VPLS plugins needed to access HCNF which had been saved as _hcnf.

  • Added code that allowed for a zero difficulty puzzle. There is not explicit mention of this in the RFC, but am assuming that a zero difficulty puzzle should be solved in zero time, i.e always solved.

  • In comparing bits for the cookie puzzle, added a hton64 on the mask because there seems to be an implicit ntoh64 conversion on the result of the bit operation which moves the bits around on a little endian machine so we need to move the bits back. See Harbison & Steele on Shift Operators. Note that this was only a problem between hosts of different endianness. Changed

    mask = mask >> (64 - numbits);

    to

    mask = hton64(mask >> (64 - numbits));

2) Major changes to the ifmap plugin for the VPLS code:

  • Removed the dependency on Qt and also, as a result since it used Qt, the IFMAP library libifmap, which had implemented IFMAP version 1.1. Added code to use the IFMAP library libifmap2c, which implements IFMAP version 2.0. The library libifmap2c uses libcurl to perform all the HTTP communications with the IFMAP server. Also added code to use libpthread and libevernt2 to replace some functionality that Qt provided. Also, needed to add a polling thread, as the libifmap2c polling function is a blocking read, while the libifmap polling function is not.

  • Added code to save the known_host_identities file every heartbeat.

3) An extension to the files plugin called the filesplus plugin for the VPLS code:

  • Similar to the files plugin except it allows the known_host_identities file to be read again whenever that file is changed. Thus, changes to known host information can be dynamically reloaded when the known_host_identities file is changed by some external mechanism such as a script or even manually.

  • Added code that allows fully qualified domain names (FQDN) in the known_host_identities file. Had to subclass the superclass function endbox2Llip that returns the underlay IP address of the peer endbox given the legacy node IP address. That function for the filesplus plugin will initially return any explicit IP address followed by the IP addresses from an ordered list of FQDN if the previously returned IP address fails until an IP address succeeds in establishing a HIP association. If none succeed, it will start over with any explicit IP address.

  • New plugin api function markPeerUnderLayIPAddressFailed. This is called if the last IP address returned by the plugin for a peer failed to result in a HIP association. Note that all plugins must support this function even if it does nothing when called.

1 Attachments

Discussion


Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.