Skip to content

Latest commit

 

History

History
1135 lines (1087 loc) · 107 KB

CHANGELOG.md

File metadata and controls

1135 lines (1087 loc) · 107 KB

Changelog

Semantic Versioning

We follow a monthly release cadence. Our versioning scheme is as follows:

  • Major.Minor.Patch versions align with the P4 specification.
  • Revision (the last number) is incremented with each monthly release.

@note The commit history prior to the release 1.2.2.1 is not included here but is available in the commit history.

Release v1.2.4.13 [view]

Breaking Changes 🛠

  • Get rid of implicit char* => cstring conversions [view].
  • Format-related string fixes and refactorings [view].
  • Get rid of custom implementation of Utils::PathName [view].
  • cstring-related cleanup, switch to std::string_view for some cstring API [view].
  • Remove ReferenceMap recalculation (almost) everywhere and switch to more fine-grained solutions [view].

Changes to the Compiler Core

  • Refactor error_helper and around [view].
  • Add freestanding RTTI::to, RTTI::is, RTTI::isAny [view].
  • More compilation fixes for C++20: hvec_map and copy_bitref [view].
  • Add a constant folding pass after inlining [view].
  • [#4006] Remove confusing warning when the same header is extracted multiple times in a parse path [view].
  • Emit true and false instead of 1 and 0 for BoolLiteral dbprint. [view].
  • [#4760] Create empty SetOfLocations for don't care arguments passed as action out args [view].
  • Delete unused RemoveComplexExpressions pass. [view].

Changes to the TC Back End

  • P4TC - Support for DirectCounter extern [view].
  • Implementation of Counter extern in p4tc [view].
  • Make sure compiler_meta__->drop starts out false [view].

Changes to the DPDK Back End

  • Update some stale DPDK error reference files. [view].
  • Fix a nullptr access in the DPDK back end. [view].

Changes to the P4Tools Back End

  • Add P4Smith, a random program generator to the P4Tools framework [view].
  • [P4Smith] Fix broken links in Smith README [view].

Other Changes

  • Configure: DOXYGEN for documentation generation [view].
  • Add a formatter binary skeleton as P4C back end [view].
  • Invalid include fix in p4fmt.cpp [view].
  • Test building P4C with ENABLE_GTESTS=OFF in CI [view].
  • Fix up the Bazel sed command. [view].
  • Docs : Configure Doxygen and GitHub pages deploy Action [view].
  • Fix : Compatibility issues with Doxygen version in runner and configuration [view].
  • Docs : Update community link from Slack to Zulip [view].
  • [Docs] Add initial CHANGELOG.md with changelogs from previous release [view].
  • Docs : Configuring Doxygen Awesome CSS [view].
  • Minor Fix: Graphs Backend Example Images [view].
  • Fix spurious P4Testgen failure occurring because of a problem when running PTF tests in parallel. [view].
  • Make different Markdown files have different titles in Doxygen output [view].
  • Bump docker/build-push-action from 5 to 6 [view].
  • Docs: Fixing diagram paths in generated docs [view].
  • Docs: Add theme dependency and instructions [view].
  • Add back in heading for P4Smith README file [view].
  • Docs: Initial sequence of pages in Documentation [view].
  • Docs: Update compiler file structure [view].
  • Fix naming of CMake Release configuration. [view].
  • Simplify dependabot label generation. [view].
  • Add DCO description to the contribution guidelines. [view].
  • Add a signature for the release bot for DCO support. [view].
  • Automated Release v1.2.4.13 [view].

Click here to find Full Changelog

Release v1.2.4.12 [view]

Breaking Changes 🛠

  • Replace IR::getBitType with IR::Type_Bits::get. [view]
  • Make the new operator protected for some IR types. [view]

P4 Specification Implementation

  • [#4656] Explicitly delay constant folding of only action enum IR::SwitchCase label expressions, instead of delaying constant folding of all IR::Mux expressions [view]
  • Changes for for loops [view]

Changes to the Compiler Core

  • Use check_include_file_cxx instead of check_include_file to find mm_malloc.h [view]
  • Move IRUtils Literal get functions to the respective IR members. Add stringliteral get function. [view]
  • Improve error message when shifting int by non-const [view]
  • Fixes to lib/hash and lib/big_int_util. [view]
  • Link against the Boehm-Demers-Weiser Garbage Collector using FetchContent. [view]
  • Explicitly include hash for Ubuntu 18.04. [view]
  • RemoveUnusedDeclarations - make helpers protected [view]
  • Generalization & minor refactoring in RenameMap [view]
  • Add string_view and string conversion operators and functions to cstring [view]
  • Facilitate inheritance from RenameSymbols pass, deduplicate code [view]
  • Set type for LAnd, LOr, LNot to be Type_Boolean if unknown. [view]
  • Improve BUG_CHECK internals [view]
  • Workaround for gcc-11.4/draft 2x spec flaw [view]
  • irgen: Generate explicit instantiations [view]

Changes to the Control Plane

  • Add support for new platform property annotations for P4Runtime. [view]

Changes to the eBPF Back Ends

  • Fix missing declaration of custom externs in the generated eBPF/uBPF header file. [view]

Changes to the TC Back End

  • Support for Register Extern in P4TC [view]
  • Added changes for default hit actions for tc backend [view]
  • Fix extern pipeline name in template file [view]

Changes to the P4Tools Back End

  • Merge TestgenCompilerTarget into TestgenTarget. [view]

Other Changes

  • Change parameter for kfunc 'bpf_p4tc_entry_create_on_miss' [view]
  • Add support for a clang-tidy linter. Add a files utility function. [view]
  • Only emit the warning on EXPORT_COMPILE_COMMANDS when there are clang-tidy files to lint. [view]
  • Aggressively clean up the Protobuf CMake dependency. [view]
  • Remove no-longer-used *.p4info.txt files [view]
  • Add a release template to the compiler. [view]

Click here to find Full Changelog

Release v1.2.4.11 [view]

Changes to the Compiler Core

  • Introduce guard for aarch64 GCC compilation. [view]
  • Update MacOS brew version. [view]
  • Contribute DiagnosticCountInPassHook [view]
  • allow disabling of subtraction transform [view]
  • [#4625] Prune MethodCallStatements if child MethodCallExpression resolves to a compile-time constant. [view]
  • [#4614] Unconditionally copy dpdk p4include files to the binary directory [view]
  • Call PassManager's debug hook even after a failing pass [view]
  • Ensure we take compiler-provided declaration of posix_memalign [view]
  • Fix missing override. [view]
  • Inspector: clear done/visit_in_progress when revisiting node [view]
  • Add option to build with dynamic libc and c++, but static other dependencies; change static option name [view]
  • Make the tree cloner also clone Member(TypeNameExpression)] to ensure the result is a DAG [view]
  • restore missing parentheses [view]
  • allow disabling of p4 input count check [view]

Changes to the eBPF Back Ends

  • Do not swallow the test output when checking for the static binary functionality. [view]

Changes to the TC Back End

  • Handle Arithmetic operations for fields which are in network order [view]
  • P4TC - Emit 'NoAction' in table actions list in template file [view]
  • Use IR::Annotation::nameAnnotation everywhere instead of hard-coding @name annotation name [view]
  • P4TC - Add permission annotations to tables [view]

Changes to the P4Tools Back End

  • Miscellaneous cleanups for P4Testgen. [view]

Other Changes

  • Add -mbmi flag to Abseil for GCC versions greater than 14. [view]
  • Rename reused-counter.p4 as reused-counter-bmv2.p4 so a test is created for it [view]
  • Fix: Outdated links [view]
  • Update graphs comment formatting. [view]
  • [Docs] capitalize "GCC" acronym in docs and comment [view]
  • Update ebpf comment format [view]
  • [Docs] Non-Breaking change of "p4c" to "P4C" [view]
  • Update the Commenting Style in the DPDK backend [view]
  • Force black to use pytoml as config. [view]
  • Format: Documentation dependency command [view]
  • Add missing include to map.h [view]
  • Fix a warning emerging from a testsuite in GTest on newer versions of Clang. [view]
  • Change kfunc definition for bpf_p4tc_tbl_read, xdp_p4tc_tbl_read, [view]
  • Update Commenting Style in Bmv2 Backend [view]
  • Update the dash programs. [view]
  • Update the comment format of common [view]
  • Create CONTRIBUTING.md [view]
  • [Docs] Add Table of Content [view]
  • [DOCS][Refactor] Replace direct links with word links [view]
  • Improve & Move "How to contribute" section to Top level readme [view]
  • Fix spurious failure when two tests try to remove ptf.log at the same time. [view]
  • Revert using Abseil system includes. [view]

Release v1.2.4.10 [view]

  • [doc] backends: Add Doxygen-style documentation for BMV2 JSONObjects [view]
  • Add Comment Style Guide [view]
  • Fix rules_boost which pulls in the compromised xz dependency. [view]
  • [Fix] Resource links in Additional documentation [view]
  • Fix broken Debian CI test badge in the README. Add Fedora and MacOS CI badge. [view]
  • Small build fixes. [view]
  • Added default action code for tc backend [view]
  • Add p4tc_filter_fields in add_entry [view]
  • Suppress Abseil warnings. [view]
  • Add a missing nullopt check. [view]
  • [P4Testgen] Clean up the direct extern map implementation for BMv2. [view]
  • Support new ActionProfile annotations for P4Runtime. [view]
  • Add width to parameters in const entries template definition. [view]
  • Implict cast fix [view]
  • Corrected version in README.md [view]
  • Refactor Util::Enumerator [view]
  • Add more CRC checksum variants to lib/nethash [view]
  • Bump black from 24.2.0 to 24.3.0 [view]
  • P4TC - Support add_on_miss, add entry externs [view]
  • Allow constructing an IR::ID from a std::string [view]
  • Move the network hashes implementation from Bmv2 testgen to lib/ [view]
  • Fix a warning on missing override in def use class. [view]
  • Add policy controlling RemoveUnusedDeclarations [view]
  • Use Abseil system includes [view]
  • Bump softprops/action-gh-release from 1 to 2 [view]
  • [documentation] Add hyperlinks to the actual directory in the README file [view]
  • Remove obsolete output_to_genfiles = True. [view]
  • [P4Testgen] Fix append and prepend invocation. [view]
  • Clean up P4Tools and control-plane linking. [view]
  • Midend def-use pass [view]
  • [docs] Sync Directory structure of P4tools [view]
  • Preserve annotations on functions properly [view]
  • Add ninja as a default build system for some runners. [view]
  • Extend parser to allow parentheses in lvalues [view]
  • tc_may_override annotation implementation [view]
  • tc struct fields addition and memory initialization [view]
  • Allow annotations on functions [view]
  • Add 4 digit uid to dump file names [view]
  • help compiler folding for divideFloor/moduloFloor [view]
  • gc: implement posix_memalign. [view]
  • [docs] subdirectories and description for control plane [view]
  • Bump softprops/action-gh-release from 1 to 2 [view]
  • YAML formatting from Redhead YAML language server. [view]
  • [Docs] Added tools to directory structure [view]
  • [docs] Add Backend to directory structure [view]
  • Fix broken MacOS and Ubuntu18.04 runs. [view]
  • Update formatters (clang-format, isort, black)] [view]
  • HalfOpenRange/ClosedRange classes [view]
  • Link bazel badge to the bazel build ci [view]
  • Build P4Testgen on MacOS. [view]
  • Replace boost string algorithms with their abseil counterparts [view]
  • Move CI Mac and Fedora tests to separate test runs. [view]
  • Open up the Z3 api. [view]
  • fix comment typo [view]
  • restore underscore after DISABLED in test name [view]
  • warn on unused controls/parsers [view]
  • [P4Testgen] Add a rudimentary P4Testgen benchmark with via GTest. [view]

Release v1.2.4.9 [view]

  • Move out of place comment in gc.cpp [view]
  • Use abseil maps even more [view]
  • Fetch latest brew formulae [view]
  • Generalize get in map utils [view]
  • Distinguish runner OS. [view]
  • Fixes from static analysis [view]
  • Add missing Bazel targets. [view]
  • Update MacOS runner to Ventura, add MacOS Sonoma (M1)] runner [view]
  • [P4Testgen] Add an option to selectively ignore control plane elements. [view]
  • backends/tc: Fix issues reported in #4327 [view]
  • Fix for default_action [view]
  • Removed pipeline id from template for tc backend [view]
  • Try to clean up the Protobuf includes. [view]
  • Use better maps to store visitor state [view]
  • [P4Testgen] Implement a library for common control-plane symbolic variables. [view]
  • Dowload pre-built Z3 on Macs as well [view]
  • Bump protobuf version and add Abseil as compiler dependency. [view]
  • Try to speed up the CI build process [view]
  • Add some more global operator new / delete overrides [view]
  • Add support for parser errors in tc backend [view]
  • Bump docker/build-push-action from 3 to 5 [view]
  • Bump actions/setup-python from 4 to 5 [view]
  • Fix hvec_map insert/emplace [view]
  • Remove some unused boost headers and switch from boost code to alternatives [view]
  • Handle value suffixes in the asserts parser. [view]
  • Add more API options to the P4Testgen api. [view]
  • Add merge group label to relevant branches. [view]
  • Refactor ReferenceResolver to use native C++-enumerators in some places [view]
  • Bump actions/checkout from 3 to 4 [view]
  • Bump actions/cache from 2 to 4 [view]
  • Bump docker/setup-buildx-action from 2 to 3 [view]
  • Bump peter-evans/create-pull-request from 5 to 6 [view]
  • Bump docker/login-action from 2 to 3 [view]
  • Refactor some visitor internals [view]
  • Create a dependabot.yml for Github actions [view]
  • Fix comment [view]
  • Change minimum key struct alignment to 8 [view]
  • P4TC - CRC32 Initialisation [view]
  • Avoid to-after-is double calls to RTTI in type checker [view]
  • add missing srcInfo to ParserState [view]
  • Move information logging to toplevel. [view]
  • Clean up Python linters. [view]
  • -lldb arg run run lldb on the compiler in tests [view]
  • Don't apply defaultArguments in table action lists [view]
  • Error casting bool const to other than bit<1> [view]
  • Provide better hash functions and boilerplate [view]
  • allow json output format to be modified [view]
  • Pass FrontEndPolicy to unit tests [view]
  • Basic support for @p4runtime_translation and @p4runtime_translation_mappings. [view]
  • Add a missing build rule to Bazel. [view]
  • [P4Testgen] Add an option to only generate tests with dropped packets. [view]
  • [P4Testgen] Look up the alias in the P4Info instead of using the fully qualified control plane name for Protobuf IR tests. [view]
  • frontend policy fix: missed ConstantFolding [view]
  • gtest include: quotes -> angled brackets [view]
  • test for ContantFolding + policy [view]
  • Add IR::inlineBlock utility that helps with return of multiple statements from Transform [view]
  • Emit a reasonable error if someone uses type in place where expression is exprected [view]
  • Introduce a frontend policy as a customization point for frontend [view]
  • Add a P4Testgen library API. [view]
  • Implement lightweight RTTI for (not only)] IR::Node class hierarchies [view]
  • Add buildifier to Bazel workspace and run it on the bazel build files. [view]
  • Memoize & improve name lookup in ResolveReferences [view]
  • Stop when an error is throwing in the P4Runtime serializer. Make stop on error explicit in pass manager. [view]
  • Do not check for shadowing repeatedly in inlining passes. [view]
  • Add an option to override the test name. [view]
  • Add a silent mode to P4Tools. Add performance counting at the top level. [view]
  • Introduce a configuration structure for the test back ends. [view]
  • Implement copy assignment operator for hvec_map [view]
  • [P4Testgen] Fix generation of specific fields in the Protobuf IR back end. Move hex separator utility to common class. [view]
  • Improve diagnostics for MethodCallExpression [view]
  • Step 4: Use the P4Runtime API in the Protobuf back end. [view]
  • Fix failing P4Testgen gtest. [view]
  • Dpdk backend:Explicitly use method toString()] while moving isValid()] Methodcall used as table key, to metadata. [view]
  • [#4365] Do not allow --Wdisable or --Wwarn to demote errors. Allow --Winfo=diagnostic to work for diagnostics that can be both warnings and errors. [view]
  • Rename eBPF section names for tc backend [view]
  • Fixes from static analysis [view]
  • [P4Testgen] Hotfixes and improvements to the P4Constraints parsers. [view]
  • backends/ebpf: Track header offset in bytes rather than bits. [view]
  • backends/tc: Honour P4TEST_REPLACE environment variable like other backends. [view]
  • Use proper Github actions syntax. [view]
  • Allow one more round of type inference after specialization [view]

Release v1.2.4.8 [view]

  • Add a P4Info API to the control-plane folder and P4Tools. [view]
  • [NFC] Eliminate the majority of dynamic_cast usage in the codebase in favor of ICastable interface [view]
  • Tweak optional CI run execution. [view]
  • Remove unused parser declarations and unused parser type declarations that result from RemoveRedundantParsers pass. [view]
  • Remove redundant protobuf installation. [view]
  • Remove XDP code generated for TC [view]
  • Use std::allocator_traits::rebind_alloc instead of std::allocator::rebind [view]
  • Support ebpf Hash and Checksum [view]
  • P4TC - Support const entries [view]
  • Fixes for MacOS/macports. [view]
  • Fix compiler stdin. [view]
  • Add missing equiv implementation to Type_Any. [view]
  • Remove options from gtest binary. [view]
  • Provide hints on how to fix CI complaints. [view]
  • Improve diagnostics for AssignmentStatement [view]
  • Improve diagnostics for BaseListExpression [view]
  • Improve diagnostics for StructExpression [view]
  • [P4Testgen] Introduce a compiler target for P4Testgen. Move computation from the ProgramInfo to the midend. [view]
  • Deprecate .txt, support in favour of .txtpb. [view]
  • [P4Testgen] Introduce the option to produce lowercase hex for the formatting library. [view]
  • Trigger CI workflows based on assigned label. [view]
  • Emit the Protobuf header with the P4 entries and runtime files. [view]
  • DoConstantFolding: make typeMap param const [view]
  • Repair the static DPDK PTF tests. [view]
  • Documentation & testfix follow-up to #4160 [view]
  • cstring: Add string literal suffix, add toLower [view]
  • Allow unknown fields when parsing P4Info files [view]
  • Convert deparser header to 'inout' and address casting for functions with control block parameters [view]
  • Step 2: Refactor ProgramInfo to be initialized with CompilerResult instead of a IR::P4Program. [view]
  • Ignore clang-tidy complaints about macro do-while loops. [view]
  • Fix build with system Protobuf [view]
  • [P4Testgen] Extend the CompilerTarget runProgram function with data structures which can pass on more information. [view]
  • Update status badges [view]
  • Allow constant-folding of arbitrary-precision integer casts [view]
  • Rename --with-output-packet to --output-packet-only. [view]
  • Make sure P4 expression optimization does not strip away types [view]
  • Respect ENABLE_LTO even for static build, but keep LTO default for static [view]
  • Allow constructing PassRepeated from a PassManager [view]
  • keep P4Control->body->srcInfo during init move [view]
  • [P4Testgen] Implement coverage tracking of actions [view]

Release v1.2.4.7 [view]

  • Fix some problems with the Protobuf CMake file [view]
  • Fix actionparams type field in introspection.json [view]
  • Move arch spec to ProgramInfo to allow it to depend on P4 program [view]
  • Support default action in P4TC [view]
  • [P4Testgen] Add support for @format annotations in P4 programs for protobuf-ir tests [view]
  • Remove -static and rename static build appropriately. [view]
  • Fix incorrect field extraction arithmetic when multiple non-byte aligned header fields are combined into single byte aligned field [view]
  • [P4Testgen] Fix stringliteral conversion. Value must be a literal, NOT a constant [view]
  • Remove uses of incompatible_use_toolchain_transition. [view]
  • Fix initialization order in gtest helper [view]
  • [P4Testgen] Fix behavior of coverage on edge cases with no nodes to cover [view]
  • Add validation of constant enum values fitting [view]
  • Do not toggle BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP in CMakelists.txt [view]
  • P4TC - Support for set_entry_timer extern [view]
  • Try to fix some issues with slowness in the MacOS build. [view]
  • Move P4Testgen's logging function into the common library. [view]
  • Remove deprecated inheritance. [view]
  • [P4Testgen] Fix accidental system file categorization. [view]
  • Fix problem with bpftool in PTF tests [view]
  • [P4Testgen] Move static helpers from TestgenTarget and ProgramInfo to common/lib/utils [view]
  • [P4Testgen] Resolve method call arguments before stepping into an extern - preserve InOut references [view]

Release v1.2.4.6 [view]

  • Remove stale XFail. [view]
  • [P4Testgen] Introduce a new Protobuf backend which uses P4 PDPI instead of P4Runtime [view]
  • [P4Testgen] Add struct and header expressions as a first-class expression to P4Testgen. [view]
  • P4tc Runtime issue fix [view]
  • Fix clang-tidy config file. [view]
  • More code improvements based on static analysis [view]
  • [P4Testgen] Flatten the genEq function and support struct expressions. [view]
  • [P4Testgen] Add a compiler pass to resolve Type_Name in StructExpressions. [view]
  • Rename TF to TestFramework [view]
  • [P4Testgen] Generate NoMatch for selects without default [view]
  • [P4Testgen] Fix argument names in GenericDescription trace event [view]
  • [P4Testgen] Add --assert-min-coverage option to check coverage of generated test cases [view]
  • [P4Testgen] Change crash message [view]
  • Added range check of error codes [view]
  • Fixed ebpf_packetOffsetInBits field in parser and control_block C file [view]
  • Ensure accurate typing for functions that work with references. [view]
  • Allow non-cast checkedTo cast. [view]
  • Allow custom usage in backends [view]
  • Fix some problems and suggestions found by clang-tidy [view]
  • [P4Testgen] Add EliminateInvalidHeaders midend pass [view]
  • Report offending node in the type-checker immutability check [view]
  • Allow method calls in index expressions in hsIndexSimplify [view]
  • Simplify jsonAssignment in ParserConverter and ActionConverter [view]
  • Fix build for latest Fedora version [view]
  • Disable DPDK PTF tests. Remove the deprecated travis.yml file. [view]
  • improved bootstrap.sh. [view]
  • [P4Testgen] Move common code of BMv2 test back ends into a common class. [view]
  • Flatten nesting of test backends and rename the folder appropriately. [view]
  • #noconstructor should also include the json loader constructor [view]
  • Fix some issues found by static analysis [view]
  • Ignore flaky test in P4Testgen eBPF back end. [view]
  • Still parse STF files, even when BMv2 model is not present in system. [view]

Release v1.2.4.5 [view]

  • Benchmarking fixes for P4Testgen. [view]
  • Add a testgen.p4 file with custom extern definitions such as testgen_assert and testgen_assume. [view]
  • Fix textproto generation and escape traces properly. [view]
  • Fix P4TC issues [view]
  • generic -O option to set optimization level/options [view]
  • Fix another segmentation fault when using the coverable nodes scanner. [view]
  • [P4Testgen] Add a DPDK-PTF P4Testgen back end and the corresponding test runner [view]
  • ParserUnroll: fix seg. fault for uninitialized variables inside header stack indexes [view]
  • Match switch labels directly instead of replacing them. Use .action_run return value instead of indirection. [view]
  • [P4Testgen] Change Protobuf backend test case file extension to .txtpb [view]
  • Ensured that error messages cannot be demoted to info messages [view]
  • Fixes for the artifact evaluation. [view]
  • Only look ahead for the else branch when it is not null. Check for null in node coverage. [view]
  • [P4Testgen] Support string types in the Z3 solver. [view]
  • testutils: Fix LogPipe to always record output.
  • backends/ebpf: Output an error if a header is not byte-aligned [view].
  • backends/ebpf: Support errors testing.
  • Stop endianess conversion in parser [view]
  • Update BUILD.bazel [view]
  • Update the Bazel build files [view]
  • Added support of info messages [view]
  • Move the solver file from the lib folder to the ir folder. [view]
  • Do not treat an array index as a purely symbolic variable and resolve the index correctly. [view]
  • Delete top-level dash-pipeline file. [view]
  • Run Gauntlet validation, sanitizers, and Ubuntu 18 build/test as nightly actions. [view]
  • Show annotations in actions' dbprint [view]
  • Update the dash-pipeline programs. [view]
  • Simplify the DPDK PTF build and test scripts. [view]
  • Encode more P4Runtime constraints for the behavioral model. [view]
  • [P4Testgen] Add more trace information to P4Testgen [view]
  • Add an option to only generate tests which improve coverage. [view]

Release v1.2.4.4 [view]

  • Get host architecture dynamically while downloading protoc binary [view]
  • Change PNA port width to 32 instead of 9. [view]
  • Build the libbpf library during the cmake configuration process [view]
  • backends/ebpf: Add support for XDP model. [view]
  • Dpdk backend: Remove illegal instruction generation, reject operations on >64bit operands [view]
  • [P4Testgen] Remove untested/unreliable P4Testgen features. [view]
  • Do not panic when user specifies impossible types for declarations [view]
  • backends/ebpf: Fix #4098 by renaming conflicting write_partial macro. [view]
  • Do not allow 'void' for lookahead type [view]
  • Increase the timeout of the switch.p4 p4_14 program. [view]
  • [P4Testgen] Minor improvements and fixes for P4Testgen. [view]
  • Hashvec-based maps to save memory [view]
  • Move solver class to lib folder. [view]
  • Fix whole header move instructions for DPDK [view]
  • Add error message for non-package main declaration [view]
  • Do not use equ for mandating a minimum size. [view]
  • eBPF backend: generate P4Runtime files if required [view]
  • Allow lookahead of structs with size of 0 [view]
  • Fix incorrect learn action in case of learner table invoked from nested controls
  • Sane handling of P4C_DEFAULT_X envvars in p4c [view]
  • Separate Parser and Post-parser code C code [view]
  • Add error message for slice with negative indexes [view]
  • Fix invalid string format specifier [view]
  • Perform type inference after constant-folding a code fragment [view]
  • Fix incorrect installation link in P4Testgen README [view]
  • Resolve P4tc ebpf c issues [view]
  • ci/release: enable push [view]

Release v1.2.4.3 [view]

  • ci/release: create tagged container images [view]
  • Remove P4Testgen codeowners file. [view]
  • Migrate Automatic Exec Groups by adding a toolchain parameter to the affected actions [view]
  • Fix linking with Protobuf 23 [view]
  • Fix MAC Address endianness issue [view]
  • Add a comment on a not strictly necessary grammar rule [view]
  • Use namespace for dpdk PTF tests [view]
  • Added hooks in p4RuntimeArch and p4RuntimeSerializer [view]
  • [P4Testgen] Add documentation to P4Testgen [view]
  • Continuing the implementation of initial entries support in p4c [view]
  • Minor tweaks [view]
  • [P4Testgen] Allow building p4testgen without BMV2 target [view]
  • Use libbacktrace for stack dumps if available [view]
  • Pull the libbpf library with FetchContent instead of submodules and a script. [view]
  • Add a PTF test CI pipeline for p4c-dpdk on the DPDK SoftNIC [view]
  • Migrate STF scripts to the STF parser library. Modernize stale run-bmv2-test.py code. [view]
  • Fix header stack assignment in p4c-dpdk [view]
  • [P4Testgen] Add target-specifc P4Testgen gtests [view]
  • Update GoogleTest and install it via FetchContent [view]
  • Automated Release v1.2.4.2 [view]
  • Make sure we ignore warnings in the Protobuf dependency source code. [view]
  • Update P4Runtime and use FetchContent instead of a submodule. [view]
  • Fix missing header for intmax_t typedef [view]
  • Install Protobuf using FetchContent. [view]
  • Add test program that uses 'priority' as identifier of a few kinds [view]
  • Allow building testgen without P4TEST enabled [view]
  • Add an option to the DPDK P4C back end to generate TDI builder configurations. [view]
  • Try to fix Opensuse certificate errors. [view]
  • Update the plotting script. [view]
  • Fix an infinite loop in the coverable nodes scanner. [view]
  • Fix #4067: Add static casts required by newer versions of G++ [view]
  • Fix MacOS installation typo. [view]

Release v1.2.4.1 [view]

  • [P4Testgen] Make the ranges of supported ports a command line parameter for P4Testgen [view]
  • Allow building the compiler without P4TEST enabled [view]
  • Avoid using reserved identifiers as include guards [view]
  • Don't omit the apply block label in P4Control::dbprint [view]
  • Fix crash in eliminateTuples [view]
  • Fix parser so that priority can be used in expressions [view]
  • [P4Testgen] More fixes to the refers_to and p4_asserts parser [view]
  • Add Bazel build rules for P4TestGen [view]
  • Include annotations for new_type messages. [view]
  • [P4Testgen] BMv2 test generation improvements [view]
  • Change Dockerfile to build p4tools by default. [view]
  • Wrap the TC defines in a namespace, use constexpr. [view]
  • Fixed tc table type [view]
  • Cleaner dbprint of if-else if chains [view]
  • Fix race condition for parallel PTF nanomsg tests by using network namespaces. [view]
  • [P4Testgen] Control the Z3 dependency in CMake using fetchcontent, generalize FindZ3.cmake [view]
  • Remove old ipaddr python module [view]
  • Use a version of simple switch that uses nanomsg instead of virtual interfaces for PTF tests. [view]
  • Fix incorrect boolean cast in the Z3 solver implementation. [view]
  • [P4Testgen] Miscellaneous fixes for P4testgen [view]
  • Remove execution state from the symbolic executor, make it a parameter. Simplify SelectedBranches. [view]
  • Reduce overtainting by short-circuiting some expressions and extern invocations. [view]
  • Hotfix for failing MacOS tests. Pin boost. [view]
  • Dpdk Backend: Fixed target_name and action parameter bitwidth [view]
  • Remove the array indices conversions and handle indices in the interpreter. [view]
  • [P4Testgen] Simplify the model [view]
  • p4c-pna-p4tc : new TC backend for p4c [view]
  • [P4Testgen] Remove complete from the model, make it part of the evaluation step instead. [view]
  • Implement support for non-const table entries [view]
  • Also suppress no-gnu-zero-variadic-macro-arguments warnings for MacOs. [view]

Release v1.2.4

  • [P4Testgen] Open up P4Testgen interface. [view]
  • [P4Testgen] Create abstract execution state with utility functions - move copy-in/out to control/parser blocks. [view]
  • cmake: Fix include search for Z3 in testgen library [view]
  • [P4Testgen] Move some table code into helper functions, move gen_eq to "common" folder [view]
  • Properly track indices when removing parser value sets from the select cases [view]
  • Open up ResolutionContext interface a bit [view]
  • Add a simple PSA test program and STF test to verify parser_error ope??? [view]
  • lib/crash.cpp: addr2line: fcntl calls in pipe initializations fixed. [view]
  • [P4Testgen] More P4Tools refactoring work. [view]
  • [P4Testgen] Fix small issues with metadata test backend. Add more functions to IR utilities. Merge default value function. [view]
  • [P4Testgen] Also include table entries in the coverage set. [view]
  • Allowing local_copyprop to propagate MethodCallExpression into table ??? [view]
  • [P4Testgen] Fix include paths [view]
  • [P4Testgen] More StateVariable refactoring. Allow PathExpression to be state variables. [view]
  • Make P4_16 the default parser option. [view]
  • misc helper functions [view]
  • NVFMSA-2399 Fix initialization-order-fiasco of P4CoreLibrary instance [view]
  • [P4Testgen] Implement meter support for the BMv2 V1model PTF test back end [view]

Release v1.2.3.9 [view]

  • [P4Testgen] Clean up the implementation of the BMv2 clone externs. [view]
  • Split state variables and symbolic variables. Stricter type checking. [view]
  • Run linters across test folder. [view]
  • Add some more type information to the strength reduction pass. [view]
  • FreeBSD patches [view]
  • Also include the backend IR files in the ir-generated library file. [view]
  • Set up P4C for IWYU [view]
  • Make StateVariable an IR class that accepts IR::Member. Use ICastable for some nodes. [view]
  • Cleanup some P4Testgen code. [view]
  • Bump Bazel dependency versions to enable using latest Bazel [view]
  • Add style and formating files for Python. Format Python code. [view]
  • Implement support for default initializers (...)] [view]
  • Always insert instantiation statement at the end of the local statement list [view]
  • ir generator fixes + cleanup [view]
  • initialize json pointer (coverity fix)] [view]
  • ebpf/PSA: Fix weekly PTF tests [view]
  • Resolve types in the prepend internal extern. [view]
  • Change array index[] in table keys in context.json to $ to match with the key name in bfrt.json [view]
  • Clean up the trace event class of P4Tools. [view]
  • Remove gsl-lite module. Introduce std::referencewrapper. [view]
  • Remove the inja submodule and replace it with a CMake fetchcontent instrumentation. [view]
  • Remove boost variant from Tools. [view]
  • Fix the following issues [view]

