GSoC 2008: netconf suggesion

Andreas Louca alouca at gmail.com
Thu Mar 27 09:38:26 UTC 2008


Hello!

Thank you all for your comments. I will proceed and submit an
application for netconf today, taking in mind this discussion on my
project description.

Please see my replies inline.



On Sun, Mar 23, 2008 at 5:19 PM, martin f krafft <madduck at debian.org> wrote:
> Hi Andreas,
>
>  thank you for your interest in netconf, and I hope you will apply
>  for GSoC sponsorship to work on the programme. I am looking forward
>  to your application.
>
>  also sprach Andreas Louca <alouca at gmail.com> [2008.03.22.0053 +0100]:
>
> > 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.
>
>  In general, any such effort is worthwhile, and I agree with you that
>  a framework-based approach with plugins is the way to go. As Bas
>  pointed out in his reply, one of the reasons why netconf doesn't do
>  that yet is because I am trying to make things work first. It is to
>  be assumed that the code will have to be rewritten anyway, at least
>  when we port it to C/C++, but for now, I think the main goal should
>  be to get a working version which we can then use to experiment. At
>  this stage of the project, I'd prefer to keep things simple and not
>  lose any time in implementing what we think is the right way to do
>  it, because we might find out that the requirements are not what we
>  thought initially.
>
>  All this said, if you take a closer look at the code, you'll notice
>  that DHCP and ENI and the like are already sort of like plugins.
>  Their loading is hardcoded for now, but that's the least of our
>  concerns. The important point is that the core doesn't know about
>  any events, it just reads data from file descriptors and reacts by
>  dispatching them to the registered handlers.

I don't think its gonna take a long time to form a framework in
Python. It would also provide a guideline for APIs when the port for
C/C++ is due. However, if the project is just for a proof-of-concept,
I agree that this can be omitted.

>
>
>  > This would allow netconf to have a cleaner structure, with
>  > a refined API for plugins and UI configuration programs.
>
>  I don't think netconf should have an API for UI configuration
>  programmes, but enforce the use of the control socket, or a dbus
>  adapter (which also uses the control socket).

By UI programs I meant for every program that needed to change any
configuration, either via dbus or a socket. I think dbus is the way to
go.

>
>
>  > 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).
>
>  I don't want to discourage you, but please keep in mind that the
>  primary goal of this project at this stage is to implement the
>  features needed for 1.0, so that we can provide 1.0 as part of
>  Debian lenny in August.

Understood.

>
>
>  > Framework initialization
>  > Scan for plugins
>  > Plugins initialization
>
>  This is all well and can be trivially added to the existing code,
>  I think. I don't think it needs to happen right now.

Agreed.

>
>
>  > 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
>
>  Initially, netconf was event-based and it had a class Event with
>  a parameter "type", and plugins would register their events and
>  event handlers. However, it turned out that all I ever did was read
>  data from file descriptors and create events, stuff them in a queue
>  and then process them by the main loop. Thus, I cut out the middle
>  man and just made the main loop process the file descriptors
>  directly. The effect was the same with a little less abstraction,
>  but so far I have not identified any shortcomings with this
>  approach.
>
>
>  > Register the architecture(s) that the plugin supports (Linux, FreeBSD
>  > etc), which would also determine if the plugin is enabled or not
>
>  I don't see the benefit of letting netconf know the architecture and
>  act differently on different platforms. Instead, I'd like it to
>  implement handle the functionality we require of netconf, and push
>  the task of implementing and getting it to work on different
>  platforms to the maintainers/users of these platforms. In order to
>  make this easier, I want to keep all architecture-dependent stuff in
>  scripts/plugins (which could be C programmes using syscalls). This
>  is the same approach as taken by the ISC DHCP client, which is
>  a standard piece of software these days and works quite well in most
>  scenarios.
>
>
>  > Hook to the system events, so plugins can propagate those events
>  > to UI programs, or react in certain cases
>
>  I plan to add a netlink reactor, yes. Plus, a dbus adapter might
>  dispatch "events" via the control socket.
>
>  also sprach Bas Wijnen <wijnen at debian.org> [2008.03.22.1131 +0100]:
>
> > Or via any other communication route.  It's a UNIX socket in the
>  > current implementation, and it will probably stay, but there may
>  > be additional methods as well (such as web-based), if it's up to
>  > me. :-)
>
>  Ew! :)
Why not?:P


>
>
>  > It sounds good to me.  Not that I have any decision-making-powers
>  > in the project. :-)
>
>  Everyone does. I herewith resign from any dictator-like position.
>  Let's make netconf good, I don't claim I know exactly how to do
>  that. :)
>
>  --
>   .''`.   martin f. krafft <madduck at debian.org>
>  : :'  :  proud Debian developer, author, administrator, and user
>  `. `'`   http://people.debian.org/~madduck - http://debiansystem.info
>   `-  Debian - when you have better things to do than fixing systems
>
>  "science without religion is lame,
>   religion without science is blind."
>                                                     -- albert einstein
>
> -----BEGIN PGP SIGNATURE-----
>  Version: GnuPG v1.4.6 (GNU/Linux)
>
>  iD8DBQFH5nUTIgvIgzMMSnURAoDmAKCM89F7sZ3kEE8X4r6zz4x/UqDUIwCeP9d6
>  df2SkHnyuvsZFhfIpe0+B4A=
>  =DOE5
>  -----END PGP SIGNATURE-----
>
> _______________________________________________
>  netconf-devel mailing list
>  netconf-devel at lists.alioth.debian.org
>  http://lists.alioth.debian.org/mailman/listinfo/netconf-devel
>



More information about the netconf-devel mailing list