Skip to content

Release 1.13.0 of bmv2

Compare
Choose a tag to compare
@antoninbas antoninbas released this 21 Feb 21:49

List of new features:

bmv2 core:

  • add 2 new hash functors: round_robin and round_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 to SimpleSwitchGrpc 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