Release v1.2.3.8 [view]

  • Add documentation on adding test data [view]
  • Make cpplint use python3 explicitely. [view]
  • Eliminate typedefs when resolving constructor type declaration [view]
  • Run IWYU across tools again to clean up some includes. [view]
  • Better logging for lists/sets of things that take multiple lines
  • Implement a PNA-DPDK extension with a metadata test back end for P4Testgen [view]
  • Introduce stack initializers [view]
  • Update cpplint.py [view]
  • Clean up the commit hook installation script. [view]
  • Replace boost::optional with std::optional. [view]
  • Remove boost::filesystem from P4Testgen. [view]
  • Support for invalid union expressions [view]
  • Dash reference files. [view]
  • Add a metadata collection mode. [view]
  • Remove predication pass from p4test [view]
  • Fix context generation when both --context and --bf-rt-schema options are supplied [view]
  • Direct cast is possible between equivalent types [view]
  • p4tool: Fix build with Z3 installed in non-standard path [view]
  • testgen: Add missing include [view]
  • Rename some exploration strategies - Simplify DFS and random selection [view]
  • Use Ubuntu 22.04 for Testgen PTF tests. [view]
  • Try out a simpler advance expression calculation. [view]
  • Third party libraries are now included as SYSTEM [view]
  • Refactor P4Testgen strategies - Part 1. Add a new strategy - greedy search. [view]
  • Add an explicit optional match key type. [view]
  • Add the DASH BMv2 model to the tested programs. [view]
  • Remove @vhavel from the list of P4Testgen code owners. [view]
  • Dpdk Backend: Add support for assignments to and from large (>64-bit)] operand [view]
  • ebpf/PSA: Add support for wide fields in parser value_set [view]
  • Fix mask calculation for concat operator [view]
  • Add an explanation for unity builds. Add a deprecation warning. [view]
  • Resolve parser states at once instead of resolving them iteratively. [view]
  • Do not allow arguments with type table, control, etc [view]
  • CMake build tweaks [view]
  • Rework testutils.py [view]

