Page MenuHomeFreeBSD

Remove RIP and RIPng
AcceptedPublic

Authored by ivy on Oct 30 2025, 7:28 PM.
Tags
None
Referenced Files
Unknown Object (File)
Jan 31 2026, 6:23 AM
Unknown Object (File)
Jan 30 2026, 5:06 PM
Unknown Object (File)
Jan 30 2026, 12:14 AM
Unknown Object (File)
Jan 24 2026, 7:35 PM
Unknown Object (File)
Jan 24 2026, 3:55 AM
Unknown Object (File)
Jan 5 2026, 6:55 PM
Unknown Object (File)
Nov 27 2025, 9:21 PM
Unknown Object (File)
Nov 15 2025, 1:39 AM

Details

Reviewers
emaste
cy
andrew
pouria
melifaro
Group Reviewers
network
Summary

RIP (routed) and RIPng (route6d) were deprecated in 15.0. Remove them
as planned.

Relnotes: yes

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 68293
Build 65176: arc lint + arc unit

Event Timeline

ivy requested review of this revision.Oct 30 2025, 7:28 PM

Note that there are tests that use routed :(

tests/sys/netinet/carp.sh

Would there be any value into turning routed into a port? I don't use routed though I did in a different lifetime on a different O/S (Tru64).

Note that there are tests that use routed :(

oh, i missed that; i'll investigate and update the diff. thanks.

In D53484#1223413, @cy wrote:

Would there be any value into turning routed into a port? I don't use routed though I did in a different lifetime on a different O/S (Tru64).

there is already a net/freebsd-routed package, maintained by one "cy@FreeBSD.org" :-) this is mentioned in the UPDATING entry in this diff.

In D53484#1223559, @ivy wrote:

Note that there are tests that use routed :(

oh, i missed that; i'll investigate and update the diff. thanks.

In D53484#1223413, @cy wrote:

Would there be any value into turning routed into a port? I don't use routed though I did in a different lifetime on a different O/S (Tru64).

there is already a net/freebsd-routed package, maintained by one "cy@FreeBSD.org" :-) this is mentioned in the UPDATING entry in this diff.

<sigh>

In D53484#1223559, @ivy wrote:

Note that there are tests that use routed :(

oh, i missed that; i'll investigate and update the diff. thanks.

LGTM, but please fix test issue first.

Full disclosure: I was the maintainer of vendorized import of routed in FreeBSD for many years, and loosely touched the xorp_rip/xorp_ripng routing processes during tenure at ICSI and XORP, Inc.

I appreciate that deprecation and removal are probably warranted, given that RIP and RIPng are relatively dated IGPs. Moreover, I actively worked on a technology seeking to deprecate or limit the use of IGPs further in IPv6 during my PhD.

Have you upstreamed any deltas from vendor to Vernon Schryver at Rhyolite.com (historically the out-of-tree routed maintainer) before performing removal?

In D53484#1270040, @bms wrote:

Have you upstreamed any deltas from vendor to Vernon Schryver at Rhyolite.com (historically the out-of-tree routed maintainer) before performing removal?

no.

TL;DR I concur with removal.

In D53484#1270446, @ivy wrote:
In D53484#1270040, @bms wrote:

Have you upstreamed any deltas from vendor to Vernon Schryver at Rhyolite.com (historically the out-of-tree routed maintainer) before performing removal?

no.

It's not strictly necessary, but extra karma if you do. It looks like @cy is tracking that as ports/net/freebsd-routed anyway.

I wouldn't rule out RIP/RIPng entirely, as there may still be "sticking plaster" situations where they are required, but as IGPs today, they are pretty irrelevant, except as textbook academic examples of how to build a (naive, basic) IGP.

At this point in my life (not quite 50 yet), I have lost track of how many RFCs I have actually read, and how many I've implemented from scratch.

In D53484#1270635, @bms wrote:

It's not strictly necessary, but extra karma if you do. It looks like @cy is tracking that as ports/net/freebsd-routed anyway.

well, i don't care about this code or RIP in general and i have no idea who Vernon Schryver is or what sort of diffs we might want to upstream, so i don't really want to be responsible for this. if someone else would like to take on that task, the code will still be available in our git history (and in the port, as you mentioned).

I wouldn't rule out RIP/RIPng entirely, as there may still be "sticking plaster" situations where they are required

people who still require RIP can use a modern implementation, such as in the ports net/bird3 or net/frr10. as far as i'm aware these both work well on FreeBSD and have good implementations of both RIP and RIPng.

i personally don't think anyone should be using RIP anymore, but if they want to, they can continue to do so; we just don't want to support this in src anymore.

In D53484#1272094, @ivy wrote:
In D53484#1270635, @bms wrote:

It's not strictly necessary, but extra karma if you do. It looks like @cy is tracking that as ports/net/freebsd-routed anyway.

well, i don't care about this code or RIP in general and i have no idea who Vernon Schryver is or what sort of diffs we might want to upstream, so i don't really want to be responsible for this. if someone else would like to take on that task, the code will still be available in our git history (and in the port, as you mentioned).

I wouldn't rule out RIP/RIPng entirely, as there may still be "sticking plaster" situations where they are required

people who still require RIP can use a modern implementation, such as in the ports net/bird3 or net/frr10. as far as i'm aware these both work well on FreeBSD and have good implementations of both RIP and RIPng.

i personally don't think anyone should be using RIP anymore, but if they want to, they can continue to do so; we just don't want to support this in src anymore.

I think that can be divided into two points,

  1. People should not use RIP anymore. I think that is not correct. I still see low end routers / l3 switches ship basic implementation of RIP / RIPng. That is an easy protocol to setup small network, without manipulating dozens of static routing entries across multiple routers / l3 switches. So why people want more complexed IGP protocols or to buy expensive routers / l3 switches those support more EGP / IGP protocols ?
  2. People should not use in-tree routed(8) / route6d(8) . There're popular implementation such as bird and frr, but the setup of routed(8) and route6d(8) is quite simple compared with them. It just works solid and great. I'd prefer to keep routed(8) / route6d(8) in tree if possible.
  1. People should not use RIP anymore. I think that is not correct. I still see low end routers / l3 switches ship basic implementation of RIP / RIPng. That is an easy protocol to setup small network, without manipulating dozens of static routing entries across multiple routers / l3 switches. So why people want more complexed IGP protocols or to buy expensive routers / l3 switches those support more EGP / IGP protocols ?

frr can be configured to only run specific daemons, and its vtysh makes it easy for network engineers. also, bird is already light and easy to configure for protocols like RIP.
For EGP, openbgpd exists.
There is no need for expensive hardware even for OSPF anymore.

  1. People should not use in-tree routed(8) / route6d(8) . There're popular implementation such as bird and frr, but the setup of routed(8) and route6d(8) is quite simple compared with them. It just works solid and great. I'd prefer to keep routed(8) / route6d(8) in tree if possible.

IMHO, we can have routed and route6d handled as packages and it can work solid and great too.
I prefer to keep the source tree as small as possible and focus on KPIs and its base utilities that are absolutely necessary to be in tree.

Also, we already announce that the RIP is deprecated.

This revision is now accepted and ready to land.Sun, Mar 1, 4:38 PM

i don't really want this review to turn into a debate over whether people should use RIP. the point is, people who do want to (and i'm aware some such people exist) can continue to do so, even using routed from ports if they really want.

melifaro added a subscriber: melifaro.

Long overdue one, thank you for working on this!

@ivy any ideas how to keep tests/sys/netinet/carp.sh working without routed?

@ivy any ideas how to keep tests/sys/netinet/carp.sh working without routed?

no, sorry, i haven't even had a chance to look at this. (i've been busy with some IRL stuff and mostly working on more urgent things in FreeBSD, but i'll try to have a look soon.)