Skip to content

Commit 5ba2184

Browse files
committed
whitespace, links, spelling fixes
1 parent 90e0386 commit 5ba2184

File tree

18 files changed

+338
-336
lines changed

18 files changed

+338
-336
lines changed

README.rst

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@ parties. Please reach out to
1515
If you make use of this work, the attribution should include the
1616
following information:
1717

18-
| *Title: Software-Defined Networks: A Systems Approach*
19-
| *Authors: Larry Peterson, Carmelo Cascone, Brian O'Connor, Thomas Vachuska, and Bruce Davie*
20-
| *Source:* https://github.com/SystemsApproach/SDN
18+
| *Title: Software-Defined Networks: A Systems Approach*
19+
| *Authors: Larry Peterson, Carmelo Cascone, Brian O'Connor, Thomas Vachuska, and Bruce Davie*
20+
| *Source:* https://github.com/SystemsApproach/SDN
2121
| *License:* \ `CC BY-NC-ND 4.0 <https://creativecommons.org/licenses/by-nc-nd/4.0>`__
2222
2323
Read the Book
@@ -28,18 +28,18 @@ This book is part of the `Systems Approach Series
2828
at `https://sdn.systemsapproach.org
2929
<https://sdn.systemsapproach.org>`__.
3030

31+
3132
To track progress and receive notices about new versions, you can follow
3233
the project on
33-
`Facebook <https://www.facebook.com/Computer-Networks-A-Systems-Approach-110933578952503/>`__
34-
and `Mastodon <https://discuss.systems/@SystemsAppr>`__. To read a running
35-
commentary on how the Internet is evolving, follow the `Systems Approach
36-
on Substack <https://systemsapproach.substack.com>`__.
34+
`Mastodon <https://discuss.systems/@SystemsAppr>`__. To read a running
35+
commentary on how the Internet is evolving, and for updates on our writing projects, you can sign up for the
36+
`Systems Approach newsletter <https://systemsapproach.org/newsletter/>`__.
3737

38-
Releases and Editions
38+
Releases and Editions
3939
---------------------
4040

4141
We continually release open source content in GitHub, with `print and
42-
ebook editions <https://www.systemsapproach.org/books.html>`__
42+
ebook editions <https://www.systemsapproach.org/books/>`__
4343
published from time-to-time. The latest print and ebook (2nd Printing)
4444
corresponds to the ``v2.0`` tag.
4545

access.rst

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ edge of the ISP’s network—the ISP-side of the last-mile that directly
4343
connects to customers. The PON and RAN-based access networks are
4444
anchored in these facilities.
4545

46-
9.1.1 Passive Optical Network
46+
9.1.1 Passive Optical Network
4747
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4848

4949
A PON is a tree-structured, fiber-based network, starting with a
@@ -64,13 +64,13 @@ to the Internet. The BNG is a piece of Telco equipment that, in
6464
addition to forwarding packets, also authenticates users,
6565
differentiates the level of service delivered to each customer, and
6666
meters traffic for the sake of billing.
67-
67+
6868
.. _fig-pon:
6969
.. figure:: figures/Slide54.png
7070
:width: 600px
7171
:align: center
7272

73-
An example PON that connects OLTs in the Central Office
73+
An example PON that connects OLTs in the Central Office
7474
to ONUs in homes and businesses.
7575

7676
Because the splitters are passive, PON implements a multi-access
@@ -116,7 +116,7 @@ across base stations, and so on).
116116
:width: 700px
117117
:align: center
118118

119-
A Radio Access Network (RAN) connecting a set of cellular devices
119+
A Radio Access Network (RAN) connecting a set of cellular devices
120120
(User Equipment—UEs) to a Mobile Core hosted in a Central Office.
121121

122122
The figure shows the Mobile Core and set of base stations
@@ -183,11 +183,11 @@ mobile networks so they can be implemented in software, we recommend
183183
the following companion book.
184184

185185
.. _reading_5g:
186-
.. admonition:: Further Reading
186+
.. admonition:: Further Reading
187187

188188
L. Peterson and O. Sunay.
189189
`5G Mobile Networks: A Systems Approach <https://5g.systemsapproach.org/>`__.
190-
June 2020.
190+
June 2020.
191191