Release v1.2.3.7 [view]

  • Test support for wide fields in ActionProfile and ActionSelector [view]
  • Fix up the refers_to parser. [view]
  • ebpf/PSA: Support for wide fields in Digest [view]
  • Fix varbit handling [view]
  • SplitFlowVisitor improvements
  • Deprecate unified build in favor of unity build. [view]
  • Collect and flatten local struct decls [view]
  • Fix warnings in compilation using clang 15 [view]
  • Add support for toeplitz hash [view]
  • Add support for flattening header union stack [view]
  • Container arguments with type infint are treated as type variables [view]
  • Build with -pedantic, fix problems [view]
  • CI: Find protobuf and pass it to cmake on macOS [view]
  • Install & use GCC 9 in Ubuntu 18 build [view]
  • add a feature to control logging via an annotation on annotated IR ob??? [view]
  • Add assert and assume mode for testgen. [view]
  • SplitFlowVisitor to better capture split/join in ControlFlowVisitor
  • Replace invalid clone id 0 with 1 for selected BMv2 programs [view]
  • Fix up one-shot-action-selectors with action arguments. Appropriately rename some P4 table programs. [view]
  • Fix bug in parserUnroll [view]

Release v1.2.3.6 [view]

  • log: Add a format_container helper & use it [view]
  • Unbounded random strategy to pick a branch for test generation [view]
  • Dpdk Backend: Add IPSec support [view]
  • Update test to be backend agnostic by removing allocation specific code for match groups [view]
  • Refactor Python testing scripts and utilities - Part 1 [view]
  • Move p4runtime arch handler class declaration to header file [view]
  • Fix flawed code in up4.p4 and the pins switch models. [view]
  • Fix hardcoded tests line. [view]
  • ebpf/PSA: Support for wide fields in Register and Meter [view]
  • Support "clone" function for BMV2 PTF [view]
  • [P4testgen] Coverage script [view]
  • Simple proof of concept PTF test for BMV2 test framework. [view]
  • Emit action sel id as in bfrt [view]
  • Require action_run to be within a switch statement [view]
  • Table application results are not comparable [view]
  • Correction of PTF tests for BMV2 [view]
  • Fix ckadd argument [view]
  • Fix clang formatting
  • Streamline seed initialization and try to minimize nondeterminism in P4Testgen. [view]
  • Add stop metrics for P4Testgen. Sanitize some P4Testgen options. [view]
  • Avoiding choosing the same port as egress port for clone. [view]
  • Testgen: allow block param initialization with taintexpr [view]
  • Fix clang_format mismatch. [view]
  • Cannot compare externs [view]
  • Make {#} a single token [view]
  • Experimental: support for trailing commas [view]
  • Unify ctxt json's id with other runtime files [view]
  • Drop flawed input-packet-only option. [view]
  • [dpdk] Emit a pseudo header, for dpdk instructions which require [view]
  • Simplify DoConstantFolding::postorder [view]
  • Not all Type_InfInt are the same - keep track of ones that need to be unified [view]
  • Forbid @optional parameters in some places [view]
  • Make ports an int32 type. [view]
  • Equal types are always equivalent [view]
  • Fix IndexedVector methods and constructor [view]
  • Refactor ci-build.sh script. [view]
  • Move timer from testgen to lib folder. [view]
  • Utility edits for P4Tools. [view]
  • Update inja and fix inja formatting. [view]
  • Dpdk Backend : Do not treat BAnd expresion in table key as simple expression [view]
  • initialize direction metadata at begining of pipeline [view]
  • Fix for STF tests with BMv2 when Scapy 2.5.0 is installed [view]

Release v1.2.3.5 [view]

  • Use big_int for match_t so can match wider that 64 bits
  • ebpf/PSA: Checksum support for fields wider than 64 bits [view]
  • Constant-fold isValid calls when possible [view]
  • Always emit the action selector constants in hex [view]
  • Forbid generic externs for in parameter values [view]
  • ebpf/PSA: improve support for wide fields [view]
  • Use https with opensuse repositories [view]
  • Remove permissions. [view]
  • Fix bazel version to 5.4.0 [view]
  • ci: update actions [view]
  • Build (only)] container images for new PRs [view]
  • Generate warning when 0 tests are produced [view]
  • Fix container build [view]
  • Run build and tests directly on Ubuntu 20.04, 22.04 without docker [view]
  • eBPF/PSA: add support for parser input metadata [view]
  • Run MacOS tests in correct directory. [view]
  • Option to produce tests exclusively with output packets [view]
  • Fix non-contiguous table keys when keys come from different header and metadata struct but existing metadata keys are already contiguous [view]
  • Remove backends from CMake include paths. [view]
  • Check whether a test back end has been provided. [view]
  • Dpdk Backend: Fix action selector and action profile to apply the group/member tables only on base table hit [view]
  • Fixed missing invocation of Address Sanitizer [view]
  • Ignore formatting PR from blame. [view]
  • Add missing semicolon at end of Bison rule in p4parser.ypp [view]
  • Apply clang-format to ir and lib files. [view]
  • Fix non-consecutive table keys for add_on_miss table [view]
  • Refactor add_cpplint_files and add_clang_format files to support downstream projects, large file numbers. [view]
  • Switch cases can fall through. [view]
  • Check that value sets have a constant constructor argument [view]
  • PSA/ebpf backend: add support for generating programs for XDP hook [view]
  • Raise minimum required CMake version to Ubuntu 18.04 version. [view]
  • Clean up the includes in the IR folder [view]
  • Disallow Type_Control as a tuple argument [view]

