Skip to content

Commit

Permalink
changed Trellis to SD-Fabric
Browse files Browse the repository at this point in the history
  • Loading branch information
Larry Peterson committed Aug 9, 2021
1 parent a7588d2 commit 40ad503
Show file tree
Hide file tree
Showing 11 changed files with 108 additions and 105 deletions.
33 changes: 15 additions & 18 deletions access.rst
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
Chapter 9: Access Networks
===========================

We now turn our attention to the latest emerging use case: the Access
Network, which includes both Fiber-to-the-Home and the Mobile Cellular
Network. It is still early (production deployments are just now being
rolled out), but the opportunity is substantial. This chapter
describes two examples of how SDN is being applied to access
networks—*Passive Optical Networks (PON)* and *Radio Access Networks
(RAN)*—the technologies at the core of Fiber-to-the-Home and the
Mobile Cellular Network, respectively.
We now turn our attention to the latest emerging use case for SDN: the
Access Network. This includes both Fiber-to-the-Home and the Mobile
Cellular Network. It is still early (production deployments are just
now being rolled out), but the opportunity is substantial. This
chapter describes two examples—*Passive Optical Networks (PON)* and
*Radio Access Networks (RAN)*—the technologies at the core of
Fiber-to-the-Home and the Mobile Cellular Network, respectively.


9.1 Background
Expand All @@ -24,16 +23,14 @@ purpose-built devices that look quite unfamiliar to anyone that
understands how to build a network out of a collection of L2/L3
Ethernet switches.

But this makes the access network fertile ground for SDN, and the
introduction of disaggregation, commodity hardware, and cloud-based
software. To understand what this means, we need to start with a brief
overview of the legacy systems being replaced. We do this in the
context of the two specific access technologies mentioned in the
introduction: PON and RAN. Fortunately, from our 10,000-foot view,
their respective architectures are strikingly similar. Of course the
details differ significantly, but hiding (or even eliminating)
gratuitous detail is one of the main values that SDN brings to the
table.
But this makes the access network fertile ground for SDN. To
understand what this means, we need to start with a brief overview of
the legacy systems being replaced. We do this in the context of the
two specific access technologies mentioned in the introduction: PON
and RAN. Fortunately, from our 10,000-foot view, their respective
architectures are strikingly similar. Of course the details differ
significantly, but hiding (or even eliminating) gratuitous detail is
one of the main values that SDN brings to the table.

