GSoC 2008: netconf suggesion

Andreas Louca alouca at gmail.com
Fri Mar 21 23:53:39 UTC 2008


Greetings!

I'm sending this email as a request for comments for the netconf
project, as part of Google Summer of Code 2008.

I find myself to be fond of the idea to have a network configuration
daemon, which triggered my interest for this project.

After reviewing the current code a bit, I've noticed that the current
functionality is a bit hardcoded. I am purposing that the netconf is
converted to a network configuration framework, which would support
multiple plugins to do the configuration and an interface side which
the UI programs can interact and push requests to the system.

This would allow netconf to have a cleaner structure, with a refined
API for plugins and UI configuration programs.

After defining API interfaces and completing the basic framework, I
would proceed to complete roadmap targets, as defined in the roadmap
for version 1.0
(http://git.debian.org/?p=netconf/netconf.git;a=blob;f=doc/roadmap-1.0.txt;hb=HEAD).

In order to demonstrate how the purposed framework would work, Im
presenting two workflows below, one for initialization of the
framework and one for configuration request.

A typical startup sequence would be like this:

Framework initialization
Scan for plugins
Plugins initialization
Register its function (eg. can configure IP interfaces)
Register events it can generate to the event engine (eg. ethernet
disconnected), so UI utilities can hook to them
Register the architecture(s) that the plugin supports (Linux, FreeBSD
etc), which would also determine if the plugin is enabled or not
Hook to the system events, so plugins can propagate those events to UI
programs, or react in certain cases
Initialize framework interface, and start accepting requests

After a successful initialization, netconf daemon would be ready to
accept requests from the UI programs.

A typical configuration request sequence would be like this:

UI program requests to run DHCP on an ethernet interface (configure IP
interface, DHCP)
Sends a request via a UNIX socket to netconf
netconf checks the list of registered plugins that support configuring
an IP interface using DHCP
Adds the request on a work queue, and the queue manager calls the
plugin with the parameters that the UI program passed.
Plugin would performs the necessary actions requested, triggering
events as necessary (ie: DHCP sending broadcast etc), which would
allow the UI program to update the interface.
After performing the actions the plugin sends a reply, depending on
the results (failed or  success with IP xxx.xxx.xxx.xxx etc).

I hope I have demonstrated my idea adequate and I am walking on the
correct path. If you have any questions or comments, I would really
appreciate it of you reply to this email.

Thank you for your time

Regards,
Andreas Louca



More information about the netconf-devel mailing list