Notes from the BIND 10 call



Michael had a bit of a sore throat, so participated via the magic of Jabber.

Action Points (AP)

Jeremy pointed out earlier (via the Jabber room) that a couple of AP from last week were not really done. Shane noted that Francis account had been set up, although Francis had not actually tested it - he'll fix it if it is a problem (so AP stays closed). The other was about setting up automated coverage testing...

AP Jeremy to set up automated coverage testing

Jeremy: Set up subversion post-commit hook to run sudo to run shell script as the "tester" user. Updates to revision number which comes from hook. Installed Python to get the right version, getting other dependencies in place. For example Google test and lcov package, put those into public HTML directory so they are live on a web page. Also need to set up locking so two commits don't overwrite each other.

Notes are in tester home directory.

  1. In progress
  2. Waiting on test actually set up... should have article within the next day or so, if not... should be done by Monday
  3. Done

Face to Face meeting


Timeline of arrival/departure coming for CNNIC people tomorrow.

Larissa: BIND 10 shirt design needed (pre-IETF). Jelte's idea was to have movie monsters, like the Mummy or Frankenstein's Monster, and BIND 10 would be coping with this. We need to have a design, then we can get it printed in time for the IETF.

Wiki Front-page Edits

Larissa: At top of public wiki it gives some suggestions on where to go. Will evolve into actual pages... Now there are places to go if you're looking for sponsorship information, places if you want tests, and will be places for various types of users.

Open to all feedback. Evolving over the next week, maybe next week we can talk about it.

Face-to-Face topic Wiki

Status Checks

DNS Message API

Jinmei: Working on RDATA class, which is the data portion of the RR, for example IPv4 address for A record. Completed initial implementation and committed to the branch. Need more cleanup work on that branch, but should move on to other classes quickly so we can integrate it next week.

Plan is to suspend cleanup work for this class for now, and try to provide implementation for RRSET class, taking into account latest design of the data source.

Shane: off-topic, but DS is a bad abbreviation for "data source" since DS is an RRTYPE. Jelte suggested DSAPI.

Jinmei: simply avoid using abbreviation of DS in comment or documentation. Okay to use when context is clear.

Jelte: okay... sometimes may escape.

Jeremy: Are there any tools for testing or using the DNS message API? There were some tools for the old version...

Jinmei: in addition to the googletest unit test cases?

Jeremy: you used to have some tiny tests...

Jinmei: no... what kind of tools?

Jeremy: I could convert host command using new API...

Jinmei: oh, a real application using the API! No... still missing some important stuff. For example, we need a DNS message class, but not available yet. Just some components. Hopefully should be available next week.

Shane: is there a chance we won't have this? Do we need "plan B"?

Jinmei: I think it is doable.

Shane: we need to come up with a new name, since this will have real data... not just a parking lot...

Jelte: Referred to exceptions implementation, while pointing out a big error in mine. I think we should move it one namespace up, and use it in all classes.

Jinmei: That makes sense, OTOH I wanted to make the DNS message API as self-contained as possible, so we can release it as a single set of libraries for developers. If we separate the exception classes, we'll have to have libisc++... that's okay as long as we can provide a set of libraries, but it will make developers work harder.

Jelte: we can leave the code itself within the DNS part just move up the namespace. We don't want to copy the code, and I also need exceptions.

Jinmei: I basically agree. It's probably just a matter of how we organize the source directories and the packaging. As long as we can have a clean way to consolidate the exception class as well as making the DNS message API self-contained.

AP Jelte to make proposal on how to use the exception class.

Jelte: what does the group think about naming? I was using str() and other people were using toText().

Jinmei: str() would be more syntatically compatable. I used toText() because I also have toWire(). I also have fromText() and fromWire(). I also agree that consistent naming for the whole BIND 10 package that would make sense

Shane: if we're going to use it everywhere, str() makes more sense.

Michael: I prefer to_text(), as it is clear that it is printable.

Face-to-Face topic: str() versus toText()/to_text()

Jinmei: A little bit afraid of implications of using library with different compilers, so in future we may have to provide additional interfaces that only use the plain old data structure like char-based string. Something for the future.


Review ticket #22 submitted. No further activity.

