Opened 5 years ago

Last modified 3 years ago

#3612 accepted task

Try to compile Kea on Windows, generate list of issues

Reported by: tomek Owned by: fdupont
Priority: medium Milestone: Windows
Component: build system Version: git
Keywords: Cc:
CVSS Scoring: Parent Tickets:
Sensitive: no Defect Severity: N/A
Sub-Project: DHCP Feature Depending on Ticket:
Estimated Difficulty: 0 Add Hours to Ticket: 0
Total Hours: 0 Internal?: no

Description (last modified by tomek)

As discussed on Kea call 2014-10-01, we want to get better understanding how much work would it take to run Kea on Windows. This task is about attempting to compile Kea code on Windows and document the issues.

This ticket does not require the compilation to be successful, getting the list of issues is the goal here.

It seems likely that the two areas that will cause problems are:

  1. raw sockets in DHCPv4. That can be worked around by using UDP sockets. (Use PktFilterInet? instead of PktFilterBPF (BSD) or PktFilterLPF (Linux).
  1. interface detection. We have OS-specific code for that (netlink for Linux and getifaddrs for BSD). If we want to support Windows, we'll have to implement a replacement. Here's a bunch of useful pointers: (see if_list_get()) (warning: crappy code ahead).


Change History (10)

comment:1 Changed 5 years ago by tomek

  • Component changed from Unclassified to build system

comment:2 Changed 5 years ago by fdupont

For the remaining stuff, i.e., libraries from buddy, I have the WIN32 diffs and project files at the exception of things which are very broken (as the illusion a socket is a file descriptor, call to fork, AF_UNIX sockets, etc). Perhaps the supported subset will be enough to build the KEA code? Now we have to find a way to organise this and fix the goal.

comment:3 Changed 5 years ago by tomek

  • Milestone changed from Kea0.9.1 to DHCP Outstanding Tasks

Moving to DHCP Outstanding, as discussed on 2014-12-10 call. Keeping it in 0.9.1 was affecting our estimates.

comment:4 Changed 5 years ago by fdupont

I can port what I did for bind10. I create a special ticket for a side question: we need a configurator, I have examples in perl (bind9) and python (for SoftHSMv2), both can add a dependency *but* OpenSSL requires perl and Botan requires python so it should not be a *new* dependency...

comment:5 Changed 5 years ago by fdupont

  • Owner set to fdupont
  • Status changed from new to accepted

comment:6 Changed 5 years ago by fdupont

I have enough elements to begin a detailed response.

comment:7 Changed 5 years ago by fdupont


  • things which can't be ported (e.g., local sockets even in this case it is easy to find an alternative)
  • things which don't work as expected (most in networking, e.g., the UDP connect + getsockname)
  • things which are very different so need to be rewrite from scratch (e.g., interface detection)
  • things which are not supported (a major item here: raw socket and any kind of standard BPD/LPF)

But we can run most of the unit tests and there are some corner cases we can build a working server.

comment:8 Changed 5 years ago by fdupont

I suggest to put this in the Windows milestone (it is the father of all :-).

comment:9 Changed 4 years ago by tomek

  • Milestone changed from DHCP Outstanding Tasks to Outstanding Tasks

Milestone renamed

comment:10 Changed 3 years ago by tomek

  • Description modified (diff)
  • Milestone changed from Outstanding Tasks to Windows
Note: See TracTickets for help on using tickets.