192192

193193
9.2 SD-PON
@@ -226,10 +226,10 @@ described in Chapter 7. The following describes the high-points of
226226
the rest of SD-PON architecture.
227227

228228
.. _fig-sdpon:
229-
.. figure:: figures/Slide61.png
229+
.. figure:: figures/Slide61.png
230230
:width: 500px
231231
:align: center
232-
232+
233233
Software-Defined PON architecture.
234234

235235
First, a hardware abstraction layer, called *VOLTHA (Virtual OLT
@@ -296,12 +296,12 @@ velocity. Because of this, mobile network operators are working to
296296
make Software-Defined RAN (SD-RAN) happen.
297297

298298
.. _reading_sdran:
299-
.. admonition:: Further Reading
300-
301-
`SD-RAN Project
302-
<https://opennetworking.org/sd-ran/>`__.
303-
Open Networking Foundation. August 2020.
304-
299+
.. admonition:: Further Reading
300+
301+
`SD-RAN Project
302+
<https://opennetworking.org/open-ran/>`__.
303+
Open Networking Foundation. August 2020.
304+
305305
To understand the technical underpinnings of SD-RAN, it is important
306306
to recognize that the base stations that make up the RAN are, for all
307307
practical purposes, specialized packet switches. The set of base
@@ -339,10 +339,10 @@ the base station as a pipeline (running left-to-right for packets sent
339339
to the UE) but it is equally valid to view it as a protocol stack.
340340

341341
.. _fig-basestation:
342-
.. figure:: figures/Slide56.png
342+
.. figure:: figures/Slide56.png
343343
:width: 600px
344344
:align: center
345-
345+
346346
RAN processing pipeline, including both user and
347347
control plane components.
348348

@@ -387,7 +387,7 @@ multiple split-points, with the partition shown in :numref:`Figure %s
387387
this chapter.
388388

389389
.. _fig-split-ran:
390-
.. figure:: figures/Slide57.png
390+
.. figure:: figures/Slide57.png
391391
:width: 600px
392392
:align: center
393393

@@ -404,10 +404,10 @@ part of the MAC stage is responsible for all real-time scheduling
404404
decisions.
405405

406406
.. _fig-ran-hierarchy:
407-
.. figure:: figures/Slide58.png
407+
.. figure:: figures/Slide58.png
408408
:width: 350px
409409
:align: center
410-
410+
411411
Split-RAN hierarchy, with one CU serving multiple DUs,
412412
each of which serves multiple RUs.
413413

@@ -420,7 +420,7 @@ to a small cell, many of which might be spread across a modestly-sized
420420
geographic area (e.g., a mall, campus, or factory), then a single DU
421421
would likely service multiple RUs. The use of mmWave in 5G is likely
422422
to make this later configuration all the more common.
423-
423+
424424
9.3.2 RAN Intelligent Controller
425425
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
426426

@@ -581,7 +581,7 @@ implies the xApps must be aware of the available Service Models. This
581581
is problematic in that it implicitly couples applications with
582582
devices, but defining a device-agnostic version is still a
583583
work-in-progress.
584-
584+
585585
9.4 Role of SD-Fabric
586586
-----------------------------------
587587

@@ -635,7 +635,7 @@ speaking, AMF is responsible for mobility management, SMF is
635635
responsible for session management, and AUSF is responsible for
636636
authentication. All the other functional blocks correspond to
637637
low-level processes that AMF, SMF, and AUSF call to do their job, but
638-
for our purposes, you can think of the entire set as
638+
for our purposes, you can think of the entire set as
639639
microservices running on commodity servers. For more details about the
640640
Mobile Core control plane, as well as examples of specific
641641
implementation choices, we recommend the *Magma* and *SD-Core* open
@@ -647,7 +647,7 @@ source projects.
647647
`Magma Core Project <https://www.magmacore.org/>`__.
648648
Linux Foundation. 2021.
649649

650-
`SD-Core Project <https://opennetworking.org/sd-core/>`__.
650+
`SD-Core Project <https://opennetworking.org/sd-core/>`__.
651651
Open Networking Foundation. 2021.
652652

653653
What is important to our discussion is that while the UPF can also be
@@ -673,7 +673,7 @@ SmartNIC connected to those servers. MacDavid and colleagues describe
673673
the mechanism for doing this is more detail.
674674

675675
.. _reading_upf:
676-
.. admonition:: Further Reading
676+
.. admonition:: Further Reading
677677

678678
R. MacDavid, *et al.* `A P4-based 5G User Plane Function
679679
<https://www.cs.princeton.edu/~macdavid/media/up4-sosr21.pdf>`__.
@@ -694,7 +694,7 @@ package that can be deployed in enterprises and managed as a cloud
694694
service.
695695

696696
.. _reading_aether:
697-
.. admonition:: Further Reading
697+
.. admonition:: Further Reading
698698

699-
`Aether: 5G-Connected Edge <https://opennetworking.org/aether/>`__.
699+
`Aether: 5G-Connected Edge <https://opennetworking.org/aether/>`__.
700700
Open Networking Foundation. 2021.

arch.rst

Lines changed: 32 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,10 @@ components, correspond to a combination of *gNMI*, *gNOI* and
4444
and either *P4Runtime* or *OpenFlow* in the second case. gRPC, an
4545
open source remote procedure call framework, is
4646
shown as the transport protocol for these APIs—an implementation
47-
choice, but one that we will generally assume from here
47+
choice, but one that we will generally assume from here
4848
on. (Note that OpenFlow, unlike the other protocols, does not run over
4949
gRPC.) We discuss all of these acronyms and interfaces in further
50-
detail below.
50+
detail below.
5151

5252

5353
.. _fig-stack:
@@ -101,7 +101,7 @@ per-switch.
101101

102102
The second is that part of the SDN software stack runs on the end
103103
hosts. In particular, there is a *Virtual Switch (vSwitch)*—typically
104-
implemented in software as part of the hypervisor
104+
implemented in software as part of the hypervisor
105105
running on the server—that is responsible for forwarding packets to
106106
and from the VMs. (Of course, not every end-host runs VMs, but a
107107
similar architecture applies to containers hosts or bare-metal servers.)
@@ -112,27 +112,27 @@ connected to physical machines.
112112

113113
.. sidebar:: Host-Centric Perspective
114114

115-
*This book adopts a network-oriented perspective of SDN, one
116-
that treats the end-host (both the virtual switch running in
117-
the host OS and the NIC connecting the host to the network) as
118-
an extension of the network, running under the control of a
119-
Network OS. A more host-centric perspective is equally valid,
120-
and perhaps more importantly, comes with a robust ecosystem of
121-
open source software that runs as part of the host OS.*
122-
123-
*DPDK is one example, but another gaining traction is the
124-
combination of eBPF (extended Berkeley Packet Filter) and XDP
125-
(eXpress Data Path). When used together, they provide a way to
126-
program generalized Match-Action rules in the OS kernel, or
127-
potentially even on a SmartNIC. This is similar in spirit to
128-
OpenFlow and P4, except they allow for the Action part to be
129-
an arbitrary program. In contrast, OpenFlow defines a fixed
130-
set of Actions, and P4 is a restricted language for expressing
131-
Actions (e.g., it does not include loops). This is necessary
132-
when the Action must execute within a fixed cycle budget, as
133-
is the case for a switch-based forwarding pipeline. It also
134-
enables formal verification of the data plane, a promising
135-
opportunity discussed in Chapter 10.*
115+
*This book adopts a network-oriented perspective of SDN, one
116+
that treats the end-host (both the virtual switch running in
117+
the host OS and the NIC connecting the host to the network) as
118+
an extension of the network, running under the control of a
119+
Network OS. A more host-centric perspective is equally valid,
120+
and perhaps more importantly, comes with a robust ecosystem of
121+
open source software that runs as part of the host OS.*
122+
123+
*DPDK is one example, but another gaining traction is the
124+
combination of eBPF (extended Berkeley Packet Filter) and XDP
125+
(eXpress Data Path). When used together, they provide a way to
126+
program generalized Match-Action rules in the OS kernel, or
127+
potentially even on a SmartNIC. This is similar in spirit to
128+
OpenFlow and P4, except they allow for the Action part to be
129+
an arbitrary program. In contrast, OpenFlow defines a fixed
130+
set of Actions, and P4 is a restricted language for expressing
131+
Actions (e.g., it does not include loops). This is necessary
132+
when the Action must execute within a fixed cycle budget, as
133+
is the case for a switch-based forwarding pipeline. It also
134+
enables formal verification of the data plane, a promising
135+
opportunity discussed in Chapter 10.*
136136

137137
Fortunately, we can view a vSwitch as behaving just like a physical
138138
switch, including the APIs it supports. That a vSwitch is implemented
@@ -161,7 +161,7 @@ forwarding pipeline found on the network switches. Again, there are a
161161
range of possible implementation choices, including both FPGA and
162162
ASIC, as well as whether the NIC is fixed-function or programmable
163163
(using P4). For our purposes, we will treat such Smart NICs as yet
164-
another switching element along the end-to-end path.
164+
another switching element along the end-to-end path.
165165

166166
3.2 Bare-Metal Switch
167167
-------------------------
@@ -245,17 +245,17 @@ Stratum-managed API is defined as follows:
245245
forwarding model and how the control plane interacts with it.
246246
(For completeness, :numref:`Figure %s
247247
<fig-stack>` also lists OpenFlow as an alternative control interface.)
248-
248+
249249
* **gNMI (gRPC Network Management Interface):** Used to set and
250250
retrieve configuration state. gNMI is usually paired with OpenConfig
251251
YANG models that define the structure of the configuration and state
252252
tree.
253-
253+
254254
* **gNOI (gRPC Network Operations Interfaces):** Used to set and
255255
retrieve operational state, for example supporting certificates
256256
management, device testing, software upgrades, and networking
257257
troubleshooting.
258-
258+
259259
If you recall the distinction between Control and Configuration
260260
introduced in Chapter 1, then you will recognize P4Runtime as the
261261
Control API and the gNMI/gNOI combination as a modern version of a
@@ -289,18 +289,18 @@ things:
289289
* **Managing Topology:** Tracks inventory of network infrastructure
290290
devices and their interconnection to provide a shared view of the
291291
network environment for the rest of the platform and applications.
292-
292+
293293
* **Managing Configuration:** Facilitates issuing, tracking, rolling
294294
back, and validating atomic configuration operations on multiple
295295
network devices. This effectively mirrors the per-switch
296296
configuration and operation interfaces (also using gNMI and gNOI),
297297
but does so at the network level rather than the device level.
298-
298+
299299
* **Controlling Switches:** Controls the data plane packet
300300
processing pipelines of the network switches and provides subsequent control
301301
of flow rules, groups, meters and other building blocks within those
302302
pipelines.
303-
303+
304304
With respect to this last role, ONOS exports a northbound
305305
*FlowObjectives* abstraction, which generalizes Flow Rules in a
306306
pipeline-independent way.\ [#]_ This interface, which Chapter 6
@@ -366,7 +366,7 @@ supports several control plane features, including:
366366
* Dual-homing of servers and upstream routers
367367
* QinQ forwarding/termination
368368
* MPLS-based pseudowires.
369-
369+
370370
For each of these features, the corresponding Control App interacts
371371
with ONOS—by observing changes in the network topology and issuing
372372
Flow Objectives—rather than by using any of the standard protocol

code/onos2.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
onos> route-add <prefix> <nexthop>
2-
onos> route-add 1.1.0.0/18 10.0.1.20
2+
onos> route-add 1.1.0.0/18 10.0.1.20
33
onos> route-add 2020::101/120 2000::1

conf.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -103,9 +103,9 @@ def get_version():
103103
}
104104

105105
# Ignore link check for the following websites
106-
# linkcheck_ignore = [
107-
# 'https://SDN.systemspproach.org/',
108-
# ]
106+
linkcheck_ignore = [
107+
'https://amzn.to/', 'https://amazon.com'
108+
]
109109

110110
# -- Options for HTML output -------------------------------------------------
111111

dict.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ commoditized
112112
compositional
113113
config
114114
cyber
115+
cyberattacks
115116
datapath
116117
de
117118
di
@@ -180,7 +181,7 @@ subgraph
180181
subnet
181182
subnets
182183
syscall
183-
tized
184+
tized
184185
toolchain
185186
toolchains
186187
toolset

0 commit comments

Comments
 (0)