366 Commits

Author SHA1 Message Date
Thomas Vachuska
b74fef2841 Making stc-set-openjdk11 non-destructive.
Change-Id: Icee7d34d3e00989e00a5b68a9d82dff7da1f6d96
2018-12-17 09:09:18 -08:00
Thomas Vachuska
1e39bd2f44 Allowing cell-stc to inherit stcOpenJDK env. variable.
Change-Id: Iff82642eee04654487245926ba4f3329ed3498cb
2018-12-14 14:47:53 -08:00
Carmelo Cascone
15693a23e8 Alias to quickly start Mininet with BMv2 in cell network machines
Also do not generate bmv-thrift netcfg in bmv2.py

Change-Id: Iebb84ab1b6f007ad42366ec676cce6b08e5fc27c
2018-12-12 22:19:38 -08:00
Andrea Campanella
d8bc03d90f Updating search for last commitId
Change-Id: Ia6380b718827c340e976ea51e9d985a297a83622
2018-12-12 17:37:41 +00:00
Carmelo Cascone
b5324e7168 Improve fabric.p4 to reduce pipeline resources and refactor pipeconf impl
This patch affects both the P4 pipeline implementation and the
Java pipeconf.

P4 PIPELINE
- Less tables and smarter use of metadata to reduce inter-tables
dependencies and favor parallel execution of tables.
- Removed unused actions / renamed existing ones to make forwarding
behavior clearer (e.g. ingress_port_vlan table)
- Remove co-existence of simple and hansed table. Hashed should be the
default one, but implementations that do not support action profiles
might compile fabric.p4 to use the simple one.
- Use @name annotations for match fields to make control plane
independent of table implementation.
- Use @hidden to avoid showing actions and table on the p4info that
cannot be controlled at runtime.
- First attempt to support double VLAN cross-connect (xconnect table).
- New design has been tested with "fabric-refactoring" branch of
fabric-p4test:
github.com/opennetworkinglab/fabric-p4test/tree/fabric-refactoring

JAVA PIPECONF
This patch brings a major refactoring that reflects the experience
gathered in the past months of working on fabric.p4 and reasoning on its
pipeconf implementation. Indeed, the FlowObjective API is
under-specified and sometimes ambiguous which makes the process of
creating and maintaining a pipeliner implementation tedious. This
refactoring brings a simplified implementation by removing unused/
unnecessary functionalities and by recognizing commonality when possible
(e.g. by means of abstract and utility classes). It also makes design
patterns more explicit and consistent. Overall, the goal is to reduce
technical debt and to make it easier to support new features as we
evolve fabric.p4

Changes include:
- Changes in pipeliner/interpreter to reflect new pipeline design.
- By default translate objective treatment to PiAction. This favors
debuggability of flow rules in ONOS.
- Support new NextObjective’s NextTreatment class.
- Remove lots of unused/unnecessary code (e.g. async callback handling
for pending objective install status in pipeliner as current
implementation was always returning success)
- Gather commonality in abstract classes and simplify implementation
for objective translator (filtering, forwarding, next)
- New implementation of ForwardingFunctionTypes (FFT) that looks at
criterion instance values along with their types (to avoid relying on
case-specific if-else conditions to recognize variants of an FFT)
- Adaptive translation of NextObjective based on presence of simple or
hashed table.
- Support DENY FilteringObjective

Also:
- Fix onos-p4-gen-constants to avoid generating conflicting
PiMatchFieldId variable names.
- Install Graphviz tools in p4vm to generate p4c graphs
- Generate p4c graphs by default when compiling fabric.p4
- Use more compact Hex string when printing PI values

Change-Id: Ife79e44054dc5bc48833f95d0551a7370150eac5
2018-12-11 14:48:06 -08:00
Thomas Vachuska
c4d037797d Allow ONOS to be built against locally built ONOS YANG Tools.
Change-Id: If4373245be901cae0f620aadcbea557fea35c4e7
2018-11-26 21:05:49 +00:00
Thomas Vachuska
8e676d9dac Changing default cell borrow to provide a 5+3+1 cell.
Change-Id: Ic993aaf2312c2aa149fac1fdff556fd3044bb95a
2018-11-21 18:17:40 +00:00
Jonghwan Hyun
bfb3a21a51 Update install-p4-tools.sh to support Ubuntu 18.04
Change-Id: I11b79bb87090aff0fc0ebaf945500391e47412fb
2018-11-20 21:13:05 +00:00
Carmelo Cascone
65aa829cd1 Various improvements to P4 tutorial
- Added steps to exercise 2 to use wireshark to capture MyTunnel packets
- Various formatting fix/improvements
- Fixed markdown link to use relative paths
- Fixed bm-cli command not to use sudo (not needed)

Change-Id: I514da99a6cfadd048294c610ba201503c0339e89
(cherry picked from commit 19ea89f8540eef0e41fdf7b4fd9a2a1950f2ade9)
2018-11-09 18:52:40 +00:00
Brian O'Connor
25b239c1b3 Fixing whitespace in onos.py
Change-Id: Icce94c3a5ffffdf5fb3bd8f56bd56c1df456a319
2018-11-08 23:40:05 +00:00
Ray Milkey
123f0e08ad Merge branch 'master' into dev-karaf-4.2.1
Change-Id: If6c7d5f1dc6434ac8ea2fd9716b8ebeee38daa50
2018-11-08 14:18:52 -08:00
Bogdan
45932c7a9c bug 7773 fixed
Change-Id: Id16c36929c70ee3a5c42a8f9c490adafd4a40008
2018-11-08 18:07:00 +00:00
Ray Milkey
d7bc06d641 Merge branch 'master' into dev-karaf-4.2.1
Change-Id: I06c540c539d7d12eb0b563884992a600c930897d
2018-11-01 10:48:18 -07:00
Carmelo Cascone
a252df1d9a Updated Ubuntu 16 desktop vagrant box for tutorial P4 VM
Change-Id: I4c3028a715d2a91cceaad44685285148f47d556b
(cherry picked from commit 4b9974fabf5393d53b99b70f88b577e4f3076c5e)
2018-11-01 01:05:48 +00:00
Thomas Vachuska
4b09a6f579 Removing CELL_SLAVE_4 from the environment.
Change-Id: I994c627335c43644345a6c62ce4c9cfa526a804c
2018-10-29 10:34:20 -07:00
Ray Milkey
d542568b21 Merge branch 'master' into dev-karaf-4.2.1
Change-Id: Iec1b8947c898b0bf10db8caece0c3a064d1c63ae
2018-10-23 10:50:43 -07:00
Carmelo Cascone
03ae0acdd8 Bump version of P4Runtime to 1.0.0rc3 and P4 tools
Change-Id: I3082b4bd772d692830bd5af8e326a0fd5fb2f167
2018-10-18 22:30:46 +00:00
Ray Milkey
3f274d982b download karaf 4.2.1 from maven central
Change-Id: Icb7e0400ee5b34ed4be33afdda5074a6f6ec1f6d
2018-09-28 14:44:43 -07:00
Carmelo Cascone
fe59ba0a98 More concise test output when running tests
Print test errors to stdout, avoid scrolling due to passed tests results

Change-Id: I7ba4745e8de1ecbcb4f3cd3957623705a0fb69f8
2018-09-05 18:32:48 +00:00
Carmelo Cascone
76e6386d41 Bump version of BMv2 and disable nanomsg
To match what used in Stratum

Change-Id: Ic4b87bcad6c3da36030fa01ee4135f60c05fcd78
(cherry picked from commit 1a16f00d8ddfb47c6423e5bc70f5d362230debb7)
2018-09-05 05:17:19 +00:00
Carmelo Cascone
f6cb3e8fd9 Revert "Push driver with pipeconfId when available"
This reverts commit 4dd6cccad747066377830a4c50e7d5d14a41c613.

Change-Id: I4a8a01d332a40c80f5f4342c55ae6e03e64a1fa7
2018-08-24 00:00:41 +00:00
Charles Chan
232db0f5a3 Push driver with pipeconfId when available
Change-Id: I9dfebdd123c0efdf044bcc85177ef6b9658ee1af
(cherry picked from commit 4dd6cccad747066377830a4c50e7d5d14a41c613)
2018-08-23 23:22:00 +00:00
Carmelo Cascone
ea2c110e4e Updated tutorial p4vm scripts to build upon Ubuntu Desktop
And not Lubuntu which had u=issues with VirtualBox guest additions

Change-Id: I47218b78ea3d6ae2574fa55166cc48c1de3989e7
2018-08-23 00:21:41 +00:00
Ray Milkey
761e80a427 Remove pom files from ONOS
Change-Id: I53e2395466cba10222d638736635b11380421d98
2018-08-21 18:11:58 +00:00
Charles Chan
84431b9aae Add Trellis dependency into p4vm
Change-Id: Ieddb3ffa9da620ea78e4538aae02869804e2d0d1
2018-08-17 15:27:00 -07:00
Carmelo Cascone
3c8d3d04cb Forward JVM debug port in onos.py
Change-Id: I51cf0a7dab154060afe7d8f919189d10f979eacf
2018-08-17 17:26:55 +00:00
Ray Milkey
5063f5bd0b Add bazel rule to run buildifier; fix up formatting problems in bazel files
Change-Id: Ifa8ab12ed564fa2eaf5edd781281aa5cae52d17a
2018-08-16 21:12:34 +00:00
Carmelo Cascone
a1812adb19 ONOS-7770 Install Bazel in p4vm
Change-Id: I3e1540bd4d080655047e3fb6accac9bec21de484
2018-08-15 20:15:04 +00:00
Eric Tang
bec148539b [ONOS-7668] Fix ansible scripts for Vagrant tutorial VM.
Change-Id: I8e063a0ef00c57c092b81eca6ac551964eba6372
2018-08-14 18:18:05 +00:00
Eric Tang
49c291d122 Fix install Mininet and ONOS for ONOS-7638
Change-Id: Id250b6a8f6a7883d7332d2f7d8781cb8a7fa9c27
2018-08-14 18:17:54 +00:00
Thomas Vachuska
07a367b711 Enhancing cell-stc to utilize the local value of ONOS_APPS variable.
Change-Id: Ida396c96d2fc0359c60d7a3c187b087459949602
2018-08-14 00:13:57 +00:00
Thomas Vachuska
6c616d5a45 Fixing cell-build tool. Doh!
Change-Id: Id00507d727dbaaaae2d2f5a54fdfa672afa0aa72
2018-08-13 21:09:03 +00:00
Thomas Vachuska
88d396e55f Fixing javadoc build for Linux and enhancing cell-build with a no-build option.
Change-Id: Ia24ef1f0c04fe52e2506eb708c46cb5a77cf66d5
2018-08-08 22:49:46 +00:00
Thomas Vachuska
c661c20db0 Enhancing cell-build to provide option to use shared cache.
Change-Id: I8ddd43cfec6bd0c6ce9acbbaa18ab0bad53307f0
2018-08-08 21:44:06 +00:00
Ray Milkey
acfb410304 Allow bash_profile to run when unbound variable checking is enabled
Change-Id: I0086b4cc41c6206a47610b8c8e4062c30ac7dba3
2018-08-08 18:29:26 +00:00
Thomas Vachuska
74329389c8 Enhanced cell-build to work with other branches and to run unit tests remotely.
Change-Id: I6fe6406561c5968e102475efde3599c15d321656
2018-08-07 14:09:11 -07:00
Thomas Vachuska
bec79b9808 Starting to switch aliases and some convenience scripts from Buck to Bazel.
Change-Id: I2e0a0dac882af430b8628174f3f97a1777d3e643
2018-08-07 20:39:31 +00:00
Thomas Vachuska
bf6739d050 Fixing cell-build to apply patch only if necessary.
Change-Id: I08dcb74d2e421e4fe12c015b5afba1bf282896be
2018-08-07 08:00:59 +00:00
Thomas Vachuska
8141264e25 Adding tool to invoke STC remotely from a borrowed cell using artifacts built via cell-build.
Change-Id: I22ea955d9b9b6fc077c7e94b04c1a3762be40f65
2018-08-06 17:07:36 -07:00
Thomas Vachuska
19bd0c3745 Making fixes and improvements to the cell-build tool.
Change-Id: I1fc5b908f431c5f9f09aa7167fabb061024de28e
2018-08-06 15:13:12 -07:00
Thomas Vachuska
6be30687b0 Adding tool to execute a remote cell-based build via Bazel.
Change-Id: I69f94c3664d8ce75e3691a9e4d8d0a2271406a4c
2018-08-06 14:37:43 -07:00
Thomas Vachuska
21112ad3dc Adding tool to execute a remote cell-based build via Bazel.
Change-Id: Ibb4e0a8454760335d202f7692723d65e2cc16a94
2018-08-06 14:28:10 -07:00
Charles Chan
87dc82e42e Fix missing depencencies for fabric.p4 tutorial
Change-Id: Ie8758c1e8ceee78fcb41984b06b6e216c82177d8
2018-08-06 17:07:08 +00:00
Thomas Vachuska
fd8cb6847e Allowing simple cell definitions to work with new cell specs with separate Atomix and ONOS clusters.
Change-Id: Ib96090d0148f4ec3e37fa24061715815e249d988
2018-07-27 19:55:16 +00:00
Carmelo Cascone
95e5afdf38 Various improvements to p4vm scripts
- Allow running up to a given step of install-p4-tools.sh
(e.g. helpful to install only PI)
- Install fabric-p4test deps (ONOS-7656)
- Fix python protobuf libraries not installed

Change-Id: I443edb08f455703ae682e485a89d793a584c30ff
2018-07-21 14:14:16 +00:00
Carmelo Cascone
58136816ab ONOS-7739 Support for P4Runtime multicast programming
Design doc: https://docs.google.com/document/d/13rkQlwr49M-uxQQEuxCMP7BFEPY2gtQ850Hn3gUfesU/edit#heading=h.lzdayib259sq

Change-Id: Ief00bec89fe5a9784b0ee13fdaafa3ae58ab654f
2018-07-20 18:16:17 +00:00
Carmelo Cascone
f645e8406c Bump P4 tools to latest version
With support for P4Runtime multicast API

Change-Id: I6982c32187204b656a927d0f3d7f3a4b1b877e75
2018-07-16 20:31:32 +00:00
Carmelo Cascone
f742a1186f Fixed p4vm not building with debug flags disabled
Change-Id: I5089319b91c6b62166f4e506762f2552dd20744c
2018-07-11 11:28:57 +00:00
Thomas Vachuska
2582fc2a95 Adding support for enhanced cell spec, e.g. 5+3+1
Change-Id: I9d23eb766eb72e559366f974afc2ec0838f82270
2018-07-02 21:57:55 +00:00
Ray Milkey
c5e2f43a8a Upgrade ONOS to yang tools version 2.5
Change-Id: I2a8f9ca6637185522023123f8e0b68cbe750d3fd
2018-07-02 13:15:15 -07:00