Re: removing RIP/RIPng (routed/route6d)
- Reply: Tomek CEDRO : "Re: removing RIP/RIPng (routed/route6d)"
- Reply: Scott : "Re: removing RIP/RIPng (routed/route6d)"
- In reply to: Scott : "Re: removing RIP/RIPng (routed/route6d)"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 16 May 2024 13:02:52 UTC
Scott: > I use RIPv2 for it's simplicity and small memory and CPU requirements. It > has its place and shouldn't be considered "legacy" despite its shortcomings. > It's not uncommon for vendors like Cisco to produce "basic" feature sets of > IOS that do not include any link-state protocols. i imagined there are still people using RIP, so i only proposed removing it since there are several alternatives available. > Anyway, I'm a user, albeit a small user, of RIP and wouldn't object to its > removal from FreeBSD if there were a small footprint alternative. I've used > FRR and VyOS a bit and they are overkill as replacements. Cy has already created ports for these (although i haven't tested them yet): https://cgit.freebsd.org/ports/tree/net/freebsd-routed https://cgit.freebsd.org/ports/tree/net/freebsd-route6d so if you like routed/route6d, you can continue using them even after their removal. that said, i'd also suggest considering net/bird2; it's smaller than FRR and (imo) nicer to manage, not to mention much more maintained than routed is. > Your email doesn't justify its removal other than to say you are unconvinced > of the value of shipping it. As a user I definitely see the value. I > understand that there is always a cost to providing code, but that wasn't > suggested as a reason. All APIs, modules, utilities, etc. need to regularly > justify their presence in the OS. let me turn this around and ask the opposite question: if FreeBSD didn't currently ship RIP/RIPng in the base operating system, would a request to add an implementation of it be considered? almost anything would be useful for someone, somewhere. for example, i'd quite like to see a basic Wayland compositor (such as hikari) and a terminal emulator in the base system, because that's a bit nicer to use than vt(4) if you just need to occasionally manage a system via the framebuffer console. i feel fairly confident to say that this would be useful to a greater number of people than an implementation of RIP. but i wouldn't propose actually doing this in base, because i can fairly easily install this from ports, and the cost of maintaining the code in base would outweight the advantage of not having to type 'pkg install hikari'. similarly for RIP/RIPng, if routed were currently in ports and not in base, there would be very little justification for integrating it into base when someone can just install it from the port. this was different back in the days when routed was first created, because there was no ports system and RIP was common enough that it was useful to users -- along with the fact that 4BSD was effectively the reference implementation of IP and sockets, so shipping RIP was reasonable in that context. so the question for me is not whether it should be in base at all (it clearly shouldn't be, by today's standards), but does the inconvenience to users of removing it outweigh the cost of maintaining the code forever? i don't claim to have any particular expertise here, so people might reasonably disagree, but in my opinion, given the small number of users, the advanced notice period (15.0-RELEASE) and the ease of addressing the problem (pkg install freebsd-routed) the answer is yes. someone elsethread mentioned that they expect FreeBSD to be a "complete operating system". what does this mean in practice? many people expect a complete operating system to include a GUI, yet FreeBSD hasn't shipped X in the base system for quite a while. should we put X back into base? the most sensible way to address this, to me, seems to be that the base OS should include things which are a) widely used, b) not available elsewhere, and c) worth the maintenance cost. for example, the kernel is in base, because there's no FreeBSD without the kernel. /bin/sh is in base because the OS would be unusable without it, even though you can install other shells from ports. /etc/rc is in base because an rc-system is required and /etc/rc is the only one that exists for FreeBSD. fetch(1) is in base even though you can install equivalent software (e.g., cURL) from ports, so you could make an argument that it should be moved to ports. however, fetch is useful for both bsdinstall and for many custom post-installation tasks that need an HTTP client, and attempting to remove it would be very disruptive. cron(8) is in base even though there are other cron implementations, because widely-used parts of the the base system (e.g., periodic(8)) depend on cron for basic functionality; removing cron would also require removing this functionality, and that would be a significant loss to users with no obvious replacement. but routed is not widely used in general, either by users or by the OS itself; there are many implementations of RIP available elsewhere; and the code is both old, barely maintained, and a network server, making it a potential security risk among other maintenance costs. i think a good example here, similar to routed, would be window(1). 30 years ago, i used window(1) all the time; it was very useful and an obvious candidate for a base utility considering how (relatively) common text terminals were. but since then, the world changed: text consoles are less common (in favour of GUIs) and people nowadays are more likely to use screen(1) or tmux(1), modern utilities which do the same thing better. so while window(1) had enough remaining users to justify moving it to a port, it failed to meet the requirements a) and c) above. would people objecting to the removal of routed also advocate for putting window(1) back into base? (this is not a rhetorical question, 'yes' is a perfectly reasonable answer.) --- a couple of people also mentioned pkgbase and i think this is likely to have an effect on this sort of discussion, especially because it makes the current hard divide between src and ports more permeable: there's not much difference between typing 'pkg install FreeBSD-routed' (pkgbase) or 'pkg install freebsd-routed' (ports), for example. i like pkgbase and use it on all my systems, so i'm very interested to see where this leads. in fact, i originally intended to submit a patch to move routed into a new pkgbase package, as i've recently done with some other base utilities. in the ended i decided, based on the reasoning above, that it made more sense to simply remove it. my guess is that if/when pkgbase does become the default, it will make it easier to justify removals like these, because if you already have to install routed (or whatever) from a pkgbase package, it's not much of a change to install it from a ports package instead.