@@ -11,8 +11,9 @@ the app we have been developing in the previous exercise, but instead of using
11
11
IPv6-based routing or SRv6, Trellis uses MPLS labels to forward packets between
12
12
leaf switches and across the spines.
13
13
14
- Trellis apps are deployed in Tier-1 carrier networks, and for this reason deemed
15
- production-grade. They provide an extensive feature set such as:
14
+ Trellis apps are deployed in Tier-1 carrier networks, and for this reason they
15
+ are deemed production-grade. These apps provide an extensive feature set such
16
+ as:
16
17
17
18
* Carrier-oriented networking capabilities: from basic L2 and L3 forwarding, to
18
19
multicast, QinQ, pseudo-wires, integration with external control planes such
@@ -33,21 +34,21 @@ Trellis is made of several apps running on top of ONOS, the main one is
33
34
[ onos/apps/segmentrouting] (open on GitHub)
34
35
35
36
` segmentrouting ` abstracts the leaf and spine switches that make the fabric as
36
- "one big IP router", such that operators can program them using familiar APIs
37
- (as they would do with a traditional router). The app listens to
38
- operator-provided configuration, as well as topology events, to program the
39
- switches with the necessary forwarding rules. Because of this "one big IP
40
- router" abstraction, operators can independently scale the topology to add more
41
- capacity or ports by adding more leaves and spines.
37
+ "one big IP router", such that operators can program them using APIs similar to
38
+ that of a traditional router (e.g. to configure VLANs, subnets, routes, etc.)
39
+ The app listens to operator-provided configuration, as well as topology events,
40
+ to program the switches with the necessary forwarding rules. Because of this
41
+ "one big IP router" abstraction, operators can independently scale the topology
42
+ to add more capacity or ports by adding more leaves and spines.
42
43
43
44
` segmentrouting ` and other Trellis apps use the ONOS FlowObjective API, which
44
45
allow them to be pipeline-agnostic. As a matter of fact, Trellis was initially
45
46
designed to work with fixed-function switches exposing an OpenFlow agent (such
46
- as Broadcom Tomahawk, Trident2, and Qumran via the OF-DPA agent ). However, in
47
- recent years support for P4 programmable switches was enabled without changing
48
- the apps, but instead providing a special ONOS pipeconf that brings in a P4
49
- program complemented by a set of drivers that among other things are responsible
50
- for translating flow objectives to the P4 program-specific tables.
47
+ as Broadcom Tomahawk, Trident2, and Qumran via the OF-DPA pipeline ). However, in
48
+ recent years, support for P4 programmable switches was enabled without changing
49
+ the Trellis apps, but instead providing a special ONOS pipeconf that brings in a
50
+ P4 program complemented by a set of drivers that among other things are
51
+ responsible for translating flow objectives to the P4 program-specific tables.
51
52
52
53
This P4 program is named ` fabric.p4 ` . It's implementation along with the
53
54
corresponding pipeconf drivers can be found in the ONOS source tree:
@@ -57,13 +58,13 @@ This pipeconf currently works on the `stratum_bmv2` software switch as well as
57
58
on Intel Barefoot Tofino-based switches (the [ fabric-tofino] project provides
58
59
instructions and scripts to create a Tofino-enabled pipeconf).
59
60
60
- We will come back to the details of ` fabric.p4 ` in the next lab, for now let's
61
+ We will come back to the details of ` fabric.p4 ` in the next lab, for now, let's
61
62
keep in mind that instead of building our own custom pipeconf, we will use one
62
63
provided with ONOS.
63
64
64
65
The goal of the exercise is to learn the Trellis basics by writing a
65
- configuration in the form of a netcfg JSON file to set up basic bridging and
66
- routing of traffic between hosts.
66
+ configuration in the form of a netcfg JSON file to set up bridging and
67
+ IPv4 routing of traffic between hosts.
67
68
68
69
For a gentle overview of Trellis, please check the online book
69
70
"Software-Defined Networks: A Systems Approach":
0 commit comments