bmv2 core:
- remove all dependencies on libJudy: libJudy is not very portable, is no actively longer maintained, and is not cross-compilation friendly; it was complicating the build and causing runtime issues for some users
- change return type of bm_get_config_md5() (Thrift RPC Service) to binary to fix issue occurring with recent Thrift versions
- use correct pcap files to dump ingress and egress traffic in BMI (files were previously swapped)
- print error code in logs for invalid runtime operations to facilitate troubleshooting
- move dataplane_interface.proto to common
services/
folder so that it can be used by all targets - fix IPv6 address parse error in runtime_CLI
- add the xor16 hash function to bm_sim
simple_switch / simple_switch_grpc:
- fix
standard_metadata.packet_length
for copies and update simple_switch documentation appropriately - document idle timeout implementation for match tables
- [simple_switch_grpc] switch default P4Runtime gRPC port to 9559 (IANA assigned port)
- [simple_switch_grpc] support SSL/TLS options for P4Runtime server, including mutual authentication
- [simple_switch_grpc] do not return an error in PI implementation if meter rates not set
- [simple_switch_grpc] reset meter rates when getting default meter spec from PI API
- [simple_switch_grpc] log an error in case of mismatch between device ids
- [simple_switch_grpc] do not ignore drop port value provided through the command-line
psa_switch:
- support for e2e cloning
- extern implementations:
Random
,InternetChecksum
,Hash
tools:
- all Python scripts now require Python 3
- update to dependencies:
- Thrift >= v0.11.0 and <= v0.13.0 supported
- CI updates:
- OS used for CI: Ubuntu 20.04
- C/C++ compilers used for CI: gcc9, clang-8, clang-10
- use Github workflows instead of Dockerhub to build and push container image (
p4lang/behavioral-model
) to Docker; workflow runs for every main branch update as well as periodically - drop unused
Dockerfile.grpc
- document dependencies for Ubuntu 20.04 and Fedora