# Install olsrd with Homebrew, apk, Nix

Implementation of the optimized link state routing protocol. Version 0.9.8 via Homebrew; verified 2026-07-11. Also installable with nix: nix profile install nixpkgs#olsrd.

## Install

```sh
sudo av install brew:olsrd
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install olsrd
```

  Evidence: local Homebrew formula metadata

### Linux

- apk (92%):

```sh
sudo apk add olsrd
```

  Evidence: Alpine Linux edge package indexes: olsrd from https://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz

- Nix (92%):

```sh
nix profile install nixpkgs#olsrd
```

  Evidence: nixpkgs package indexes: pkgs/by-name/ol/olsrd/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

## Package facts

- **Package key:** brew:olsrd
- **Package manager:** Homebrew
- **Version:** 0.9.8
- **Source summary:** Implementation of the optimized link state routing protocol
- **Homepage:** <https://github.com/OLSR/olsrd>
- **Repository:** <https://github.com/OLSR/olsrd>
- **Last updated:** 2026-07-11T09:50:48+09:00
- **Generated:** 2026-08-03T19:37:03+00:00

## Executables

- olsrd (alias)
- sgw_policy_routing_setup.sh (alias)

## Install behavior

- Bottle: not available

## Freshness

- Page generated: 2026-08-03
- Package-manager version: 0.9.8
## Project history and usage

olsrd is the OLSR.org routing daemon, a C implementation of the Optimized Link State Routing protocol for mobile ad hoc and wireless mesh networks. Its historical importance is tied to RFC 3626, which standardized OLSR in October 2003 as a proactive link-state protocol that reduces wireless flooding with multipoint relays.

### Project history

The OLSR.org project says olsrd began in 2004 as Andreas Tonnesen's master's thesis implementation of the IETF MANET OLSR protocol. After the thesis work, development continued as an open source project because community networks needed a real daemon, not just a protocol specification.

The daemon evolved into a modular implementation with loadable plugins and ports beyond Linux. Historical project material records the addition of a plugin interface, Windows and BSD ports, an OS X port, and link-quality routing work during the 2004-2005 period.

### Adoption history

olsrd's adoption story is unusually concrete for a routing daemon: Freifunk, FunkFeuer, and other community wireless networks used it to build multi-hop mesh networks. The GitHub repository identifies the OLSR.org v1 codebase as maintained by Freifunk Berlin, which matches its long association with European community mesh deployments.

Research and engineering literature around community networks treated the OLSR.org implementation as one of the widely deployed open source OLSRv1 daemons. That made olsrd a reference point for later comparisons with B.A.T.M.A.N., Babel, OLSRv2, and other mesh-routing approaches.

### How it is used

Operators run olsrd as a standalone routing daemon on each mesh node. It discovers neighbors with OLSR messages, installs routes into the host routing table, and can advertise external networks through host/network association settings.

Package users usually care about the daemon plus its configuration and plugin ecosystem: interface selection, link-quality behavior, gateway advertisement, status output, and integrations for embedded router distributions such as OpenWrt.

### Why package nerds care

For package nerds, olsrd is a compact example of a network protocol escaping an RFC and becoming operational infrastructure. It sits at the intersection of IETF MANET work, hobbyist/community networking, embedded Linux routers, and distro packaging.

It also matters because it is old infrastructure with real-world wrinkles: platform ports, plugins, wireless link-quality extensions, and packaging across Unix-like systems all show the difference between a protocol paper and deployable routing software.

### Timeline

- October 2003: RFC 3626 documents the OLSR protocol for mobile ad hoc networks.
- 2004: olsrd starts as Andreas Tonnesen's master's thesis implementation and then continues as an open source project.
- 2004-2005: project history records plugin support, additional platform ports, and link-quality routing work.
- 2010s-2020s: the OLSR.org v1 repository lives on GitHub under the OLSR organization, with the repository description identifying Freifunk Berlin maintenance.

### Related projects

- OLSRv2 is the IETF successor to OLSR and keeps the multipoint-relay family resemblance while using newer MANET components. In package collections, olsrd is commonly compared with other mesh daemons such as Babel and B.A.T.M.A.N. rather than with general-purpose wired routing suites.

### Sources

- <https://api.github.com/repos/OLSR/olsrd>
- <https://datatracker.ietf.org/doc/rfc3626/>
- <https://datatracker.ietf.org/doc/rfc7181/>
- <https://github.com/OLSR/olsrd>
- <https://ieeexplore.ieee.org/document/6673346/>
- <https://openwrt.org/docs/guide-user/network/wifi/mesh/olsr>
- <https://wirelesspt.net/arquivos/docs/olsr/Implementation.Of.Olsrd.pdf>
- <https://www.olsr.org/>


## Security Notes

narrow executable package without higher-risk signals.

- **Geiger risk:** green / low
- narrow executable package without higher-risk signals

## Other Package-Manager Records

- Nix - olsrd: normalized package name match | nixpkgs package indexes: pkgs/by-name/ol/olsrd/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- apk - olsrd - 0.9.8-r3: normalized package name match | Alpine Linux edge package indexes: olsrd from https://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz | An implementation of the IETF RFC 3626: Optimized Link State Routing Protocol | http://www.olsr.org/mediawiki/index.php/Olsr_Daemon
- apk - olsrd-doc - 0.9.8-r3: normalized package name match | Alpine Linux edge package indexes: olsrd-doc from https://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz | An implementation of the IETF RFC 3626: Optimized Link State Routing Protocol | http://www.olsr.org/mediawiki/index.php/Olsr_Daemon
- apk - olsrd-openrc - 0.9.8-r3: normalized package name match | Alpine Linux edge package indexes: olsrd-openrc from https://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz | An implementation of the IETF RFC 3626: Optimized Link State Routing Protocol (OpenRC init scripts) | http://www.olsr.org/mediawiki/index.php/Olsr_Daemon
- apk - olsrd-plugins - 0.9.8-r3: normalized package name match | Alpine Linux edge package indexes: olsrd-plugins from https://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz | Optional plugins for olsrd | http://www.olsr.org/mediawiki/index.php/Olsr_Daemon


## Combined YAML source

View the package source record on GitHub. [combined/olsrd.yml](https://github.com/mxcl/pkgdb/blob/main/combined/olsrd.yml)


## Sources

- pkg.so package database
- Geiger risk classifier
- curated package history
- pkgdb category and tag curation
- external package-manager database matches
- cross-ecosystem install command graph
