--rpGc+ACYPE+RMC+Z Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Hi all, I'm the one that had asked WilliamH about splitting out OldNet from OpenRC, so I figured rather than respond to every single part of this thread, I wanted to give a general response. Misc preamble: -------------- If you're a student considering GSoC, reading this email, and this interests you, please submit a proposal for the future portions! Introduction: ------------- This is NOT intended to take oldnet away from OpenRC systems at all, but rather to encourage growth of both parts independently.=20 Historically, baselayout-1 had a very tight integration between oldnet and = the rc handling, because net* was a special case for dependency handling. However, since baselayout-2, this was no longer the case. OpenRC doesn't actually depend on oldnet in any way. Oldnet however does depend on the rc script handling of OpenRC. Naming & options: ----------------- I'm not entirely set on the oldnet name, but nothing that WilliamH and I could come up seemed entirely right. Oldnet is certainly NOT the only option for networking in Gentoo. You've also got newnet, netctl, network-manager, wicd, and more that I'm probably forgetting. Complexity: ----------- As a part of OpenRC, oldnet is roughly ~6200 lines of code, and ~1700 lines of documentation. OpenRC as whole has ~28000 lines of code. So about 20-25% of the codebase, and most of the documentation ;-). Of presently open OpenRC bugs, >30% are presently oldnet. Oldnet supports both really easy simple configurations, as well as many very complicated setups. I have some examples in my homedir: http://dev.gentoo.org/~robbat2/conf.d-net/ - Multi-homing, dual Internet connection, home setup - Multi-homing, enterprise setup - Snippet: HE.net (Hurriance Electric) IPv6 tunnel (this gives you drop-in TunnelBroker connectivity) Other than the above, how much of the OpenRC codebase uses or even references oldnet? Here's a near complete list: init.d/devd.in: before net.lo0 init.d/hostid.in: before devd net init.d/ipfw.in: before net init.d/nscd.in: use net dns ldap ypbind init.d/rarpd.in: need net init.d/rc-enabled.in: need localmount net init.d/rpcbind.in: use net logger dns init.d/staticroute.in: provide net init.d/syslogd.in: use net newsyslog conf.d/netmount:# example, do not set rc_need to something like "net.eth0 d= hcpcd". conf.d/netmount:# If you are using oldnet, you must list the specific net.*= services you conf.d/netmount:#rc_need=3D"net.eth0" conf.d/netmount:#rc_need=3D"net.eth1 net.eth2" conf.d/netmount:rc_need=3D"net" (plus other examples). And all of these simply deal with the 'net' virtual service, lots of them a= re *BSD only too. So what of this complexity? We've already had two occurrences where there w= as a bug in oldnet, but we couldn't release a new stable OpenRC version easily, because we'd started the tree on an update for other major changes in OpenR= C. It would have been extremely useful to release a stable oldnet minor version bump with the fix, but it wasn't possible. Testing ------- Testing oldnet extensively is very challenging due to the complexity. It's impossible for a single person to have a test environment for ALL of the variants of networking - some of the modules also have a number of variations in usage. So what I'd like to do, is establish that ALL of the modules still work completely, and who to contact for testing of each portion, AND/OR a known test configuration. On a regular basis, I dogfood: - bonding (ifenslave/sysfs) - bridging (brctl) - vlan - PPPoE - IPv6 - APIPA - dhcpcd - ethtool - ifconfig - iproute2 (esp RPDB) - macchanger Other parts I can't/don't test: - adsl - autoipd - br2684 - ccwgroup - clip - dhclient - ifplugd - netplugd - ip6rd - ip6to4 - ipppd - iwconfig - macnet - macvlan - pump - ssidnet - tuntap - udhcpc - wpa_supplicant (i probably forgot some) More stuff pending to be added: (most of which have bugs, some of them I just have direct email submissions) - plip - l2tp - iw - xfsm/ipsec - iproute2-bridge - teaming - vlan gvrp/mvrp - vrrp, bgpd, ospf (run screaming for the hills) systemd & the future: --------------------- Before you read this section, I suggest you don a flameproof suit, extinguish all potential sources of ignition, and don't take it too hard. I'm not sure about the future of the core of OpenRC: Upstart & systemd have some clear architectural benefits, despite their implementation shortcomings (either upstream or per-distro). The /usr merge is inevitable, as is the integration of other components into the init system (udev, dbus, ...). What has become dis-integrated inst= ead is the configuration: lots of hardware ships specific udev rules with few problems. netctl showed that systemd control of single interfaces AND/OR default single-interfaces is feasible. However the netctl development has never had the flexibility of oldnet. I would like the flexibility of oldnet to continue to exist, regardless of whichever init system we end up on. I think the best future for that is making oldnet independent of openrc. I look forward to a future where I can fire up my laptop, using systemd, ha= ving network-manager on wifi, and connect my ethernet jack into a vlan-tagged po= rt, and connect to a little Gentoo virtual machine in the cloud that booted up = with OpenRC and a tiny udhcpc configuration. Thank you for your time. --=20 Robin Hugh Johnson Gentoo Linux: Developer, Trustee & Infrastructure Lead E-Mail : robbat2@gentoo.org GnuPG FP : 11ACBA4F 4778E3F6 E4EDF38E B27B944E 34884E85 --rpGc+ACYPE+RMC+Z Content-Type: application/pgp-signature; name="signature.asc" Content-Description: Digital signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.19 (GNU/Linux) Comment: Robbat2 @ Orbis-Terrarum Networks - The text below is a digital signature. If it doesn't make any sense to you, ignore it. iKYEARECAGYFAlF5wQ5fFIAAAAAALgAoaXNzdWVyLWZwckBub3RhdGlvbnMub3Bl bnBncC5maWZ0aGhvcnNlbWFuLm5ldDc1OTQwNEJFQkQ0MUY3MTIzODIzODZFRjNF OTIyQzIyMzIzM0MyMkMACgkQPpIsIjIzwiz8rACguqWZ7chrckClrtFwAf0Uom9M U3wAoNeBKnSLBx5OZpXtKRnZ7wNFad3g =mNay -----END PGP SIGNATURE----- --rpGc+ACYPE+RMC+Z--