Release v1.2.3.4 [view]

  • Propagate def files upwards in the correct order from extensions and modules. [view]
  • List contributors to P4Tools backend [view]
  • eBPF/PSA: Implement caching for ActionSelector, LPM and ternary tables [view]
  • Unroll finite loops in programs which have infinite loops. [view]
  • Try to merge copyHeaders into copyStructures. [view]
  • Add support for register extern [view]
  • Move some P4Tool compiler passes to the midend folder. [view]
  • Small clang-format and P4Tools README fixes. [view]
  • Fixed issues found by static analysis [view]
  • Expand google.protobuf.Any when emit p4info in text format [view]
  • Remove unused files in p4_16_samples_outputs directory [view]
  • Emit table config [view]
  • Enable auto var initialization with pattern in Clang CI build [view]
  • Defensive programming suggested by static analysis - check iterator bounds [view]
  • Method calls in the actions list must invoke actions [view]
  • Arithmetic and bitwise operations are typechecked the same way [view]
  • Off by one warning error in constant-folding for large shifts [view]
  • Fix bug caused by uninitialized variable in typechecker [view]
  • Fix advance condition calculation. [view]
  • P4Testgen: Fix off-by-one bug in taint checking for slices [view]
  • PSA/eBPF: Enable passing packets up to the kernel stack [view]
  • Restructure P4Tools to easily add new modules. [view]
  • P4Tools: Unify packet sizing options. [view]
  • P4Tools: Implement default action override for BMv2 STF. [view]
  • Try to avoid gcc-specific include headers for IWYU. [view]
  • Do not allow type arguments that are generic if they are not specialized [view]
  • Run IWYU on P4Tools. [view]
  • Dags needs to be revisited when renaming metadata [view]
  • Add PINS examples to test suite. [view]
  • Linter usability improvements. [view]
  • Add ignore revs file for clang-format PR. [view]
  • Alternate strength reduction and constant folding to eliminate constants [view]
  • Support for list types and literals [view]
  • Enforce clang-format on the entire code base. [view]
  • Cleanup warnings produced by Clang [view]
  • Fix name shortening [view]
  • Add a dedicated target for cpplint, if no files are set. [view]
  • Update p4_library.bzl [view]
  • Correctly infer argument types for constructor calls [view]
  • Enabled permissive by default. [view]
  • PSA/eBPF: use slice-by-8 algorithm for CRC-32 [view]
  • create dpdk specific pna.p4 and extend it [view]
  • Fix tmpMask alignment [view]
  • Insert casts in action call arguments [view]
  • Fix dpdk test infrastructure to enable comparison of error output [view]
  • Experimental: literal for invalid header [view]
  • Add a p4-constraints and @refers_to parser to P4Tools. [view]
  • Update PSA include files to match recent changes in version from PSA spec [view]
  • Fix cpplint CMake check. [view]
  • Rename psabpf repository into NIKSS [view]
  • Initialize drop metadata to 1 as per PSA specification [view]
  • Migrate P4Testgen tooling to core P4C (IWYU, clang-format, cpplint, clang-tidy, git hooks)] [view]
  • Build DCG if pattern flag was enabled [view]
  • DPDK Backend : Minor fixes [view]
  • Make RemoveUnusedDeclarations constructor protected. [view]
  • Use vector to populate checksum struct [view]
  • Remove useless grammar rule [view]
  • DPDK Backend: Direct counter and direct meter support [view]
  • 'size' is always a legal table property [view]
  • Do not allow action invocations with type arguments [view]
  • Clone empty blocks before def-use analysis [view]
  • Tighten checks for NoAction [view]
  • Check if 'match_kind.exact' is defined when expanding switch statements [view]
  • PSA/eBPF: retrieve interface numbers from OS in PTF tests [view]
  • Fix and improve ordered_map & ordered_set [view]
  • Handle correctly general switch statements when simplifying [view]
  • Allow implicit casts in switch labels; improve error message [view]

