© Martin F. Krafft
Martin F. Krafft <madduck@debian.org>
Homepage: http://netconf.alioth.debian.org/
netconf could also be:
I don't insist on the name, but I don't see too much of a conflict.
A roadmap for netconf 1.0 is in the (Git) repository.
Selected items:
http://opensolaris.org/os/project/nwam
http://lists.debian.org/msgid-search/47B85EE0.5000002@fpt.com.vn
A design document is available online.
Main loop (simplified pseudo code):
while _is_running: fds = select(fdrreactors, [], [], timeout=None) for fd in fds[0]: fdrreactors[fd].react_to(READ, fd, self)
Reactor registration:
def register_fdrreactor(fd, reactor): fdrreactors[fd] = reactor def unregister_fdrreactor(fd): del fdrreactors[fd]
def __call__(self, *args, **params): if self.all_done(): return self._do_callback_or_raise() return self._get_next_job()(*args, **params)
self._workqueue_runner.add_job(run_preup_hooks) self._workqueue_runner.add_job(run_handler) self._workqueue_runner.add_job(run_postup_hooks)
user-defined, per-interface policy (+ a default) used to e.g.
# /etc/netconf/interfaces.d/default [IFUP] allow @group1 user2 startat ENI [cfg ENI] file /etc/network/interfaces NOTFOUND DHCP [cfg DHCP] dhcp-client-param1 foobar FAIL,TIMEOUT LinkLocal #[cfg LinkLocal] #nothing here
# /etc/netconf/interfaces.d/tun0 [IFUP] allow @users prereq ifup eth0 startat OpenVPN [cfg OpenVPN] config /etc/openvpn/work.cfg BIND ENI [cfg ENI] file /etc/network/interfaces.d/tun0 #NOTFOUND error #(default)
Imagine:
The result:
Thank you for your attention!
Now heckle! Then join!
These slides, their design, and the content are © Martin F. Krafft and released under the terms of the CC by-nc-sa 2.5 licence.
reStructuredText sources: slides.rst and ui/netconf/*.
Slides based on the S5 presentation system.