status update: events working, first methods implemented; generally happy

martin f krafft madduck at debian.org
Mon Jun 18 21:30:45 UTC 2007


Dear colleagues,

it's been busy here at Debconf7. As more people arrive, reasons not
to work on netconf multiply, but I am trying to stick with it.

I delivered the netconf talk today, you can find the slides here:
  http://people.debian.org/~madduck/talks/netconf_debconf7_2007.06.18/slides.s5.html

The talk went very well and in generall, the topic is received with
open arms among people. I've received a bunch of questions on how
netconf would do this and how netconf would do that, and I managed
to fit them all into the new, updated architecture design, and in
general, thinks are falling into place nicely.

Without much time on my hands today, I simply polished the event
passing and implemented a handler for the LINK event, which e.g. the
dhclient handler thread will queue when dhclient issues the PREINIT
event.

For the sake of clarity, here is what happens if the user requests
an interface to be brought up with DHCP:

  1. an CTLSOCK_IFUP request is received via the control socket

  2. the control socket handler converts the request to
     a CTLSOCK_IFUP event and queues it with the daemon.

  3. when the daemon pops the event, it dispatches it to
     events.handler.CTLSOCK_IFUP.

  4. the handler notifies the DHCP provider, which spawns a thread;
     the event handler then simply waits on the event to complete;
     the DHCP provider now has a write-only channel to the client
     socket.

  5. dhclient is invoked and issues the PREINIT event. This causes
     the handler thread to queue a LINK event with parameters
     "$IFACE up" and wait for the event to complete. dhclient will
     wait for the completion of dhclient-script, which waits for the
     handler thread, so we're more or less synchronous now.

  5b. upon completion of the event, the handler may issue
      a configuration event to erase all IPs from the interface and
      add only 0.0.0.0; this is what dhclient-script does.

  6. upon completion of the event, dhclient attempts to get a lease
     and if it does, it releases an IFCFG event with the details.
     All status information is written to the client socket.

  7. the daemon dispatches this event to events.handlers.IFCFG,
     which invokes methods/static.sh to do the actual work.

  8. when the script returns, the daemon marks the IFCFG event
     completed, which causes the dhclient handler thread to mark the
     CTLSOCK_IFUP event as completed, which causes the control
     socket thread to exit.

Tomorrow I have to work out a failure scenario. Now it's time for
cheese and wine.  

Cheers,

-- 
 .''`.   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
 
*** important disclaimer:
by sending an email to any address, that will eventually cause it to
end up in my inbox without much interaction, you are agreeing that:
 
  - i am by definition, "the intended recipient"
  - all information in the email is mine to do with as i see fit and
    make such financial profit, political mileage, or good joke as it
    lends itself to. in particular, i may quote it on usenet.
  - i may take the contents as representing the views of your company.
  - this overrides any disclaimer or statement of confidentiality that
    may be included on your message.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature (GPG/PGP)
Url : http://lists.alioth.debian.org/pipermail/netconf-devel/attachments/20070618/9945ec33/attachment.pgp 


More information about the netconf-devel mailing list