Release v1.2.3.3 [view]

  • CI: add sanitizers [view]
  • Fix compilation issues after reachability merge [view]
  • Reachability Engine for P4Tools [view]
  • Fix incorrect tests : totalLen field of ipv4 header, action name in add_entry call [view]
  • Tighten p4c for add-on-miss [view]
  • Update hex constants to use uppercase [view]
  • Migrate some P4Testgen utilities to lib folder. [view]
  • Add more code owners. [view]
  • Modify test script running PTF tests for PSA/eBPF [view]
  • Fix PTF eBPF weekly CI job [view]
  • Update comments in issue2201-bmv2.p4 to match current behavior [view]
  • Rename .stf file to match corresponding default_action_ubpf.p4 file [view]
  • Do not constant fold mux before it has been typechecked [view]
  • An action profile implementation for v1model protobuf. [view]
  • Remove GMP support. [view]
  • Fix typo in test program for reachability tests. [view]
  • Clean up two desynced tests. [view]
  • switch labels must be path expressions [view]
  • Dpdk Backend: Minor changes to add error check for mask operands and adding optional match kind to pna.p4 [view]
  • Allow serenum members initializers refer to other serenum members [view]
  • Remove unused expected output files -- their test programs were renamed [view]
  • CI: added build with clang [view]
  • Remove unncessary v1model include in P4 test programs - fix up programs that use v1model externs. [view]
  • Fix extra toP4 whitespace after annotations and declaration instances. [view]
  • Run def-use analysis again after inlining [view]
  • Disable libcall optimizations to avoid infinite loops in malloc [view]
  • Add missing select-struct.p4 test program to p4_16_samples directory [view]
  • Remove obsolete expected output files issue1409*.p4 [view]
  • Remove unused expected output files key_ebpf-issue-1020*.p4 [view]
  • Add missing test program precedence-lt.p4 [view]
  • Add missing test program fwd-bmv2-psa.p4 [view]
  • Add missing P4 test program issue2495-bmv2.p4 [view]
  • Remove unused expected output file [view]
  • Remove unused expected output file [view]
  • Remove expected output for non-existent action_param_serenum.p4 test program [view]
  • Tables cannot be compared [view]
  • Remove header field size constraints, now [view]
  • Implement the eBPF extension for P4Tools' P4Testgen [view]
  • [p4Tools and p4Testgen] New exploration strategy for test generation [view]
  • Fix taint analysis that was too conservative. [view]
  • Dpdk backend: Support for large keysize >64 bytes with additional restrictions [view]
  • made "errorCount", "warningCount", and "maxErrorCount" [all "unsigned int"] be "protected" rather than "private" in "class ErrorReporter" in "error_reporter.h"
  • Fix shift overlimit error for valid bit slicing operation [view]
  • Add a reachability analysis to P4Tools [view].
  • Introduce cmake option to enable -Werror; use it for CI/docker builds [view]
  • Add CODEOWNERS file for P4Tools. [view]
  • More fixes to the P4Tools repository. [view]
  • Cpplint fixup. [view]
  • Switch to macOS 11 [view]
  • Several small compilation fixes for tools. [view]
  • Update gitmodule to fix cloning with https [view]
  • add ICastable interface to Backtrack::trigger [view]
  • Contribute the P4Tools platform and P4Testgen [view]
  • Fixing bug for ParserUnroll application to a p4 program with a header union [view]
  • fixed spelling in CMakelists.txt in 2 different lines [view]
  • Switch to C++17 standard [view]
  • Use prefixedNonTypeName to simplify the expression production in parser [view]
  • Entries can be implicitly cast to the key type [view]
  • BMv2: fix hashing non-tuple causing segfault [view]
  • PSA/ebpf backed: update psabpf-ctl to the latest version [view]
  • Change warrning messages in ParserUnroll [view]
  • New class ICastable; new type constraint added [view]
  • Add note to DPDK README that PSA egress is not implemented [view]

