BSDCAN 2020 talk on Using OpenBGPd as a Control Plane for an ISP

I presented a talk on how I used OpenBGPd as a control plane for my ISP. I cover areas such as Routing fundamentals, a lightning introduction to BGP. An interesting aspect of the design is how the OpenBSD / OpenBGPd is used to control the routing information in my ISP yet the forwarding of packets is offloaded to hardware Layer 3 switches. I also outline my favourite new feature of OpenBGPd max prefix out which I'm sure will save my blushes if/when I fat finger my Prefix filters (although if my hair cut is anything to go by it is clear I have no shame anyway!). You can check out the talk here! Tom would welcome comments and feedback on the talk. I hope the talk will help others in deploying OpenBGPd and OpenBSD in their networks.

I would also suggest that those interested in learning more about OpenBGPd check out Peter Hessler's Tutorial on OpenBGPd which served as an essential aid in getting comfortable in configuring BGP on OpenBSD / OpenBGPd. Peter usually runs the Tutorial in advance of BSD Conferences.

I would like to give a big shout out to the people who write the code in OpenBSD and OpenBGPd, and that your effort makes my life running my network and ISP easier.

A huge word of thanks is due to Dan Langielle and the BSDCAN2020 Volunteers who organised the virtual BSDCAN 2020 conference this year in quite difficult circumstances.

DRM update committed

Jonathan Gray (jsg@) has just committed an update to the DRM code to the tree. This update brings support for newer AMD and Intel graphics parts.

Date: Sun, 7 Jun 2020 22:48:16 -0600 (MDT)
From: Jonathan Gray <>
Subject: CVS: src

CVSROOT:        /cvs
Module name:    src
Changes by:     2020/06/07 22:48:16

Modified files:
        sys/arch/amd64/conf: Makefile.amd64
        sys/arch/arm64/conf: Makefile.arm64
        sys/arch/i386/conf: Makefile.i386

Log message:
update drm to linux 5.7

adds kernel support for
amdgpu:         vega20, raven2, renoir, navi10, navi14
inteldrm:       icelake, tigerlake

Thanks to the OpenBSD Foundation for sponsoring this work, kettenis@ for
helping, patrick@ for helping adapt rockchip drm and many developers for

As is clear from Jonathan's commit message, this work was sponsored by the OpenBSD Foundation - it shows how your financial support of the foundation can directly improve (in this case) hardware support. Many thanks to Jonathan for working on this.

OpenBSD 6.7 and ffs2 FAQs

Otto Moerbeek (otto@) posted to misc@ a useful summary of the state of play of FFS2 in the 6.7 release (and, to some extent, -current).

In his mail, Otto clarifies some things about the latest release:

  • In OpenBSD 6.7, ffs2 is the default for new filesystems (with some exceptions).
  • In OpenBSD 6.7, if you create a new filesystem manually (using newfs(8)) you will still get an FFS1 filesystem unless you force -O2 or if the filesystem will be larger than 1 TB.

Read more…

Installation images renamed from .fs to .img

In a commit touching quite a few files, Theo recently renamed the installation images from installXX.fs to installXX.img:

Date: Sun, 17 May 2020 11:04:29 -0600 (MDT)
From: Theo de Raadt <>
Subject: CVS: src

CVSROOT:        /cvs
Module name:    src
Changes by: 2020/05/17 11:04:29

Modified files:
        distrib/alpha/miniroot: Makefile
        distrib/amd64/iso: Makefile
        bin/dd         : dd.1
        usr.sbin/ldomctl: ldomctl.8

Log message:
Change install images called *.fs to *.img.  These are UFS filesystem images,
but additionally have a bootblock in the first 8K (since UFS does not use that
space).  There are some UEFI direct-from-internet bootloaders that require
the name *.img.  So this makes things more convenient for those, while keeping
it consistant in all architectures.
ok kettenis beck kn

This means that with recent snapshots, you should use the .img file to prepare your installation medium, where you were previously using the .fs file. It also means that you can install 'direct-from-internet' on these fancy UEFI machines! Note that if you want to install the OpenBSD 6.7 release, you still need to use install67.fs.

OpenBSD 6.7 Released

The OpenBSD project has released OpenBSD 6.7, marking the 48th release of our favorite operating system. The announcement message and the release page both have detailed information.

These are some highlights of the improvements in the present release:

  • For new installs on nearly all architectures the default file system is now FFS2, sporting 64-bit timestamps and block counters
  • There are numerous SMP improvements, including unlocking of several system calls
  • Hardware support in all architectures is much improved and expanded, with a number of new drivers including the iwx(4) driver for new Intel WiFi devices as well as significant expansion of arm64 and armv7 hardware support.
  • Enabled rpki-client(8), to support Origin Validation in BGP-speaking routers in the base install.
  • New versions of programs and subsystems maintained as part of OpenBSD but widely reused elsewhere:

See the release page and the daily changelog for a full list of changes since the previous release. Those upgrading from version 6.6 should read the Upgrade Guide.

Thanks to the developers for all the good work that goes into each release! To support further work on OpenBSD, please see the donations page for ways to contribute even if you can not offer up code yourself.

First seed for OpenBSD/powerpc64 planted by kettenis@

In a set of commits to the tree on Saturday, Mark Kettenis (kettenis@) added the early beginnings of support for the 64-bit PowerPC platform:

Date: Sat, 16 May 2020 11:11:14 -0600 (MDT)
From: Mark Kettenis <>
Subject: CVS: src

CVSROOT:        /cvs
Module name:    src
Changes by:        2020/05/16 11:11:14

Added files:
        sys/arch/powerpc64/compile: Makefile
        sys/arch/powerpc64/compile/GENERIC: Makefile
        sys/arch/powerpc64/conf: GENERIC Makefile.powerpc64
                                 files.powerpc64 ld.script
        sys/arch/powerpc64/include: _types.h atomic.h bus.h cdefs.h
                                    conf.h cpu.h db_machdep.h
                                    disklabel.h endian.h exec.h fpu.h
                                    frame.h intr.h limits.h mutex.h
                                    param.h pcb.h pmap.h proc.h psl.h
                                    ptrace.h reg.h signal.h softintr.h
                                    spinlock.h tcb.h vmparam.h
        sys/arch/powerpc64/powerpc64: autoconf.c conf.c cpu.c disksubr.c
                             locore.S locore0.S
                                      machdep.c pmap.c process_machdep.c
                                      softintr.c sys_machdep.c syscall.c

Log message:
Planting the first seed for OpenBSD/powerpc64.

As support for additional hardware platforms brings opportunities to find (and fix) bugs on other, more established environments, this is definitely an interesting development. Of course it is still currently very much in its infancy, so don't drag out your POWER9 systems just yet, unless you're ready to roll up your sleeves and get some diffs submitted. Thanks to Mark for working on this port!