Likun: Have 3 versions... Ruby, Python, or C++. C++ hasn't been used until now. Do we plan on using the C++ version in the future?

Jelte: Python version is what we will use in the near future. If it's not fast enough then we'll make a new version.

Jeremy: Can the C version be removed from the trunk?

Jelte: Will remove it right now.

AP Michael to update ticket to indicate what exactly is to be reviewed (like which directory)


Jelte: Some small ideas this week, no news.

Command & Control

Likun: committed code, now bindctl talks to command & control. When BIND 10 start-up command & control is last process started. When commmand/control started it gathers configuration information, then bindctl connects to command/control through RESTful API. Not enough documentation about implementation - no ready for merge. Will try to add document as soon as possible.

Shane: all in Python?

Likun: yes

Shane: has tests, like for BigTool??

Likun: yes, plan to add more

Likun: Jelte, have changed some implementation for the config manager. You can check some code for zone add & delete.

Jelte: Do I need to re-add that or...?

Likun: If you think you need it, you can re-add it.

Jelte: I personally use it. Not in code but in setting up my test environment.


Kambe: committed some code for statistics in experimental repository. Simple SNMP agent which takes number from local file and returns the process ID. Please give comments!

Jinmei: does it work with server-side implementation? For example, the parking lot demo?

Kambe: maybe...

Shane: was a bit worried when I saw that it was C... but needs to be C++

Jinmei: can't it be Python?

Shane: Oh yes, but it can't be C... I think the issue was that we couldn't get the Python SNMP library to work, in that case it makes sense to use a C or C++ library

Shane: I also had a look at the statistics mail from Fujiwara-san.

Jeremy: I had some thoughts on that. Maybe we need to figure out which BIND 9 statistics are applicable to the authoritative server, and then make a checklist to implement those. And for first attempt make an identical XML output.

Shane: That seems like a reasonable approach. Unless we have some thoughts about changing statitics, then implementing what we have seems a good first start.

Michael: open-ended questions are bad

Face-to-face topic: statistics


Shane: Added some tests. Worried that tests are a bit complicated.

Jelte: Have already a similar problem using the message channel. Hard to unit test without a fake message channel around.

Shane: Should we create a fake message channel for testing?

Jelte: In the end I think we will have to.

Shane: So this is not a fake msgq, but a pre-defined API for testing.

Michael: good thing for discussion agenda items...

Face-to-face topic: testing techniques

Data Source

Michael: (via Jabber)

Here's what I have to report:  I did a lot of trial and error trying
to come up with a slab-format that would allow easy and efficient
rendering from a database blob to a dns message.  Turns out I think I
have one, but it's not simple, and isn't a blob just yet, but could be
one easily enough.

I also tried a bit to write a
sqlite database back-end, but C++ won that battle, and I never got it
working.  It's on my laptop though, so will come with me to the

Jelte: after discussions I made some form of half-way between original proposal and ideal one, implemented that in my own branch, jelte-ds<mumble> (the only branch that starts with "jelte"). Yesterday I was a bit stuck with things not implemented in old version of DNS name API. Worked around for now, and working parking lot in branch again, can actually return NXDOMAIN if you ask for something configuring.

Jelte: Working on Data Source API while using the parking lot as a backend. Looking at how to add glue - higher level function, not a part of the higher level API but may turn into one later.

More discussion on the mailing list is very welcome.

Shane: Where do you think we'll be before next week?

Jelte: In a plane? ;) Still have a full day of work tomorrow... but kind of where we are now.


Jeremy: Maybe a week or so did some Python code coverage reports. Wondering if anybody has thoughts on those... which branches to do them at...

Shane: I'd like to see it for the parking lot stuff...

Jeremy: Report didn't look as nice as the lcov. Will post again to Jabber.

Jeremy: Slowly started working on manual pages. In the long run, will probably do in docbook. For now just in man doc (not good because some some Unixes don't have mandoc format).

Jeremy: Working on being able to run parking lot from installation rather than from source tree. Should be done by end of next week.

Jeremy: If you do "make install" you can do "man bindctl".

Jinmei: Next Friday there will be a sushi buffet party. If someone is interested, I can make a group to have it. Jelte showed interest so if you want to join please let me know.

Last modified 9 years ago Last modified on Jan 22, 2010, 3:08:05 PM