If you haven't configured linux kernel before, please consult linux/README before doing that. We have some example configurations files in hipl/test/configs for "typical" systems. You can use one of those as a template, and modify it to suite the needs of your system. Read hipl/test/configs/README before doing so.
The 2.6 kernel series should be compilable with both gcc 2.9x and 3.x series. We recommend the latter.
Download linux kernel 2.6.x.y. Compile the kernel with at least the following options:
Legend: [*] built-in [ ] excluded <M > module < > module capable
Code maturity level options
[*] Prompt for development and/or incomplete code/drivers
Networking support ---> Networking options
<M> Unix domain sockets
[*] Transformation user configuration interface
[*] TCP/IP networking
[*] Advanced router
[*] IP: policy routing
<M> Packet socket
[*] IPsec user configuration interface
<M> PF_KEY sockets
<M> IP tunneling
[*] IPv4: IPcomp transformation
[*] IPv4: IPsec transport mode
[*] IPv4: IPsec tunnel mode
[*] IPv4: IPsec BEET mode
<M> IP: ESP transform
[*] The IPv6 Protocol
<M> IPv6: ESP transformation
<M> IPv6: IPcomp transformation
[*] IPv6: IPsec BEET mode
<M> IPv6: IPv6-in-IPv6 tunnel
[*] IPv6: Multiple Routing Tables
Cryptographic options
<M> Null algorithms
<M> SHA1 digest algorithm
<M> DES and Triple DES EDE cipher algorithms
<M> AES cipher algorithms
<M> AES cipher algorithms (i586)
Device Drivers ---> Network device support
<M> Dummy network device support
Security options --->
[*] Enable different security models
[M] Default Linux Capabilities
The hipd probes the necessary kernel modules automatically,