Release 1.13.0 of bmv2
List of new features:
bmv2 core:
- add 2 new hash functors:
round_robin
andround_robin_consistent
; this can be useful when the hash is used for an action selector, as a way to iterate through all possible members and obtain all possible outputs - support for periodically-called externs (functor is called whenever a timer fires)
- use config.h file generated but autoconf to "define" preprocessor flags, instead of using CPPFLAGS; this ensures that third-party projects which use the bmv2 library are compiled with the same flags that where used when the bmv2 library was compiled
- add new command-line options parser to be used for target-specific options:
TargetParserBasicWithDynModules
; this parse supports the--load-modules
option (to load shared objects at runtime) by default
simple_switch:
- introduce simpleswitch_runner library so that third-party projects can instantiate a
SimpleSwitch
instance - support for
intrinsic_metadata.egress_global_timestamp
- add bounds checking for indexed counters, meters, and register arrays (with appropriate error logs)
- support for
standard_metadata.parser_error
- support cloning to a multicast group: this is used to support the P4Runtime
CloneSessionEntry
message, which supports cloning to a set of ports - enhance documentation
- support for
standard_metadata.checksum_error
- unicast packets always begin egress with the instance type set to NORMAL, even packets which were originally resubmitted / recirculated
simple_switch_grpc:
- support latest PI / P4Runtime (v1.0.0), including support for cloning, digest and idle timeout
- add
is_dp_service_active()
API toSimpleSwitchGrpc
to return the current status of dataplaneinterface gRPC service - fix linking for
simple_switch_grpc
executable after observing some strange runtime errors - update supported sysrepo version
- clean-up "asynchronous" GTests
- support for
--load-modules
command-line option
psa_switch:
- add bounds checking for indexed counters, meters, and register arrays (with appropriate error logs)
tools:
- update veth_setup.sh to no longer use deprecated ifconfig command
- support for debugger (p4dbg) even when Thrift is not enabled: this means the debugger can be used with simple_switch_grpc
- enable runtime_CLI even when bmv2 is built without nanomsg support, ensuring that the CLI can be used with simple_switch_grpc (if Thrift enabled)
- fix code coverage reports in CI by using lcov instead of gcov directly