OpenBSD Journal

Henning Interview: bgpd + pf + w^x + Fosdem topic

Contributed by jose on from the 20-questions dept.

John Bajana-Bacalle writes: "A short-medium read, Henning Brauer , pre-FOSDEM interview . I enjoyed learning a little more about the man, his day job, his entree into OBSD development. Not the least of which, he addresses his/the new development of bgpd (8,500 lines thus far)---now that pf work is maturing offering a lull to be filled with code work, a fresh project.
``As there currently is no free bgp deamon that works well, I was carrying around the idea of writing one with me since about 2 years. Last September when I have been in Calgary I finally talked about that idea. In discussions with Theo some design ideas became clearer, and with some moral support I started writing bgpd in late November. After 9 days I ahd a fully working BGP session engine... ,'' says Henning.

It's all good."

(Comments are closed)

  1. By Anonymous Coward () on

    I liked that interview. Just makes me appreciate OpenBSD even more for what it really is from a true developer's perspective (I'm not a developer myself).

    I particularly liked the section on "What would you say to convince a Linux user to switch to OpenBSD ?".

    Just my $0.02.

  2. By Anthony () on

    I disagree with one point... where he says there's not much visible difference between Linux and OpenBSD on the desktop. A 2.6 kernel, a patched 2.4 kernel, or maybe a FreeBSD with the ULE scheduler (I haven't tried this, but it looks just as good from what I've read) is substantially more responsive under high load than OpenBSD. This can get pretty bad in some situations.

    This isn't a complaint, just an observation. I use something else when desktop performance is needed.

    1. By Anonymous Coward () on

      Define what you call performance problem and stop making statements based on "Ive heard of FreeBSD got zippy with a new scheduler".

      Thanks for your time.

      1. By Anthony () on

        When the load gets too high, eg when compiling something, interactive stuff like the GUI can stop responding or become sluggish. Stuff like the music player can skip, or stop playing altogether. To me this is a problem.

        1. By tedu () on

          man nice

          1. By Anthony () on

            Having to go around renicing everything also constitutes a visible difference. I'm not reading the man page for nice, but I remember it well enough to know you can't use a priority less than 0 unless you're root.

            So, unless I want to use root privileges every time I fire up a web browser, I'd have to go the other way and run all my CPU-bound stuff at a higher nice... That also constitutes a visible difference.

            OR I could just use an OS that's actually designed for highly responsive desktop use and not insult OpenBSD by pretending it's the best OS for all tasks. Yeah. I think that's the way to go.

            1. By Anonymous Coward () on

              What about hacking a bit to improve OpenBSD ?
              It's really annoying to see people asking for something but never doing anything themselves ...

              1. By Anthony () on

                I wasn't asking for anything. I specifically said this was just an observation.

                Besides, I kinda doubt Theo would accept patches that would add quite a bit of complexity without any substantial benefit to security or stability.

    2. By Anonymous Coward () on

      Linux 2.6 kernel uses an O(1) scheduler, OpenBSD does not so 2.6 will be better at scheduling many processes.

      Linux 2.6 supports Intel's HT processors, OpenBSD supports the crypto in VIA's. Yes, crypto is important but I know which I'd rather have on my desktop (and be able to justify on SMP servers). SMT and SMP is where things are headed and no SMP in OpenBSD is going to become a serious mark against it in the not too distant future.

      Gentoo, at least, allows processor specific optimisation during compilation, OpenBSD does not (though I hope this will be changing soon with the gcc3 import). This made a huge difference to desktop performance and responsiveness when I tested it on a spare system.

      So for now at least, I'll use Linux or possibly FreeBSD when they go to 5-RELEASE for desktop use but I'll stick it behind an OpenBSD firewall.

      1. By Wim () on

        And we all know how reliable optimalisations are under GCC :-)

      2. By Anonymous Coward () on

        It's kind of funy how Gentoo loses in benchmarks to the less optimized Debian...

      3. By Anthony () on

        It's not so much the fact that it's O(1), at least for me, because the number of processes just isn't that large. It's got more to do with interruptible kernel threads and better interactivity guessing.

      4. By Anonymous Coward () on

        Quit making shit up. Serveral websites have benchmarks showing gentoo using all those stupid optimizations is in fact *slower* than just compiling it properly.

    3. By Anonymous Coward () on

      Yeap. Desktop performance is better had on a Linux distro.

  3. By Lawrence Berhold () on

    Why does Henning not use libevent for his daemon?
    It seems that he is using the old poll. Not going to scale, oh no. Besides, if he wants a portable system that makes use of kqueue and stuff like that, libevent seems the way to go.

    Just my 2 cents.

    - L

    1. By gwyllion () on

      Good question, but I don't think he was to make it portable (yet).

    2. By djm () on

      We are talking about a BGP daemon, not a webserver. Think about how it will be used. It doesn't need to scale to more than a few connections, a dozen may be an extreme case. kqueue makes sense for >1000 fds, how many BGP routers have anything like 1000 peers? I'd say none.

      1. By Joe Abley () on

        A dozen is not particularly extreme. A couple of hundred would be unusual, but not unheard of.

        There are many networks in the world which include more than a couple of hundred routers, for example. If there's a need to terminate an ibgp session from each of them on a monitor box, there's 10-20 times your "dozen" worst case right there.

        1. By Anonymous Coward () on

          If you have hundreds of BGP peers on a single router, then you seriously need to think about learning BGP, or hiring someone that knows what they are doing.

    3. By Henning () henning@ on mailto:henning@

      why one earth should I use libevent?
      to have one buzzword on the shrinkwraped product? oh wait we don't have that...
      poll is good.
      and, people who tell you things like "using the old poll. Not going to scale, oh no." are either liars or have no idea what they are talking about.

  4. By asti () on

    Why not help the zebra project and it's implementation of BGP ? It is slick; i've experimented with it since zebra-0.89.

    One would be writing BGPd for a long time. Zebra is free. ( free == GNU )

    1. By Anonymous Coward () on

      read OpenBSD goals:

      Integrate good code from any source with acceptable copyright (ISC or Berkeley style preferred, GPL acceptable as a last recourse but not in the kernel, NDA never acceptable). We want to make available source code that anyone can use for ANY PURPOSE, with no restrictions. We strive to make our software robust and secure, and encourage companies to use whichever pieces they want to. There are commercial spin-offs of OpenBSD.

    2. By Henning () henning@ on mailto:henning@

      1) zebra is unfixable without rewriting it completely
      2) it is not free. GPL is not free.

      1. By Anonymous Coward () on

        Henning Wrote:
        > "GPL is not free."

        And neither is the BSD license; Public Domain is the absolute freedom.



Copyright © - Daniel Hartmeier. All rights reserved. Articles and comments are copyright their respective authors, submission implies license to publish on this web site. Contents of the archive prior to as well as images and HTML templates were copied from the fabulous original with Jose's and Jim's kind permission. This journal runs as CGI with httpd(8) on OpenBSD, the source code is BSD licensed. undeadly \Un*dead"ly\, a. Not subject to death; immortal. [Obs.]