Release v1.2.3.2 [view]

  • Run PTF tests under different kernel versions [view]
  • add set_member_id in action list for action selector [view]
  • Dpdk backend: Flatten header union into individual fields [view]
  • Set C++ standard only if it is not set at parent scope [view]
  • Fixing bug in ParserUnroll for infinite loops without header stacks [view]
  • remove unused lib/alloc.h
  • Constant-fold static_assert calls [view]
  • Dpdk Backend: Update default timeout values for learner table entries [view]
  • Since dpdk now Support large struct fields(more than 64 bits)] as key [view]
  • Fix hdr align [view]
  • Forbid use of .lastIndex outside of parsers [view]
  • Fixing bug in parserUnroll [view]
  • Fix: prevent copy elimination for statement which does not support constant values [view]
  • Fixes related to type and function specialization [view]
  • Prototype implementation of static_assert [view]
  • Silence -Warray-bounds for generated code for protobuf [view]
  • cmake: Fixed multi line comment [view]
  • Add new option to build p4c with LTO [view]
  • Load table action from json without 'name' field for BMV2 [view]
  • Add null check for default action property [view]

Release v1.2.3.1 [view]

  • Update protobuf installation instructions link [view]
  • Handle table.apply()].hit correctly in ubpf backend [view]
  • fixing bug for loop with one parser state only [view]
  • Update README.md [view]
  • Dpdk Backend: Fix support for non-zero action arguments for default action in a table using action selector [view]
  • Fix action param processing [view]
  • Fix incorrect CFG generated for BMV2 backend for switch statements [view]
  • Fix bug related to varbits width [view]
  • Delete keys that are empty tuples [view]
  • Support GCC-style options for writing dependencies to a file. [view]
  • Support inverted ranges [view]
  • Improve generation of unique strings [view]
  • missing return
  • Dpdk Backend: Allow non-constant arguments to mirror_packet extern [view]
  • Log/IndentCtl sanity/cleanup
  • readme: Update supported Ubuntu versions [view]
  • Fix ir_frontend_midend_control_plane build target [view]
  • Remove GMP dependency from BUILD.bazel [view]
  • Dpdk backend: optional and range match kinds translate to wildcard match for dpdk [view]

