-
Notifications
You must be signed in to change notification settings - Fork 1
/
plans.html
124 lines (122 loc) · 4.96 KB
/
plans.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="generator" content="AsciiDoc 8.6.9">
<title>What we plan to do</title>
<link rel="stylesheet" href="./asciidoc.css" type="text/css">
<script type="text/javascript" src="./asciidoc.js"></script>
<script type="text/javascript">
/*<![CDATA[*/
asciidoc.install();
/*]]>*/
</script>
</head>
<body class="article">
<div id="header">
<h1>What we plan to do</h1>
</div>
<div id="content">
<div class="sect1">
<h2 id="_improve_the_documentation">Improve the documentation</h2>
<div class="sectionbody">
<div class="paragraph"><p>NTP Classic’s documentation is an untidy, confusing heap of details
that is intimidating to novices and confusing even to experts. We
know how to do better at both
<a href="http://catb.org/gpsd/time-service-intro.html">Introductory</a> and
<a href="http://catb.org/gpsd/gpsd-time-service-howto.html">Intermediate</a>
levels and will apply that knowledge to NTPsec.</p></div>
</div>
</div>
<div class="sect1">
<h2 id="_create_a_real_end_to_end_test_suite">Create a real end-to-end test suite</h2>
<div class="sectionbody">
<div class="paragraph"><p>Our team has a concentration of expertise in software testing.
NTP Classic never had rigorous end-to-end tests that
could be run out of the box to verify the correctness of the code.
Putting such a suite fully in place is one of our early goals.</p></div>
</div>
</div>
<div class="sect1">
<h2 id="_hammer_the_bug_list_flat">Hammer the bug list flat</h2>
<div class="sectionbody">
<div class="paragraph"><p>The NTP Classic codebase had accumulated serious
vulnerabilities. We’ve worked overtime to identify and plug the
critical holes; more needs to be done on the lesser ones. Our goal is
to reach the exceptionally low defect-per-thousand-hour rates of GPSD
and RTEMS; we have the people and the skills to do it.</p></div>
</div>
</div>
<div class="sect1">
<h2 id="_throw_away_more_code">Throw away more code</h2>
<div class="sectionbody">
<div class="paragraph"><p>Antoine de Saint-Exupéry famously said "Perfection is achieved,
not when there is nothing more to add, but when there is nothing left
to take away." This is our project motto. The more code we can throw
away, the fewer potential vulnerabilities and complexity issues we
will have. There are many opportunities here; see our
<a href="removal-plan.html">removal plans</a>, and holler if we’re removing
something you need.</p></div>
</div>
</div>
<div class="sect1">
<h2 id="_broaden_community_participation">Broaden community participation</h2>
<div class="sectionbody">
<div class="paragraph"><p>The NTP Classic project slid into decline, developing serious
vulnerabilities it was unable to effectively address, because it made
choices that closed it off from the wider open-source community.
NTPSec was forked in large part to reverse those choices. We want
more community participation, more open-source code review, and we’ll
even welcome drive-by patches to address point problems.</p></div>
</div>
</div>
<div class="sect1">
<h2 id="_build_a_hardware_test_lab">Build a hardware test lab</h2>
<div class="sectionbody">
<div class="paragraph"><p>Precision clock sources are tricky things, and testing in a simulation
environment has limits. We aim to build a lab where we can
remote-control refclocks and a network of ntpd instances for
live testing. This will take money: see
<a href="getting-involved.html">Getting Involved</a> for how you can help.</p></div>
</div>
</div>
<div class="sect1">
<h2 id="_deep_refactoring">Deep refactoring</h2>
<div class="sectionbody">
<div class="paragraph"><p>The code can be further hardened by repartitioning it into smaller,
more loosely coupled pieces. A prime opportunity is by divorcing clock
management from the synchronization algorithms into a separate
refclockd.</p></div>
</div>
</div>
<div class="sect1">
<h2 id="_get_it_all_ipv6_ready">Get it all IPv6-ready</h2>
<div class="sectionbody">
<div class="paragraph"><p>Network Time Protocol is unhealthily entangled with IPv4. As address
exhaustion forces the world towards IPv6, this needs to be fixed.</p></div>
</div>
</div>
<div class="sect1">
<h2 id="_recruit_and_educate_a_new_generation">Recruit and educate a new generation</h2>
<div class="sectionbody">
<div class="paragraph"><p>NTP Classic came altogether too close to becoming a black hole of
unmaintainability because only one human being fully understood the
Byzantine clock-synchronization algorithms at its core. For
sustainability, that knowledge needs to become more widely spread.</p></div>
<div class="imageblock" style="text-align:center;">
<div class="content">
<img src="clocktower64.png" alt="clocktower64.png">
</div>
</div>
</div>
</div>
</div>
<div id="footnotes"><hr></div>
<div id="footer">
<div id="footer-text">
Last updated
2015-11-16 14:56:52 EST
</div>
</div>
</body>
</html>