Before getting to the specifics, we need one more bit of context. ISPs
(e.g., Telco or Cable companies) that offer broadband service often
Expand Down
24 changes: 12 additions & 12 deletions arch.rst
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ An overview of the software stack is given in :numref:`Figure %s
<fig-stack>`, which includes a *Bare-Metal Switch* running a local
*Switch OS*, controlled by a global Network OS hosting a collection of
*Control Applications*. :numref:`Figure %s <fig-stack>` also calls out
a corresponding set of exemplar open source components (*Trellis*,
a corresponding set of exemplar open source components (*SD-Fabric*,
*ONOS*, and *Stratum*) on the right, as well as a related *P4
Toolchain* on the left. This chapter introduces these components, with
later chapters giving more detail.
Expand Down Expand Up @@ -332,28 +332,28 @@ in more detail.
---------------------------

Because we use ONOS as the Network OS, we are limited to ONOS-hosted
SDN Control Applications. For illustrative purposes, we use Trellis as
that Control App. Trellis implements a *leaf-spine* fabric on a
network of programmable switches. This means Trellis dictates a
SDN Control Applications. For illustrative purposes, we use SD-Fabric as
that Control App. SD-Fabric implements a *leaf-spine* fabric on a
network of programmable switches. This means SD-Fabric dictates a
particular network topology: a leaf-spine topology common to
datacenter clusters. As outlined in Section 2.3, this topology
includes a set of leaf switches, each of which serves as a Top-of-Rack
switch (i.e., it connects all the servers in a single rack), where the
leaf switches are, in turn, interconnected by a set of spine switches.

At a high level, Trellis plays three roles. First, it provides a
At a high level, SD-Fabric plays three roles. First, it provides a
switching fabric that interconnects servers—and the VMs running on
those servers—in a multi-rack cluster. Second, it connects the cluster
as a whole upstream to peer networks, including the Internet, using
BGP (i.e., it behaves much like a router). Third, it connects the
cluster as a whole to downstream access networks (i.e., it terminates
access network technologies like PON and LTE/5G). In other words,
instead of thinking about Trellis as a conventional leaf-spine fabric
that’s locked away in some datacenter, Trellis is best viewed an
instead of thinking about SD-Fabric as a conventional leaf-spine fabric
that’s locked away in some datacenter, SD-Fabric is best viewed an
interconnect running at the network edge, helping to bridge
access-specific edge clouds to IP-based datacenter clouds.

In terms of implementation, Trellis actually corresponds to a suite of
In terms of implementation, SD-Fabric actually corresponds to a suite of
Control Apps running on ONOS, as opposed to a single app. This suite
supports several control plane features, including:

Expand All @@ -368,7 +368,7 @@ For each of these features, the corresponding Control App interacts
with ONOS—by observing changes in the network topology and issuing
Flow Objectives—rather than by using any of the standard protocol
implementations found in legacy routers and switches. The only time a
legacy protocol is involved is when Trellis needs to communicate with
legacy protocol is involved is when SD-Fabric needs to communicate with
the outside world (e.g., upstream metro/core routers), in which case
it uses standard BGP (as implemented by the open source Quagga
server). This is actually a common feature of SDN environments: they
Expand All @@ -380,11 +380,11 @@ but interaction with the outside world still requires them.
:width: 600px
:align: center

Trellis suite of control apps managing a (potentially distributed)
SD-Fabric suite of control apps managing a (potentially distributed)
leaf-spine fabric.

Finally, Trellis is sometimes deployed at a single site with multiple
mobile base stations connected via Trellis leaf-switches. But Trellis
Finally, SD-Fabric is sometimes deployed at a single site with multiple
mobile base stations connected via SD-Fabric leaf-switches. But SD-Fabric
can also be extended to multiple sites deeper into the network using
multiple stages of spines, as shown in :numref:`Figure %s
<fig-trellis>`. Chapter 7 describes all of this in more detail.
12 changes: 6 additions & 6 deletions code/fabric.p4
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
apply {
#ifdef SPGW
spgw_normalizer.apply(hdr.gtpu.isValid(), hdr.gtpu_ipv4,
#ifdef UPF
upf_normalizer.apply(hdr.gtpu.isValid(), hdr.gtpu_ipv4,
hdr.gtpu_udp, hdr.ipv4, hdr.udp, hdr.inner_ipv4,
hdr.inner_udp);
#endif // SPGW
#endif // UPF

// Filtering Objective
pkt_io_ingress.apply(hdr, fabric_metadata, standard_metadata);
filtering.apply(hdr, fabric_metadata, standard_metadata);
#ifdef SPGW
spgw_ingress.apply(hdr.gtpu_ipv4, hdr.gtpu_udp, hdr.gtpu,
#ifdef UPF
upf_ingress.apply(hdr.gtpu_ipv4, hdr.gtpu_udp, hdr.gtpu,
hdr.ipv4, hdr.udp, fabric_metadata, standard_metadata);
#endif // SPGW
#endif // UPF

// Forwarding Objective
if (fabric_metadata.skip_forwarding == _FALSE) {
Expand Down
12 changes: 9 additions & 3 deletions exercises.rst
Original file line number Diff line number Diff line change
Expand Up @@ -169,18 +169,24 @@ The following lists (and links) the individual exercises. That there
are 8 exercises and 8 chapters is a coincidence. Exercises 1 and 2
focus on Stratum, and are best attempted after reading through Chapter
5. Exercises 3 through 6 focus on ONOS and are best attempted after
reading through Chapter 6. Exercises 7 and 8 focus on Trellis and are
best attempted after reading through Chapter 7. Note that the
reading through Chapter 6. Exercises 7 and 8 focus on SD-Fabric and
are best attempted after reading through Chapter 7.\ [#]_ Note that the
exercises build on each other, so it is best to work through them in
order.

.. [#] SD-Fabric was previously known as Trellis, and still is in the
code. UPF was previously known as SPGW, and still is in the
code.
1. `P4Runtime Basics <https://github.com/opennetworkinglab/ngsdn-tutorial/blob/advanced/EXERCISE-1.md>`__
2. `YANG, OpenConfig, gNMI Basics <https://github.com/opennetworkinglab/ngsdn-tutorial/blob/advanced/EXERCISE-2.md>`__
3. `Using ONOS as the Control Plane <https://github.com/opennetworkinglab/ngsdn-tutorial/blob/advanced/EXERCISE-3.md>`__
4. `Enabling ONOS Built-in Services <https://github.com/opennetworkinglab/ngsdn-tutorial/blob/advanced/EXERCISE-4.md>`__
5. `Implementing IPv6 Routing with ECMP <https://github.com/opennetworkinglab/ngsdn-tutorial/blob/advanced/EXERCISE-5.md>`__
6. `Implementing SRv6 <https://github.com/opennetworkinglab/ngsdn-tutorial/blob/advanced/EXERCISE-6.md>`__
7. `Trellis Basics <https://github.com/opennetworkinglab/ngsdn-tutorial/blob/advanced/EXERCISE-7.md>`__
7. `SD-Fabric (Trellis) Basics
<https://github.com/opennetworkinglab/ngsdn-tutorial/blob/advanced/EXERCISE-7.md>`__
8. `GTP Termination with fabric.p4 <https://github.com/opennetworkinglab/ngsdn-tutorial/blob/advanced/EXERCISE-8.md>`__

You can find solutions for each exercise in the ``solution``
Expand Down
Binary file modified figures.pptx
Binary file not shown.
Binary file modified figures/Slide08.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified figures/Slide09.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion onos.rst
Original file line number Diff line number Diff line change
Expand Up @@ -437,7 +437,7 @@ this set with their own services and to back their implementations
with their own distributed stores. This is why ONOS provides
applications with direct access to Atomix primitives, such as
``AtomicMaps`` and ``DistributedMaps``. We will see examples of such
extensions in the next Chapter when we take a closer look at Trellis.
extensions in the next Chapter when we take a closer look at SD-Fabric.

6.3 Northbound Interface
------------------------
Expand Down
2 changes: 1 addition & 1 deletion switch.rst
Original file line number Diff line number Diff line change
Expand Up @@ -417,7 +417,7 @@ discover we need a new feature.
chipset and uses ``tna.p4`` as its architecture model), but it
is not open source. A roughly equivalent open source variant,
called ``fabric.p4``, uses ``v1model.p4``, but it is more
narrowly written to support Trellis (see Chapter 7) than
narrowly written to support SD-Fabric (see Chapter 7) than
serving as a general-purpose L2/L3 data plane.
.. sidebar:: Is the Complexity Worth It?
Expand Down
Loading

0 comments on commit 40ad503

Please sign in to comment.