= Netlink in FreeBSD =
 * Student: Sean Ng (seanngpengnam@gmail.com)
 * Mentor:  Alexander V. Chernikov (melifaro@)

== Project description ==

Refer to https://github.com/pengnam/freebsd-netlink for project details 

Netlink is a linux kernel interface used for communication between userspace and kernel processes. 

This project aims to port Netlink over to FreeBSD. The goal is to implement NETLINK_ROUTE in FreeBSD, and eventually support NETLINK_GENERIC as well. Eventually, the project aims to have a program use netlink.
Currently, systems in FreeBSD which use Netlink sockets in their equivalent implementations in linux are currently supported by routing sockets.


== Approach to solving the problem ==

To implement Netlink for NETLINK_ROUTE, the development process will broken into three main stages:

 1. Constructing basic interfaces
  1. Registering handlers with socket: Register handler with socket API for AF_NETLINK address family
  2. Configuring code as a configurable module

 2. Interact with the routing subsystem
  1. Message passing, message translating to an internal format, passing the code into a route subsystem
  2. Replying with confirmation

 3. Hack net/frr or net/bird2 to use netlink support

== Deliverables ==
 1. Implement basic interfaces for netlink socket connection and message sending [DONE]
 2. Interact with the routing subsystem to implement NETLINK_ROUTE functionalities [DONE]
 3. Extend to NETLINK_GENERIC [PARTIALLY DONE]

== Milestones ==

 * June 8th: Start of GSOC
  *  Check out previous work done, try compiling (X)
  *  Get a working example 
 * July 13th - July 17th: Mid-term Evaluations #1
 * August 6th: End of coding (soft)
  * Remaining time used for documentation
 * August 14th: End of coding (hard)

== The Code ==
Netlink: https://github.com/pengnam/freebsd-netlink (https://github.com/pengnam/freebsd-netlink/pull/1)
Userspace Library: https://github.com/pengnam/libmnl-freebsd

== Notes ==
https://docs.google.com/document/d/1oJSueoRWLDq9T9aLoYQzJGskPv7xiPCNG0iv8obwfGE/
https://github.com/pengnam/netlink-notes



----
CategoryGsoc