Releases: p4lang/behavioral-model
Releases · p4lang/behavioral-model
Release 1.9.3 of bmv2
Notable bug fixes since 1.9.2:
- call
export_bytes
inData::two_comp_mod
operator
Release 1.9.2 of bmv2
Notable bug fixes since 1.9.1:
- copy internal PHV state for header stacks when creating packet copies
- add missing includes
- do not crash in CLI if match field format is bad
- do not use Werror by default when building, can be enabled when running configure with
--enable-Werror
Release 1.9.1 of bmv2
Notable bug fixes since 1.9.0:
- fix pcap file corruption when using --pcap-dump
- fix compilation warnings with gcc7
Release 1.9.0 of bmv2
- ability to init the
Switch
with anOptionsParser
object (instead of argv) - implemented
_pi_update_device
functions for bmv2 - ability to send / receive dataplane packets in simple_switch_grpc with a gRPC service (new
DevMgrIface
implementation) - move simple_switch_grpc unit tests to GoogleTest
- enable JSON swap by default for simple_switch_grpc
- ability to pass "extras" KV map when adding port; this is useful for custom
DevMgrIface
implementations - add
bm_register_read_all
to Thrift interface - register logger with P4Runtime library in simple_switch_grpc
- dissociate checksum verification and update in JSON (some checksums can be verify-only, others update-only)
- support 64-bit device ids; this required updating the nanomsg notification headers
Release 1.8.1 of bmv2
Notable bug fixes since 1.8.0:
- don't crash in runtime APIs if invalid resource name
- give error for duplicate ports or LAGs in simple_switch_CLI
Release 1.8.0 of bmv2
- ability to chose gRPC server address for simple_switch_grpc
- extra logging (with source info) when evaluating conditions and calling action primitives
- support for calling actions directly from control
- now using gcc6 in regressions instead of gcc5 (in addition to gcc4.8); we want to support gcc4.8 -> gcc6; we no longer run regressions with clang3.6 but we still do with clang3.8
- thrift RPC to clear all entries in a table:
bm_mt_clear_entries
- verify checksums at the end of parsing and log an error message if checksum is not correct
- add ability to print supported bmv2 JSON version with
--json-version
command line option - check that JSON version is supported in P4Objects when loading the JSON input
- gRPC requirement to use simple_switch_grpc is now 1.3.0
- removed the
OverwritingHeader
parser error, which is no longer part of the P4_16 spec - add support for conditional jumps in actions, which enables us to support conditions in action bodies (P4_16) directly
- more advanced support for CRCs, with a list of predefined algos and the ability to specify your own polynomials in the JSON input
- support for P4_14 saturating fields
- thrift RPC to query the (JSON) id of an object by name:
bm_get_id_from_name
- stub implementation of gNMI handler in simple_switch_grpc
- packet IO support in simple_switch_grpc
Release 1.7.2 of bmv2
Bug fixes since 1.7.1:
- fix major bug in ternary table implementations (lookup results were wrong after deleting an entry because of invalid handle computation)
- fix typo in P4Objects code which sets
arith
for union fields - remove statements with side-effects from asserts, in case code is compiled with
NDEBUG
- fix
ByteContainer::to_hex
to not useoperator []
to get an "iterator" to the end of the vector; in debug mode, clang perform bound checking even foroperator []
Release 1.7.1 of bmv2
Bug fixes since 1.7.0:
- fix issue with VL fields handling in JSON parser
- more robust JSON parsing: replaced asserts with error messages, header & field name validation
- setting arith property for checksum target fields when parsing JSON
- fix g++6 compilation warning
- fix crash in PRE
Release 1.7.0 of bmv2
- more comprehensive header stack support in expression engine
- tentative support for method calls in parse state body
- support for static table initializers
- support for shift in parser
- exact match cache for ternary / range tables to avoid linear search
- tentative implementation of the PI C API (bypassing Thrift RPC server)
- conditional dependency on Thrift and nanomsg, controlled by configure script
- new simple_switch_grpc target, which does not use Thrift for dataplane configuration
- tentative support for P4_16 header unions
Release 1.6.1 of bmv2
minor bug fixes since 1.6.0