Release v1.2.3.0 [view]

  • Remove "frontends" from the include directories. [view]
  • Implicit casts between InfInt and Bit are allowed [view]
  • Dpdk Backend: Move Mux handling after simplifying select expression [view]
  • Remove undefined behaviour in pass manager initialization [view]
  • Add a compiler pass that adds missing IDs to control plane objects. [view]
  • Forbid packages, controls, etc as tuple fields [view]
  • Do not allow constructor calls of externs with abstract methods [view]
  • Fix include headers for lib/stringify.h [view]
  • Use Type_Dontcare for _ expressions in table entries [view]
  • pft-ebpf tests: update psabpf to fix tests [view]
  • Fix Missing metadata for temporary variables added for Mask operation [view]
  • DPDK Backend: Add support for tdi.json [view]
  • P4C-DPDK - Incorrect constant value when there is a substract operation involved with a constant [view]
  • Fixed build with older bison on Ubuntu 18 [view]
  • Add bazel support for p4c-dpdk compiler [view]
  • initial commit [view]
  • Values with type int are legal constants [view]
  • Fixed usage of yyFlexLexer with multiple parsers [view]
  • Prevent crash caused by incorrect error message [view]
  • ordered_set: operator<: Fix for a case of strict inclusion. [view]
  • DPDK Backend: Avoid compiler crash by handling possible types of length argument in packet extract for header containing varbit field [view]
  • DPDK Backend: Emit name information for externs in context json [view]
  • [dpdk] shorten label names and header instance type [view]
  • remove debug info [view]
  • Added new P4C option [view]
  • Avoid crash in ebpf backend by checking expected IR node kinds [view]
  • remove unused include [view]
  • Do not remove externs which are defined not in system files. [view]
  • Implement Copy Elimination for dpdk backend [view]
  • save annotations after parser unroll [view]
  • Handle constant folding for tuple/list constants [view]
  • loop unrolling: Use type of original expression [view]

Release v1.2.2.3 [view]

  • Inhibit compiler optimizations in GC malloc()] implementation [view]
  • Fix def-use analysis bug when handling virtual methods [view]
  • Only crash if the error count exceeds the maximum [view]
  • Use a helper to to define the cpp toolchain type [view]
  • Fix incorrect overload resolution for specialized (package)] types [view]
  • Always prepend local gtest include paths [view]
  • Add support of path expressions for a header stack inside parserUnroll [view]
  • Values with type int are legal constants [view]
  • collects decls from parser and control block [view]
  • Update BUILD.bazel to remove constat patterns from glob [view]
  • Remove apply()] calls to redundant parsers [view]
  • psabpf-ctl: update action-selector CLI - rename commands [view]
  • Fix incorrect copy propagation into table match keys [view]
  • Solving problems with HeaderUnion [view]
  • Update rules that require a cpp toolchain to use a helper function that defines the toolchain type. [view]
  • Improve the way we wait for commands in driver [view]
  • Fixing parserUnroll bug for sequential next operator usage [view]
  • Fix missing key initialization when header/metadata fields used as table keys are copied in new metadata fields [view]
  • actionSynthesis: add original source info to synthesized actions [view]
  • Use width_bits()] instead of size for constantFolding. [view]
  • BUILD_USE_COLOR=OFF disables colors for the C++ compiler [view]
  • Make bitvec helpers available as global, don't polute top-level namespace [view]
  • Bring commonly used builtin options under lib directory [view]
  • Update reference outputs [view]
  • Dpdk Backend: Enable header stack dynamic index elimination [view]
  • Add metadata fields uses as Member Expression [view]
  • Enable Automated Releases [view]
  • DPDK Backend: Fix action name used in learn instruction, minor fix in context json [view]
  • Fixing bug in HSIndexSimplifier path [view]
  • PSA-eBPF PTF tests: update psabpf to the latest version [view]
  • Dpdk backend: Add target_name field for tables to context json. [view]
  • Fixed comparison between two Type_Bits [view]
  • accept PSA_MeterColor_t in action parameter [view]
  • Type unification should always use the canonical type [view]
  • Dpdk backend: Minor changes in context json and learner table timeout values. Supercedes PR #3369 [view]
  • P4C-DPDK : Add support for Hash extern [view]
  • Add types for tables keys after switchElimination [view]
  • Do not allow variables with type Type_Parser/Control [view]
  • Remove unused variables in psa/ebpf backend [view]
  • String utility functions [view]
  • crash.cpp: Register names fixed for building under Cygwin. [view]
  • Added nullptr check into graphs backend [view]
  • Add old parser state in loopsUnroll if ExpressionEvaluator returns a error [view]
  • Use 0 as default PSA_PORT_RECIRCULATE value [view]
  • Add support for ternary const entries [view]
  • Improve error message when select types do not match [view]
  • Do not crash if constant width is 0 [view]
  • Allow value sets as labels when select()] is done on a constant [view]
  • Allow unification between serenum and underlying type [view]
  • Allow shifts with serenums on the RHS [view]
  • Unification of generic types can reduce to unification of Type_Name [view]
  • Fixed start state renaming for p4-14 translation using @packet_entry [view]
  • Validate value_set element types [view]
  • Do not generate TC Egress program if PSA Egress pipeline is empty [view]
  • Improve error message when validating select expressions [view]
  • Require a start state in parsers [view]
  • Use psabpf-ctl register command in PTF tests [view]
  • Dpdk: Fix missing initialization for table properties for add_on_miss tables in context json [view]
  • Do not specialize functions when arguments are type variables [view]
  • Add generic structs to P4Runtime digest example [view]
  • Fix control-plane generation for headers containing structs [view]
  • Check that parameter default values are compile-time known [view]
  • Fix handling of keys without name annotation in graphs [view]
  • [dpdk] Fix calculation of direction from input port [view]
  • DPDK Backend: Connection tracking support [view]
  • Update PSA-eBPF documentation [view]
  • Expand 'emit' calls in the ebpf backend [view]
  • Fix warnings generated by XDP helper program [view]
  • Fixes for Graph generation for switch(t.apply()].action_run)] [view]
  • Allow shifts with constant signed positive amounts [view]
  • Correctly handle don't care named arguments [view]
  • Avoid dereferencing nullptr in GetStackItemRef::baseRef [view]
  • Not all returns in parsers are disallowed [view]
  • Do not allow structure have specialized parsers as type arguments [view]
  • Fixing bug for concat elimination in SimpleSwitch [view]
  • Require generic return types to be specialized [view]
  • p4test does not support switch statements in actions [view]
  • Forbid instantiations in functions or methods [view]
  • Forbid methods to return int or string [view]
  • Emit table apply for switch expression with action_run [view]
  • Test for isValid as a header field [view]
  • Improvement of p4c-graphs backend [view]
  • Add support for LLD linker, cmake options for LLD and Gold [view]
  • Update used psabpf library for PTF tests (PSA/eBPF)] [view]
  • Preserve build failure semantics. [view]
  • [dpdk] Eliminate header copy [view]
  • DPDK Backend: PNA Pass metadata support [view]
  • Add UPF sample program for PSA/eBPF backend [view]
  • Add BNG sample program for PSA/eBPF backend [view]
  • Use ccache with Github actions [view]
  • Add cmake option to force-enable colors in build [view]
  • Do not crash on illegal uses of 'this' [view]
  • Allow specialized types for direct control/parser invocations [view]
  • Add support for ternary match kind to eBPF backend [view]
  • Stricter type checking for built-in methods [view]
  • Add L2L3-ACL sample program for PSA/eBPF backend [view]
  • Improve padding calculation in eBPF parser [view]
  • UBPF backend header files were not cpplinted [view]
  • Fix incorrect C code generation for ebpf control plane [view]
  • Add support for Random extern to PSA/eBPF backend [view]
  • Fix support for verify()] and error type to fully support verify()] in PSA/eBPF backend [view]
  • Implement DirectMeter extern for eBPF backend [view]
  • p4c: Handle spaces in file name [view]
  • Fix a typo in README [view]

