public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Robin H. Johnson" <robbat2@gentoo.org>
To: gentoo-dev@lists.gentoo.org
Subject: [gentoo-dev] OldNet out of OpenRC: as the requester
Date: Thu, 25 Apr 2013 23:49:35 +0000	[thread overview]
Message-ID: <20130425234935.GO16232@orbis-terrarum.net> (raw)
In-Reply-To: <20130424161606.GA1607@linux1>

[-- Attachment #1: Type: text/plain, Size: 5684 bytes --]

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. 

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 dhcpcd".
conf.d/netmount:# If you are using oldnet, you must list the specific net.* services you
conf.d/netmount:#rc_need="net.eth0"
conf.d/netmount:#rc_need="net.eth1 net.eth2"
conf.d/netmount:rc_need="net"
(plus other examples).

And all of these simply deal with the 'net' virtual service, lots of them are
*BSD only too.

So what of this complexity? We've already had two occurrences where there was 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 OpenRC.
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:
---------------------
<warn>
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.
</warn>

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 instead
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, having
network-manager on wifi, and connect my ethernet jack into a vlan-tagged port,
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.

-- 
Robin Hugh Johnson
Gentoo Linux: Developer, Trustee & Infrastructure Lead
E-Mail     : robbat2@gentoo.org
GnuPG FP   : 11ACBA4F 4778E3F6 E4EDF38E B27B944E 34884E85

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 460 bytes --]

  parent reply	other threads:[~2013-04-25 23:49 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-04-24 16:16 [gentoo-dev] rfc: oldnet scripts splitting out from OpenRC William Hubbs
2013-04-24 16:45 ` Diego Elio Pettenò
2013-04-24 17:01   ` William Hubbs
2013-04-24 17:30     ` Mike Frysinger
2013-04-24 21:00     ` Diego Elio Pettenò
2013-04-24 16:58 ` Ian Stakenvicius
2013-04-24 17:23   ` William Hubbs
2013-04-24 17:34     ` Mike Frysinger
2013-04-24 17:54       ` William Hubbs
2013-04-24 18:16         ` Rich Freeman
2013-04-24 18:30           ` William Hubbs
2013-04-25 21:01             ` [gentoo-dev] " Steven J. Long
2013-04-26  8:41               ` Tobias Klausmann
2013-04-26  8:58                 ` Tobias Klausmann
2013-04-26 11:20                   ` Michael Mol
2013-04-26 16:24                     ` »Q«
2013-04-24 22:34           ` [gentoo-dev] " Walter Dnes
2013-04-24 23:17             ` William Hubbs
2013-04-24 23:32               ` Rick "Zero_Chaos" Farina
2013-04-25  0:05                 ` Carlos Silva
2013-04-25  1:10                 ` William Hubbs
2013-04-25  1:39                   ` Ian Stakenvicius
2013-04-25  2:12                     ` Zac Medico
2013-04-25 18:10               ` Mike Frysinger
2013-04-25 18:27                 ` G.Wolfe Woodbury
2013-04-25 18:54                   ` Rich Freeman
2013-04-25 19:08                   ` Mike Frysinger
2013-04-24 18:46         ` Mike Frysinger
2013-04-24 22:18           ` Patrick McLean
2013-04-26 17:27         ` Chí-Thanh Christopher Nguyễn
2013-04-26 18:12           ` Robin H. Johnson
2013-04-26 18:14             ` Ian Stakenvicius
2013-04-26 18:53               ` William Hubbs
2013-04-25  3:13       ` Alec Warner
2013-04-25  3:32         ` William Hubbs
2013-04-24 19:00 ` Michał Górny
2013-04-24 19:17   ` William Hubbs
2013-04-25 19:09     ` vivo75
2013-04-25 23:07       ` Mike Frysinger
2013-04-26  8:44     ` Tobias Klausmann
2013-04-25 16:50 ` Vadim A. Misbakh-Soloviov
2013-04-25 16:58   ` Rich Freeman
2013-04-25 17:13     ` Carlos Silva
2013-04-25 17:17       ` Peter Stuge
2013-04-25 17:18         ` Carlos Silva
2013-04-25 17:23           ` Peter Stuge
2013-04-25 17:23       ` Tom Wijsman
2013-04-25 22:15       ` [gentoo-dev] " Duncan
2013-04-25 22:51         ` Carlos Silva
2013-04-25 23:12           ` Peter Stuge
2013-04-25 23:15           ` Ambroz Bizjak
2013-04-26  8:37           ` Duncan
2013-04-25 23:49 ` Robin H. Johnson [this message]
2013-04-26 10:13   ` [gentoo-dev] OldNet out of OpenRC: as the requester Alexander Berntsen
2013-04-26 14:14 ` [gentoo-dev] rfc: oldnet scripts splitting out from OpenRC Luca Barbato

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20130425234935.GO16232@orbis-terrarum.net \
    --to=robbat2@gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox