Releases: stratum/stratum
2022-06-30
We are pleased to announce Stratum 2022-06-30 (or 22.06 for short).
For this Stratum release, the following hardware targets have been certified by ONF's Continuous Certification Program:
- APS Networks BF2556X-1T
- APS Networks BF6064X-T
- Edgecore AS7712-32X
- Edgecore Wedge100BF-32X
Breaking Changes
stratum_bf
which was based on PI node has been removed. It is replaced by stratum_bfrt
with a larger feature set.
Support for Intel P4Studio ("SDE") versions prior to 9.7.0 has been removed. Please upgrade to the latest LTS release.
Docker images
Broadcom
OpenNSA: docker pull stratumproject/stratum-bcm:22.06-opennsa
SDKLT: docker pull stratumproject/stratum-bcm:22.06-sdklt
We recommend the OpenNSA-based image.
Barefoot
BfRt on SDE 9.7.0: docker pull stratumproject/stratum-bfrt:22.06-9.7.0
BfRt on SDE 9.7.1: docker pull stratumproject/stratum-bfrt:22.06-9.7.1
BfRt on SDE 9.7.2: docker pull stratumproject/stratum-bfrt:22.06-9.7.2
BfRt on SDE 9.8.0: docker pull stratumproject/stratum-bfrt:22.06-9.8.0
BfRt on SDE 9.9.0: docker pull stratumproject/stratum-bfrt:22.06-9.9.0
BMv2 in Mininet
docker pull opennetworking/mn-stratum:22.06
Build Image
If you would like to build this release, you can use the following base build container:
docker pull stratumproject/build:22.06
Source Code and Pre-Built Packages
You can download pre-built Debian packages (or a zip/tarball of the sources) in the "Assets" section below.
The Broadcom Debian packages include kernel modules built for Linux 4.14.49-OpenNetworkLinux.
The Barefoot Debian packages include kernel modules built for the following Linux kernels:
- 3.16.56-OpenNetworkLinux
- 4.9.75-OpenNetworkLinux
- 4.14.49-OpenNetworkLinux
- 4.15.0-106-generic
You can also access the source code by cloning this repo and checking out the 2022-06-30
tag.
Open Network Linux
The Docker images for Broadcom and Barefoot as well as the pre-built packages are tested against ONF's build of OpenNetworkLinux.
You probably want to install the ONL-onf-ONLPv2_ONL-OS_2021-10-27.1946-5fddf0a_AMD64_INSTALLED_INSTALLER
image
What's Changed
- Update Bazel to 4.2.2 by @pudelkoM in #935
- Do not expect or emit padded byte strings in BFRT P4Runtime translator by @Yi-Tseng in #938
- Add instructions on how to push a pipeline to Stratum-bfrt by @pudelkoM in #940
- Update P4Runtime dependency to
v1.4.0-rc.1
by @pudelkoM in #941 - Accept action IDs on
DirectCounterEntry
in Stratum-bfrt by @pudelkoM in #942 - Replace STL map and set with Abseil alternatives in Bfrt code by @pudelkoM in #943
- Replace raw text proto string terminal
PROTO
withpb
by @pudelkoM in #944 - In
BfrtP4RuntimeTranslator
usecontains
for map presence checks by @pudelkoM in #945 - Replace P4Runtime controller management with PINS' code by @pudelkoM in #781
- Add troubleshooting section about BF BSP config mismatch by @pudelkoM in #947
- Do not provide
nullptr
ostream overload on MacOS anymore by @pudelkoM in #948 - Add missing
WORKSPACE
files to Docker build image for Bazel version detection by @pudelkoM in #954 - Add step to remove corrupted Bazel installation from CI cache by @pudelkoM in #952
- Fix workspace status script for out-of-git builds by @pudelkoM in #950
- Use
small
resource class on CircleCI for lint jobs by @pudelkoM in #956 - Use
large
resource class for CircleCI unit test and coverage jobs by @pudelkoM in #957 - Increase
medium
CI config concurrency to 2 by @pudelkoM in #958 - Replace old ONOS+Stratum+Tofino guide with SD-Fabric document by @Yi-Tseng in #937
- Add missing absl hashset dep to
dummy_cli
andControllerManager
by @pudelkoM in #962 - Update gRPC to
1.40.0
by @pudelkoM in #960 - Disable ONLP plugin by default by @pudelkoM in #951
- Simplify locking in
BfrtPacketioManager::PushForwardingPipelineConfig
by @pudelkoM in #969 - Continue processing future
PacketIn
s on errors in Stratum-bfrt by @pudelkoM in #970 - Update doc title of
README.pipeline.md
by @pudelkoM in #971 - Add table entry test in bfrt_table_manager_test by @Dscano in #968
- Format
ParserDecoder
files by @pudelkoM in #975 - Update p4c dependency to most recent compatible version by @pudelkoM in #973
- Format
HitAssignMapper
code by @pudelkoM in #976 - Format
MeterColorMapperTest
,PipelinePassesTest
andPipelineIntraBlockPassesTest
by @pudelkoM in #979 - Update p4c beyond incompatible optimization changes by @pudelkoM in #977
- Add
BfrtTableManager
delete and modify entry test by @Dscano in #978 - Add support for SDE 9.7.2 by @pudelkoM in #985
- Add
GetTableId
toBfSdeInterface::TableKeyInterface
by @pudelkoM in #986 - Remove support for Intel SDE 9.5.x by @pudelkoM in #988
- Add support for Intel SDE 9.9.0 by @yi-tseng-intel in #980
- Add
libexpat
dependency to Stratum-bfrt Debian package by @pudelkoM in #990 - Remove instructions to unpack BSP tar by @pudelkoM in #991
- Remove Stratum-bf by @yi-tseng-intel in #989
- Extend error messages in
BfrtP4RuntimeTranslator
by @pudelkoM in #994 - Fix P4C/boost build with GCC before 7 by @pudelkoM in #997
New Contributors
- @Dscano made their first contribution in #968
- @yi-tseng-intel made their first contribution in #980
Full Changelog: 2022-03-18...2022-06-30
2022-03-18
We are pleased to announce Stratum 2022-03-18 (or 22.03 for short).
For this Stratum release, the following hardware targets have been certified by ONF's Continuous Certification Program:
- APS Networks BF2556X-1T
- APS Networks BF6064X-T
- Edgecore AS7712-32X
- Edgecore Wedge100BF-32X
Known Issues and limitations
With Barefoot SDE 9.7.0 and above, only stratum_bfrt
is supported in this release. stratum_bf
will be removed in the next release.
With Barefoot SDE 9.5.0 stratum_bf
& stratum_bfrt
may crashed unexpectedly when writing new P4 entries. We highly recommend using Stratum with SDE version 9.5.2 or above.
Docker images
Broadcom
OpenNSA: docker pull stratumproject/stratum-bcm:22.03-opennsa
SDKLT: docker pull stratumproject/stratum-bcm:22.03-sdklt
We recommend the OpenNSA-based image.
Barefoot
PI on SDE 9.5.0: docker pull stratumproject/stratum-bf:22.03-9.5.0
BfRt on SDE 9.7.1: docker pull stratumproject/stratum-bfrt:22.03-9.7.1
We recommend the BfRt-based image for most users.
BMv2 in Mininet
docker pull opennetworking/mn-stratum:22.03
Build Image
If you would like to build this release, you can use the following base build container:
docker pull stratumproject/build:22.03
Source Code and Pre-Built Packages
You can download pre-built Debian packages (or a zip/tarball of the sources) in the "Assets" section below.
The Broadcom Debian packages include kernel modules built for Linux 4.14.49-OpenNetworkLinux.
The Barefoot Debian packages include kernel modules built for the following Linux kernels:
- 3.16.56-OpenNetworkLinux
- 4.9.75-OpenNetworkLinux
- 4.14.49-OpenNetworkLinux
- 4.15.0-106-generic
You can also access the source code by cloning this repo and checking out the 2022-03-18
tag.
Open Network Linux
The Docker images for Broadcom and Barefoot as well as the pre-built packages are tested against ONF's build of OpenNetworkLinux.
You probably want to install the ONL-onf-ONLPv2_ONL-OS_2021-10-27.1946-5fddf0a_AMD64_INSTALLED_INSTALLER
image
What's Changed
- Update nlohmann json dependency to
3.10.4
by @pudelkoM in #870 - Update Abseil to
20211102.0
by @pudelkoM in #871 - Use
kLocalStratumUrl
as default gRPC address in CLIs by @pudelkoM in #874 - Format and check all proto files by @pudelkoM in #879
- Move
cpplint
check to script by @pudelkoM in #880 - Format and check all Bazel
BUILD
files by @pudelkoM in #881 - Format and check all C++
.h
header files by @pudelkoM in #882 - Replace stratum-dummy control cli with C++ implementation by @pudelkoM in #875
- Canonicalize
cert_utils
code by @pudelkoM in #876 - Create
pipeline_pusher
tool to replaceupdate_config.py
by @pudelkoM in #877 - Move platform-specific code to
glue/platform.h
by @pudelkoM in #849 - Delete
loopback
P4 pipeline and Python rules by @pudelkoM in #872 - Remove
rules_python
andcython
deps by @pudelkoM in #886 - Add
bazel query //...
to CI by @pudelkoM in #887 - Re-add
build_stack_rules_proto
dep by @Yi-Tseng in #888 - Add
-O2
copt torelease
config by @pudelkoM in #893 - Make file CLI flags and usage messages uniform by @pudelkoM in #894
- Touch up
CredentialsManager
by @pudelkoM in #895 - Enable
-Werror=overloaded-virtual
compiler flag by @pudelkoM in #896 - Remove
RETURN_OK
macro by @pudelkoM in #900 - Remove
RETURN_ERROR
macro by @pudelkoM in #901 - Improve coverage job by @Yi-Tseng in #898
- Make Bf Pipeline Readme clearer on which pipeline formats are supported by @pudelkoM in #906
- Update
CONTRIBUTING.md
with Abseil TotW by @pudelkoM in #910 - Rename markdown check script by @pudelkoM in #911
- Clean up version log message for unstamped builds by @bocon13 in #787
- Add
CredentialsManager
function to create secure gRPC clientChannelCredentials
by @pudelkoM in #885 - Apply all trivial format changes to BCM code by @pudelkoM in #913
- Apply formatting to non
p4c_backend
code by @pudelkoM in #914 - [SDFAB-901] Support P4Runtime translation in Stratum-bfrt by @Yi-Tseng in #899
- Add section on core contributors by @bocon13 in #909
- Support P4Studio 9.5.2 by @Yi-Tseng in #915
- Remove support for Bfrt register reset annotations by @pudelkoM in #917
- Fix README.run.md by @Yi-Tseng in #920
- Make
BfrtP4RuntimeTranslator
canonical bytestring aware by @pudelkoM in #919 - Default Bfrt legacy bytestring response flag to false by @pudelkoM in #918
- Replace
CHECK_RETURN_IF_FALSE
withRET_CHECK
by @pudelkoM in #902 - Remove
<thread>
include fromChannelTest
by @pudelkoM in #921 - Use
RE2
for yang mac-address parsing by @pudelkoM in #593 - Enable
AuthPolicyCheckerTest
by @pudelkoM in #922 - Drop SDE 9.3.1 support by @Yi-Tseng in #925
- Cleanup PI dependency for Intel/Barefoot targets by @Yi-Tseng in #924
- Use
latest-<SDK version>
Docker tag consistently by @pudelkoM in #923 - Update CONTRIBUTING.md by @bocon13 in #926
- Support P4 Studio 9.7.1 & 9.8.0 by @Yi-Tseng in #912
- Use "public view" DockerHub URLs in docs by @pudelkoM in #927
- Allow zero burst sizes in P4
MeterConfig
by @pudelkoM in #930 - Handle errors without details from switch interface on P4 writes and reads by @pudelkoM in #929
- Pull SDE tars from S3 for automated post-merge Docker builds by CI by @pudelkoM in #890
- Fix python3 syntax by @aweimeow in #1
- Fix missing Stratum-bf Docker tag in release script by @bocon13 in #934
New Contributors
Full Changelog: 2021-12-13...2022-03-18
2021-12-13
We are pleased to announce Stratum 2021-12-13 (or 21.12 for short).
For this Stratum release, the following hardware targets have been certified by ONF's Continuous Certification Program:
- APS Networks BF2556X-1T
- APS Networks BF6064X-T
- Edgecore AS7712-32X
- Edgecore Wedge100BF-32X
Known Issues
There is a known issue with BF SDE versions 9.3.2 and above on pre-production Edgecore Wedge100BF devices, where the CPU port will not come up. Please use SDE version 9.3.1 or newer devices.
With Barefoot SDE 9.7.0, only stratum_bfrt
is supported in this release.
Docker images
Broadcom
OpenNSA: docker pull stratumproject/stratum-bcm:21.12-opennsa
SDKLT: docker pull stratumproject/stratum-bcm:21.12-sdklt
We recommend the OpenNSA-based image.
Barefoot
PI on SDE 9.5.0: docker pull stratumproject/stratum-bf:21.12-9.5.0
BfRt on SDE 9.5.0: docker pull stratumproject/stratum-bfrt:21.12-9.5.0
We recommend the BfRt-based image for most users.
BMv2 in Mininet
docker pull opennetworking/mn-stratum:21.12
Build Image
If you would like to build this release, you can use the following base build container:
docker pull stratumproject/build:21.12
Source Code and Pre-Built Packages
You can download pre-built Debian packages (or a zip/tarball of the sources) in the "Assets" section below.
The Broadcom Debian packages include kernel modules built for Linux 4.14.49-OpenNetworkLinux.
The Barefoot Debian packages include kernel modules built for the following Linux kernels:
- 3.16.56-OpenNetworkLinux
- 4.9.75-OpenNetworkLinux
- 4.14.49-OpenNetworkLinux
- 4.15.0-106-generic
You can also access the source code by cloning this repo and checking out the 2021-12-13
tag.
Open Network Linux
The Docker images for Broadcom and Barefoot as well as the pre-built packages are tested against ONF's build of OpenNetworkLinux.
You probably want to install the ONL-onf-ONLPv2_ONL-OS_2021-10-27.1946-5fddf0a_AMD64_INSTALLED_INSTALLER
image
What's Changed
- Update release-stratum.sh for 21.10 release by @bocon13 in #839
- Remove procmon checkin from
Hal
by @pudelkoM in #841 - Add SHA hash for all Bazel http_archive deps by @cholve in #848
- Add missing signal.h includes by @bocon13 in #851
- Reduce logging frequency of non-master stream message errors by @pudelkoM in #853
- Add support for OpenConfig
/interfaces/interface[name=*]/state/id
path by @pudelkoM in #854 - Update Debian base image to newer build by @pudelkoM in #856
- Add support for SDE 9.7.0 by @Yi-Tseng in #852
- Reject duplicate P4Runtime election IDs from multiple controllers by @pudelkoM in #857
- Only link against
bfshell_plugin.so
and enablepi
for SDE 9.7.0 build by @Yi-Tseng in #859 - Reject invalid
MeterConfig
s in Stratum-bfrt by @pudelkoM in #826 - Update bmv2 README with development build instructions by @bocon13 in #800
- Drop support for BF SDE 9.3.2 and 9.4.0 by @bocon13 in #860
- Use singleton port value in OpenconfigConverter by @eth0xFEED in #830
- Fix stratum_bfrt with SDE 9.7.0 by @bocon13 in #864
- Check meter config only if we are trying to set the meter by @Yi-Tseng in #868
New Contributors
Full Changelog: 2021-10-09...2021-12-13
2021-10-09
We are pleased to announce Stratum 2021-10-09 (or 21.10 for short).
For this Stratum release, the following hardware targets have been certified by ONF's Continuous Certification Program:
- APS Networks BF2556X-1T
- APS Networks BF6064X-T
- Edgecore AS7712-32X
- Edgecore Wedge100BF-32X
Known Issues
There is a known issue with BF SDE versions 9.5.0 and 9.3.2 on pre-production Edgecore Wedge100BF devices, where the CPU port will not come up. Please use SDE version 9.3.1 or newer devices.
Docker images
Broadcom
OpenNSA: docker pull stratumproject/stratum-bcm:21.10-opennsa
SDKLT: docker pull stratumproject/stratum-bcm:21.10-sdklt
We recommend the OpenNSA-based image.
Barefoot
PI on SDE 9.5.0: docker pull stratumproject/stratum-bf:21.10-9.5.0
BfRt on SDE 9.5.0: docker pull stratumproject/stratum-bfrt:21.10-9.5.0
We recommend the BfRt-based image for most users.
BMv2 in Mininet
docker pull opennetworking/mn-stratum:21.10
Build Image
If you would like to build this release, you can use the following base build container:
docker pull stratumproject/build:21.10
Source Code and Pre-Built Packages
You can download pre-built Debian packages (or a zip/tarball of the sources) in the "Assets" section below. These Debian packages include kernel modules built for Linux 4.14.49.
You can also access the source code by cloning this repo and checking out the 2021-10-09
tag.
Open Network Linux
The Docker images for Broadcom and Barefoot as well as the pre-built packages are tested against ONF's build of OpenNetworkLinux.
You probably want to install the ONL-OS_2020-12-04.2146-66f5d94_AMD64_INSTALLED_INSTALLER
image
What's Changed
- Make SerDes config optional on Stratum-bcm by @pudelkoM in #760
- Migrate to
absl::Cleanup
by @pudelkoM in #720 - Add queue color drops on Stratum-bfrt by @pudelkoM in #763
- Verify Tofino QoS part of ChassisConfig by @pudelkoM in #772
- Reject
ActionProfileGroups
with watch ports on Stratum-bfrt by @pudelkoM in #773 - Make Tofino gmin queue QoS parameter optional by @pudelkoM in #778
- Add
-Werror=parentheses
to compile flags by @pudelkoM in #779 - Narrow scope of lookup variables in if blocks in
BfChassisManager
by @pudelkoM in #780 - Reject range "don't care" match fields in Stratum-bfrt by @pudelkoM in #784
- Merge
BfrtActionProfileManager
intoBfrtTableManager
by @pudelkoM in #774 - Make Stratum-bfrt the default over Stratum-bf by @pudelkoM in #776
- Create Stratum
logging_guide.md
by @pudelkoM in #567 - Always set
--test_output=errors
forbazel test
invocations by @pudelkoM in #546 - Create Stratum-tools package and Docker image by @pudelkoM in #771
- Collate lint and style checks into single CI task by @pudelkoM in #785
- Stamp Stratum release binaries by @pudelkoM in #516
- Preserve and log the status of Bfrt PacketIn drops by @pudelkoM in #790
- Add unit tests for
BfrtNode
by @pudelkoM in #792 - Make Stratum-bfrt the runtime default by @pudelkoM in #789
- Push tools image to Aether harbor registry by @pudelkoM in #791
- Fix docker image tagging during CI when not building for Harbor by @pudelkoM in #797
- Fix formatting in loopback ptf program by @bocon13 in #798
- Fix typo, use
CHECK_EQ
inBfSdeWrapper
and formatlib/barefoot/BUILD
file by @pudelkoM in #802 - Update PI and BMv2 versions by @bocon13 in #799
- Build Stratum-bmv2 images with clang by @pudelkoM in #806
- Return empty
MeterConfig
for unsetMeterEntry
on Stratum-bfrt by @pudelkoM in #807 - Remove invalid response allocation in
DummyNode
grpc call by @pudelkoM in #811 - Format procmon code by @pudelkoM in #813
- Format attribute database code by @pudelkoM in #814
- Make Stratum-bfrt QoS configurable with singleton port IDs by @pudelkoM in #808
- Format ONLP code by @pudelkoM in #815
- Use default constructors for ONLP data classes by @pudelkoM in #810
- Add comment about BCM SDK header include order by @pudelkoM in #816
- Format
lib/security
code by @pudelkoM in #817 - Value initialize
pthread_t
class members in constructor by @pudelkoM in #812 - Reject action profile members with weights in Stratum-bfrt by @pudelkoM in #818
- Allow the configuration of the ADMIN state in StratumBmv2Switch by @pierventre in #805
- Bump bmv2 dependency by @pierventre in #823
- Remove Google specific defines by @pudelkoM in #819
- Move QoS singleton port lookup into
BfChassisManager
by @pudelkoM in #822 - Add linter for markdown and run during CI by @pudelkoM in #584
- Make egress queue of clone sessions configurable in Stratum-bfrt by @pudelkoM in #825
- Improve readability by renaming variables in
BfChassisManager
by @pudelkoM in #827 - Fix Tofino port shaping cleanup on ChassisConfig push by @pudelkoM in #824
- Initialization needs to provide TLS key materials on startup by @eth0xFEED in #828
- Add LICENSE and NOTICE to Stratum distributions by @bocon13 in #834
- Add description to stratum_license_tar bazel macro by @bocon13 in #835
- Add LICENSE and NOTICE files for stratum-tools and p4-fpm by @bocon13 in #836
- Drop support for Intel SDE 9.2.0 and 9.3.0 by @bocon13 in #837
New Contributors
- @pierventre made their first contribution in #805
Full Changelog: 2021-06-30...2021-10-09
2021-06-30
We are pleased to announce the fifth Stratum release: 2021-06-30 (or 21.06 for short)
For this Stratum release, the following hardware targets have been certified by ONF's Continuous Certification Program:
- APS Networks BF2556X-1T
- APS Networks BF6064X-T
- Edgecore AS7712-32X
- Edgecore Wedge100BF-32X
Known Issues
There is a known issue with BF SDE versions 9.5.0 and 9.3.2 on pre-production Edgecore Wedge100BF devices, where the CPU port will not come up. Please use an older SDE version or newer devices.
Changelist
New SDK support
Tofino
New Features
- 278af79 Minimal BSP support for Tofino Wedge100BF switches (#748)
- Experimental support for QoS: 8909f9e, 8aa870a, 36d5bce, db7acc5
- 6ea715a Add SKU info to
GetBfChipType
and log on Stratum startup (#713) - ab94c4d Implement
OperStatus::time_last_changed
on Stratum-bfrt (#707) - afd7042 Add option to make Stratum-bfrt return canonical byte strings (#677)
- 1ab8d40 Add deflect-on-drop API to Stratum-bfrt (#535)
Bug fixes
- 405c7df Translate P4 table ID to BfRt ID when reading registers (#757)
- c3a5b85 Convert register data field length from bits to bytes in
BfSdeWrapper::WriteRegister
(#754) - 0bf8c6c Add warning about building SDE tar outside Docker (#692)
- f10f237 Bump Stratum-bmv2 PI_COMMIT to fix packet-out metadata serialization (#742)
API Updates
- aed5056 Enable singleton port ID validation in
BfChassisManager::VerifyChassisConfig
(#761) - 6653ed1 Remove flag and env file from Stratum-bf (#749)
- 6bd8511 Remove
-bf_sim
flag from Stratum for Tofino (#743) - 22b6b5a Use
minloglevel
instead ofstderrthreshold
(#681) - c3bcb3d Remove 28000 as default gRPC port (#657)
Updated gNMI paths
- 5f5da6f Add gNMI path to change Stratum log level at runtime (#683)
/system/logging/console/config/severity
- 939a75e Add
last_change
toOperStatus
message (#705)/interfaces/interface[name=<name>]/state/last-change
- 8ca0dc0 Use mock MAC address for /config/mac-address path default (#620)
/interfaces/interface[name=<name>]/ethernet/config/mac-address
Other enhancements
Docker images
Broadcom
OpenNSA: docker pull stratumproject/stratum-bcm:21.06-opennsa
SDKLT: docker pull stratumproject/stratum-bcm:21.06-sdklt
We recommend the OpenNSA-based image.
Barefoot
PI on SDE 9.3.2: docker pull stratumproject/stratum-bf:21.06-9.3.2
BfRt on SDE 9.3.2: docker pull stratumproject/stratum-bfrt:21.06-9.3.2
We recommend the PI-based image for most users.
You can also find containers for other supported SDE version (e.g. 9.4.0 or 9.5.0):
docker pull stratumproject/stratum-bf:21.06-<SDE_VERSION>
BMv2 in Mininet
docker pull opennetworking/mn-stratum:21.06
Build Image
If you would like to build this release, you can use the following base build container:
docker pull stratumproject/build:21.06
Source Code and Pre-Built Packages
You can download pre-built Debian packages (or a zip/tarball of the sources) in the "Assets" section below. These Debian packages include kernel modules built for Linux 4.14.49.
You can also access the source code by cloning this repo and checking out the 2021-06-30
tag.
Open Network Linux
The Docker images for Broadcom and Barefoot as well as the pre-built packages are tested against ONF's build of OpenNetworkLinux.
You probably want to install the ONL-OS_2020-12-04.2146-66f5d94_AMD64_INSTALLED_INSTALLER
image using ONIE.
2021-03-31
We are pleased to announce the fourth Stratum release: 2021-03-31 (or 21.03 for short)
For this Stratum release, the following hardware targets have been certified by ONF's Continuous Certification Program:
- APS Networks BF2556X-1T
- APS Networks BF6064X-T
- Edgecore AS7712-32X
- Edgecore Wedge100BF-32X
- Inventec D5254
Known Issues
There is a bug in BF SDE 9.3.1 that can cause Stratum to crash on start up. This affects both stratum-bf
and stratum-bfrt
on the following switches:
- APS Networks BF2556X-1T
- Inventec D5254
Please use either SDE 9.2.0 or 9.4.0 on these switches.
Changelist
New SDK support
- 543f87d Remove Intel Barefoot SDE 9.1.0 (#566)
- bfbddd4 Initial support for Intel Barefoot SDE 9.4.0 and 9.3.1 (#561)
Tofino
New Features
- 949b92a Add remote bfshell support (#585)
- a6492c4 Implements tofino model mininet class (#527)
- a49c183 Add support for MeterEntry in Stratum-bfrt (#545)
Bug fixes
- ff802f0 Support indirect counter entry wildcard reads (#562)
- 662cc6a Add GetSdeVersion() and log the version on startup (#565)
- 75ea757 Add tool to canonicalize Tofino port ids and apply it (#498)
- dc93d59 Remove deprecated PLT_BAREFOOT_TOFINO and PLT_BAREFOOT_TOFINO2 enums (#487)
- 49b2b4c Auto-detect and expose BF SDE version as config_setting (#564)
- Users no longer need to specific the
--define sde_ver=x
flag at build time
- Users no longer need to specific the
- fd75aa0 Implement simple port shaping on Tofino (#524)
- 0c95ad5 Fix handling of wildcard table entry reads with counterdata (#523)
New Platforms
- 7aa9708 Update APS Networks switches in the README (#544)
- Devices were renamed from Stordis to APS Networks
API Updates
Updated gNMI paths
/interfaces/interface[name=<name>]/state/hardware-port
now returns the interface name on all platforms/interfaces/interface[name=<name>]/ethernet/config/forwarding-viable
now returnsfalse
on unsupported platforms/interfaces/interface[name=<name>]/state/health-indicator
now returnsHEALTH_STATE_UNKNOWN
on unsupported platforms/interfaces/interface[name=<name>]/ethernet/config/mac-address
now returns00:00:00:00:00:00
on unsupported platforms
P4Runtime
- 71aa9db Update P4Runtime to 1.3.0 (#497)
- Note: Stratum is not yet fully compliant with the 1.3.0 spec, but now uses the 1.3.0 protobuf definitions.
- cf43624 Pad byte strings passed to the SDE (#556)
- This allows passing canonical byte strings to Stratum-bfrt
- 5dfdd05 Move default pipeline config to /etc/stratum and package a placeholder (#586)
Other enhancements
Docker images
Broadcom
OpenNSA: docker pull stratumproject/stratum-bcm:21.03-opennsa
SDKLT: docker pull stratumproject/stratum-bcm:21.03-sdklt
We recommend the OpenNSA-based image.
Barefoot
PI on SDE 9.3.1: docker pull stratumproject/stratum-bf:21.03-9.3.1
BfRt on SDE 9.3.1: docker pull stratumproject/stratum-bfrt:21.03-9.3.1
We recommend the PI-based image for most users.
You can also find containers for other supported SDE version (e.g. 9.2.0 or 9.4.0):
docker pull stratumproject/stratum-bf:21.03-<SDE_VERSION>
BMv2 in Mininet
docker pull opennetworking/mn-stratum:21.03
Build Image
If you would like to build this release, you can use the following base build container:
docker pull stratumproject/build:21.03
Source Code and Pre-Built Packages
You can download pre-built Debian packages (or a zip/tarball of the sources) in the "Assets" section below. These Debian packages include kernel modules built for Linux 4.14.49.
You can also access the source code by cloning this repo and checking out the 2021-03-31
tag.
Open Network Linux
The Docker images for Broadcom and Barefoot as well as the pre-built packages are tested against ONF's build of OpenNetworkLinux.
You probably want to install the ONL-OS_2020-12-04.2146-66f5d94_AMD64_INSTALLED_INSTALLER
image using ONIE.
2020-12-18
We are pleased to announce the third Stratum release: 2020-12-18 (or 20.12 for short)
For this Stratum release, the following hardware targets have been certified by ONF's Continuous Certification Program:
- Edgecore AS7712-32X
- Edgecore Wedge100BF-32X
- Inventec D5254
Changelist
New SDK support
- Intel Barefoot BfRt: 9.2.0 (recommended) and 9.3.0 (experimental)
- Intel Barefoot PI: 9.3.0 (experimental)
- 9.2.0 still recommended; 9.1.0 also supported
- Broadcom OpenNSA (updated to 6.5.19.1)
New Platforms
- Edgecore Wedge100BF-32QS (Tofino)
API Updates
- Updated gNMI path
/interfaces/interface[name=*]/state/ifindex
now returns port number from SDK for Tofino- Stratum port ID (in ChassisConfig) not longer needs to match BF SDK port ID
Barefoot Tofino Enhancements
- New Stratum Target: stratum_bfrt which is based on newer BfRt API (which offers advanced features and higher performance)
- Introduces new P4RT p4_device_config format (protobuf-based; backwards compatible with stratum_bf)
- Works with both stratum_bf and stratum_bfrt
- Pipeline builder tool provided
- New Barefoot SDE wrapper (used for SDK interactions for both stratum_bf and stratum_bfrt)
- Improved test coverage of Tofino-specific code (from 0% to 52%)
- New build process for BF SDE
- Streamlined documentation for build and runtime
- Universal Docker containers for Tofino
- Works with
tofino-model
and hardware - Includes Barefoot kernel modules for several different kernels
- Simplifies Docker tag naming (dropped kernel version from tag)
- Works with
- Renamed
PLT_BAREFOOT_TOFINO
toPLT_GENERIC_BAREFOOT_TOFINO
for chassis configsPLT_BAREFOOT_TOFINO
is still supported, but will be removed in a future release
Platform Enhancements
- ONLPv2 share libraries are now dynamically loaded via
dlopen()
- Allows the same binary to be used on targets with and without ONLP
-enable_onlp
flag added as a Stratum runtime flag- Note: The build time (Bazel) flag
--define phal_with_onlp=<true/false>
no longer has any effect.
Docker containers
- Added labels for git revision, git source, build machine, and build timestamp
Other enhancements
- New unit test rules, enforced code style
- New stratum-replay tool
- Replay the flow state from a log file (from production, integration tests, ...) onto a switch
- Allows easier reconstruction and debugging of failures
Docker images
Broadcom
OpenNSA: docker pull stratumproject/stratum-bcm:20.12-opennsa
SDKLT: docker pull stratumproject/stratum-bcm:20.12-sdklt
We recommend the OpenNSA-based image.
Barefoot
PI on SDE 9.2.0: docker pull stratumproject/stratum-bf:20.12-9.2.0
BfRt on SDE 9.2.0: docker pull stratumproject/stratum-bfrt:20.12-9.2.0
We recommend the PI-based image for most users.
You can also find containers for other supported SDE version (e.g. 9.1.0 or 9.3.0):
docker pull stratumproject/stratum-bf:20.12-<SDE_VERSION>
BMv2 in Mininet
docker pull opennetworking/mn-stratum:20.12
Build Image
If you would like to build this release, you can use the following base build container:
docker pull stratumproject/build:20.12
Source Code and Pre-Built Packages
You can download pre-built Debian packages (or a zip/tarball of the sources) in the "Assets" section below. These Debian packages include kernel modules built for Linux 4.14.49.
You can also access the source code by cloning this repo and checking out the 2020-12-18
tag.
Open Network Linux
The Docker images for Broadcom and Barefoot as well as the pre-built packages are tested against ONF's build of OpenNetworkLinux.
You probably want to install the ONL-OS_2020-12-04.2146-66f5d94_AMD64_INSTALLED_INSTALLER
image using ONIE.
2020-09-30
We are pleased to announce the second Stratum release: 2020-09-30 (or 20.09 for short)
For this Stratum release, the following hardware targets have been certified by ONF's Continuous Certification Program:
- Edgecore AS7712-32X
- Edgecore Wedge100BF-32X
- Inventec D5254
Changelist
New SDK support
- Broadcom OpenNSA
- Netcope P4 SDK for Smart NICs
New ASICs / FPGAs
- Broadcom Tomahawk+
- Broadcom Tomahawk2
- Broadcom Tomahawk3
- Broadcom Trident2
- Intel Arria 10 FPGA
New Platforms
- Edgecore AS6712 (Trident2)
- Edgecore AS7716-24SC Cassini (Tomahawk+)
- Inventec D5264 (Tofino)
- Netberg Aurora 610 (Tofino)
- Netberg Aurora 710 (Tofino)
- Netberg Aurora 750 (Tofino)
- Intel PAC N3000 Smart NIC (Arria 10)
API Updates
- P4Runtime to 1.2.0 and added default port: 9559
- Updated to version 1.2.0
- Added default listening port: 9559
- Report packet out errors to controller
- New gNMI paths
/components/component[name=<name>]/state/part-no
/components/component[name=<name>]/state/mfg-name
/components/component[name=*]/integrated-circuit/state/node-id
/interfaces/interface[name=*]/state/counters
- Updated gRPC to 1.30.0 and protobuf to 3.13.0
Logging
- Enable logging to stderr by default
- Disable file logging by default
- Disable P4 write logging if flag is empty
- Changed log level in timer daemon class to VLOG(1) from INFO
- Updated glog dependency
Other enhancements
- Bumped Bazel to version 3.5.0
- Added setup guide for Barefoot Tofino + Stratum + ONOS
Docker images
Broadcom
OpenNSA: docker pull stratumproject/stratum-bcm:opennsa@sha256:13a943e0f90b71c3bee53579eb521fdb36fa517c5e7c12e1f868a22193cf4653
SDKLT: docker pull stratumproject/stratum-bcm:sdklt@sha256:3f99fbb46fba5f090d8f908053e28dfc2a3da2958ee22a0c489409471d620215
We recommend the OpenNSA-based image.
Barefoot
Recommended image
SDE 9.2.0: docker pull stratumproject/stratum-bf:9.2.0-4.14.49-OpenNetworkLinux@sha256:b64b89f8766ce6bd22cb308d3b8151c15b1635aa69f1eef68907e3f16b241224
Support for older Barefoot SDEs
SDE 9.0.0: docker pull stratumproject/stratum-bf:9.0.0-4.14.49-OpenNetworkLinux@sha256:7240c4c25702ed7391541ce57aace80e55d9665057809294dad36f50c3dbe6b1
SDE 8.9.2: docker pull stratumproject/stratum-bf:8.9.2-4.14.49-OpenNetworkLinux@sha256:7240c4c25702ed7391541ce57aace80e55d9665057809294dad36f50c3dbe6b1
BMv2 in Mininet
docker pull opennetworking/mn-stratum:latest@sha256:e2df7e48f96ba9b5b415e7914d4f369e9414f5d8d9790a56663ebbf7a4becb4b
Source Code and Pre-Built Packages
You can download pre-built Debian packages (or a zip/tarball of the sources) in the "Assets" section below. These Debian packages include kernel modules built for Linux 4.14.49.
You can also access the source code by cloning this repo and checking out the 2020-09-30
tag.
Open Network Linux
The Docker images for Broadcom and Barefoot as well as the pre-built packages are tested against ONF's build of OpenNetworkLinux.
You probably want to install the ONL-ipvs_ONL-OS_2020-09-28.2308-2f7f611_AMD64_INSTALLED_INSTALLER
image using ONIE.
2020-06-18
We are pleased to announce the first official Stratum release: 2020-06-18 (or 20.06 for short)
This release supports P4Runtime v1.1.0 and gNMI v0.7.0 on Broadcom Tomahawk, Intel Barefoot Tofino, and P4's behavioral model (BMv2). Stratum's date-named releases are scheduled to happen quarterly, but they may be more or less frequent if needed.
ONF's Continuous Certification Program is continually re-verifying supply chain products on a daily basis against the most recent versions of ONF open source software platforms, ensuring operators have a vibrant ecosystem of options for deploying ONF open source platforms.
For this Stratum release, the following hardware targets have been certified by ONF's Continuous Certification Program:
- Edgecore AS7712-32X
- Edgecore Wedge100BF-32X
- Inventec D5254
- Stordis BF6064X
Supported Devices
Tofino
- Delta AG9064v1
- Edgecore Wedge100BF-32X
- Edgecore Wedge100BF-65X
- Inventec D5254
- Stordis BF6064X
- Stordis BF2556X
Broadcom
- Edgecore AS7712-32X
- Dell Z9100
- Inventec D7032
- QCT QuantaMesh T7032-IX1
Software Switches
- bmv2
- dummy