Gentoo Archives: gentoo-dev

From: "Robin H. Johnson" <robbat2@g.o>
To: gentoo-dev@l.g.o
Subject: [gentoo-dev] OldNet out of OpenRC: as the requester
Date: Thu, 25 Apr 2013 23:49:54
Message-Id: 20130425234935.GO16232@orbis-terrarum.net
In Reply to: [gentoo-dev] rfc: oldnet scripts splitting out from OpenRC by William Hubbs
1 Hi all,
2
3 I'm the one that had asked WilliamH about splitting out OldNet from
4 OpenRC, so I figured rather than respond to every single part of this
5 thread, I wanted to give a general response.
6
7 Misc preamble:
8 --------------
9 If you're a student considering GSoC, reading this email, and this
10 interests you, please submit a proposal for the future portions!
11
12 Introduction:
13 -------------
14 This is NOT intended to take oldnet away from OpenRC systems at all, but
15 rather to encourage growth of both parts independently.
16
17 Historically, baselayout-1 had a very tight integration between oldnet and the
18 rc handling, because net* was a special case for dependency handling.
19
20 However, since baselayout-2, this was no longer the case. OpenRC doesn't
21 actually depend on oldnet in any way. Oldnet however does depend on the rc
22 script handling of OpenRC.
23
24 Naming & options:
25 -----------------
26 I'm not entirely set on the oldnet name, but nothing that WilliamH and I
27 could come up seemed entirely right. Oldnet is certainly NOT the only
28 option for networking in Gentoo. You've also got newnet, netctl,
29 network-manager, wicd, and more that I'm probably forgetting.
30
31 Complexity:
32 -----------
33 As a part of OpenRC, oldnet is roughly ~6200 lines of code, and ~1700
34 lines of documentation. OpenRC as whole has ~28000 lines of code.
35 So about 20-25% of the codebase, and most of the documentation ;-).
36
37 Of presently open OpenRC bugs, >30% are presently oldnet.
38
39 Oldnet supports both really easy simple configurations, as well as many
40 very complicated setups.
41
42 I have some examples in my homedir:
43 http://dev.gentoo.org/~robbat2/conf.d-net/
44 - Multi-homing, dual Internet connection, home setup
45 - Multi-homing, enterprise setup
46 - Snippet: HE.net (Hurriance Electric) IPv6 tunnel
47 (this gives you drop-in TunnelBroker connectivity)
48
49 Other than the above, how much of the OpenRC codebase uses or even
50 references oldnet?
51
52 Here's a near complete list:
53 init.d/devd.in: before net.lo0
54 init.d/hostid.in: before devd net
55 init.d/ipfw.in: before net
56 init.d/nscd.in: use net dns ldap ypbind
57 init.d/rarpd.in: need net
58 init.d/rc-enabled.in: need localmount net
59 init.d/rpcbind.in: use net logger dns
60 init.d/staticroute.in: provide net
61 init.d/syslogd.in: use net newsyslog
62 conf.d/netmount:# example, do not set rc_need to something like "net.eth0 dhcpcd".
63 conf.d/netmount:# If you are using oldnet, you must list the specific net.* services you
64 conf.d/netmount:#rc_need="net.eth0"
65 conf.d/netmount:#rc_need="net.eth1 net.eth2"
66 conf.d/netmount:rc_need="net"
67 (plus other examples).
68
69 And all of these simply deal with the 'net' virtual service, lots of them are
70 *BSD only too.
71
72 So what of this complexity? We've already had two occurrences where there was a
73 bug in oldnet, but we couldn't release a new stable OpenRC version easily,
74 because we'd started the tree on an update for other major changes in OpenRC.
75 It would have been extremely useful to release a stable oldnet minor version
76 bump with the fix, but it wasn't possible.
77
78 Testing
79 -------
80 Testing oldnet extensively is very challenging due to the complexity.
81
82 It's impossible for a single person to have a test environment for ALL
83 of the variants of networking - some of the modules also have a number
84 of variations in usage. So what I'd like to do, is establish that ALL of
85 the modules still work completely, and who to contact for testing of
86 each portion, AND/OR a known test configuration.
87
88 On a regular basis, I dogfood:
89 - bonding (ifenslave/sysfs)
90 - bridging (brctl)
91 - vlan
92 - PPPoE
93 - IPv6
94 - APIPA
95 - dhcpcd
96 - ethtool
97 - ifconfig
98 - iproute2 (esp RPDB)
99 - macchanger
100
101 Other parts I can't/don't test:
102 - adsl
103 - autoipd
104 - br2684
105 - ccwgroup
106 - clip
107 - dhclient
108 - ifplugd
109 - netplugd
110 - ip6rd
111 - ip6to4
112 - ipppd
113 - iwconfig
114 - macnet
115 - macvlan
116 - pump
117 - ssidnet
118 - tuntap
119 - udhcpc
120 - wpa_supplicant
121 (i probably forgot some)
122
123 More stuff pending to be added:
124 (most of which have bugs, some of them I just have direct email
125 submissions)
126 - plip
127 - l2tp
128 - iw
129 - xfsm/ipsec
130 - iproute2-bridge
131 - teaming
132 - vlan gvrp/mvrp
133 - vrrp, bgpd, ospf (run screaming for the hills)
134
135 systemd & the future:
136 ---------------------
137 <warn>
138 Before you read this section, I suggest you don a flameproof suit,
139 extinguish all potential sources of ignition, and don't take it too
140 hard.
141 </warn>
142
143 I'm not sure about the future of the core of OpenRC:
144 Upstart & systemd have some clear architectural benefits, despite their
145 implementation shortcomings (either upstream or per-distro).
146 The /usr merge is inevitable, as is the integration of other components
147 into the init system (udev, dbus, ...). What has become dis-integrated instead
148 is the configuration: lots of hardware ships specific udev rules with few
149 problems.
150
151 netctl showed that systemd control of single interfaces AND/OR default
152 single-interfaces is feasible. However the netctl development has never
153 had the flexibility of oldnet.
154
155 I would like the flexibility of oldnet to continue to exist, regardless
156 of whichever init system we end up on. I think the best future for that
157 is making oldnet independent of openrc.
158
159 I look forward to a future where I can fire up my laptop, using systemd, having
160 network-manager on wifi, and connect my ethernet jack into a vlan-tagged port,
161 and connect to a little Gentoo virtual machine in the cloud that booted up with
162 OpenRC and a tiny udhcpc configuration.
163
164 Thank you for your time.
165
166 --
167 Robin Hugh Johnson
168 Gentoo Linux: Developer, Trustee & Infrastructure Lead
169 E-Mail : robbat2@g.o
170 GnuPG FP : 11ACBA4F 4778E3F6 E4EDF38E B27B944E 34884E85

Attachments

File name MIME type
signature.asc application/pgp-signature

Replies

Subject Author
Re: [gentoo-dev] OldNet out of OpenRC: as the requester Alexander Berntsen <alexander@××××××.net>