Release 1.2.2.2 [view]

  • Point to PSA/eBPF implementation in main README [view]
  • Add support for parser value_set to eBPF backend [view]
  • Fixed bitvec.h [view]
  • Fix error message for cast to 'type' [view]
  • manage lifetimes of Visitor::visited [view]
  • Allow P4 filenames containing spaces [view]
  • DPDK Backend: Add support for recirculate()] extern [view]
  • Do not allow casts to struct types [view]
  • P4C-DPDK - Support Non-zero arguments for default action [view]
  • Implement Meter extern for eBPF backend [view]
  • Replace pna direction with register read [view]
  • Strength reduction should not remove some casts [view]
  • Try to cancel previous Jenkins runs [view]
  • Fix expansion of signed ranges to masks [view]
  • improving the driver re: the checking of input pathnames, improving error messages, trying to prevent misleading error messages. [view]
  • Allow casts int to int [view]
  • Add support for Hash extern to eBPF backend [view]
  • Add support for ActionSelector extern to PSA/eBPF backend [view]
  • P4C-DPDK: Emit error when struct fields >64-bit is present in the P4 [view]
  • DPDK Backend: Fix binary operations with 1st operand is not same as dst operand [view]
  • Solving problems with Header Union verify function (reopened)] [view]
  • Add support for Register extern to PSA/eBPF backend [view]
  • Fix Context json to emit target_action_name and NoAction [view]
  • [dpdk] Emit key name in context file as in bfrt and p4info [view]
  • Add support for DirectCounter extern to PSA/eBPF backend [view]
  • Insert type specializations before functions [view]
  • Remove incorrect test for recursion [view]
  • Add support for InternetChecksum extern to eBPF backend [view]
  • adding tests re the driver (1)] missing error messages and (2)] giving misleading error messages [view]
  • [dpdk] Shorten the Identifer name, including dots(.)] in Member expression [view]
  • Add --xdp2tc compiler flag for eBPF backend [view]
  • test: Update install_fedora_deps.sh [view]
  • Add support for ActionProfile extern to PSA/eBPF backend [view]
  • Constant fold casts of serializble enums [view]
  • Improve error messages during type checking [view]
  • Add support for Checksum extern and CRC16/32 algorithms to eBPF backend [view]
  • Add Digest extern to PSA/eBPF backend [view]
  • typedef with generic types requires type arguments [view]
  • Add support for Counter extern to PSA/eBPF backend [view]
  • Handle struct expression in ebfp backend [view]
  • Fixed underflow during row-access in the SymBitMatrix [view] [view]
  • PSA-eBPF: Add missing header name substitution in deparser [view]
  • DPDK Backend: Insert table keys generated by compiler closer to the standard and user metadata [view]
  • DPDK Backend: Move learn instructions constant argument to metadata [view]
  • Removed execute permission bits from all 3 of the P4 files that had them.
  • Add PTF test infra for eBPF backend [view]
  • Implement PSA for eBPF backend [view]
  • Represent unary plus in the IR [view]
  • Disable 'unused' warning for some psa.p4 externs [view]
  • P4C-DPDK-Support header field with Slice as a Table key [view]
  • typeChecker: make error message less confusing [view]
  • Compile the P4 compiler tools in host configuration [view]
  • Keep track of source position for p4-14 switch statement labels [view]
  • Split psa_switch.h into two files [view]
  • Improve efficiency of range translation to mask [view]
  • Added nullptr checks for l/rtype [view]
  • Implement EBPF deparser [view]
  • Add packet_in.length()] and packet_in.advance()] methods to a eBPF target [view]
  • sfinae-protect operator== StringRef overload [view]
  • DPDK: Implementation for non byte aligned metadata and header fields [view]
  • Comparisons of list expressions, structure-valued expressions, tuples and structs #3057 [view]
  • DPDK: Add support for "mirror_packet" PNA extern [view]
  • Type of a unary expression is not always the same as the input type [view]
  • Enable generation of pointer variables by eBPF codeGen [view]
  • Eliminate typedefs in bmv2-ss backend [view]
  • Struct expressions can be ConstantExpressions [view]
  • Solution for "Non Type_Bits type bool for expression" error [view]
  • Use 0 as action ID for NoAction and refactor eBPF table implementation [view]
  • Extend eBPF kernel target with support for additional BPF helpers and more types of BPF maps [view]
  • Fix off-by-one bug in source file position calculation [view]
  • from1.0: fix register type signess [view]
  • Print the current node type name when checkedTo fails [view]
  • DPDK: Fix core dump while generating bfrt json for PNA programs with action selector [view]
  • Fix cpplint errors for dpdk sources [view]
  • DPDK: Fix missing action definitions in spec file [view]
  • Refactor SetupJoinPoints to make it more extensible
  • Flatten local struct decl in dpdk [view]
  • Remove unnecessary check in conversion of log_msg to a JSON [view]
  • loop_revisit method for dealing with recursive loops in the IR [view]
  • Forbid egress pipeline in dpdk by default [view]
  • Improve error message for count()] in dpdk [view]
  • Handle bfrt Info for new type [view]
  • Add dpdk version string [view]
  • Add debug messages for generated eBPF programs [view]
  • Add correct and error test cases for structure-values expressions [view]
  • Treat match_kind as a regular type [view]
  • dpdk: Eliminate unused metadata fields [view]
  • Preserve some types in constant folding. [view]
  • Emit semicolon after method call [view]
  • Dismantle Mux expression in dpdk [view]
  • Moved FindRecirculated from .cpp to .h [view]