P4C
The P4 Compiler
Loading...
Searching...
No Matches
Releases

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.14 [view]

Breaking Changes 🛠

  • P4C Options cleanup [view] (Fabian Ruffy)
  • Make preprocess and getIncludePath const functions. [view] (Fabian Ruffy)

P4 Specification Implementation

  • Forbid case-after-default, tweak error messages [view] (Vladimír Å till)

Changes to the Compiler Core

  • Improve cstring cache internals [view] (Anton Korobeynikov)
  • Fix loop unrolling bugs related to issue4739 [view] (Chris Dodd)
  • Make HasTableApply a resolution context, so it could resolve declarations on its own if desired [view] (Anton Korobeynikov)
  • [#4661] Do not unconditionally mark extern method calls as compile-time constants. [view] (Kyle Cripps)
  • Fix loc_t::operator< when parent is nullptr [view] (Kyle Cripps)
  • Introduce string map class and switch to it [view] (Anton Korobeynikov)
  • Require type decl in for..in loops [view] (Chris Dodd)
  • Add UnrollLoops::Policy to control unrolling per backend [view] (Chris Dodd)
  • Extend & fix FunctionInliner [view] (Anton Korobeynikov)
  • [NFC] Split TypeInference [view] (Anton Korobeynikov)
  • Map written LocationSets to program locations (loc_t) instead of IR::Expression*s [view] (Kyle Cripps)
  • Store exact type, not one of the base class to inhibit assertion [view] (Anton Korobeynikov)
  • misc fixes/additions [view] (Chris Dodd)
  • Remove multimap usage from memoizeDeclsByName [view] (Anton Korobeynikov)
  • Make don't care args action-local when used in actions [view] (Kyle Cripps)
  • Add string literal support in constant folding. [view] (Fabian Ruffy)
  • Truncate shifts to the maximum constant bit-width in the constant folding pass. [view] (Fabian Ruffy)
  • Make SymbolicVariable part of the core IR. [view] (Fabian Ruffy)

Changes to the BMv2 Back Ends

  • Move ProgramStructure out the BMv2 folder such that it can be used in other back ends. [view] (Fabian Ruffy)
  • Add skeleton implementation for BMv2 PNA Backend [view] (rupesh-chiluka-marvell)

Changes to the TC Back End

  • Support of InternetChecksum in P4TC [view] (Komal Jain)
  • Fix broken CI runs because missing override in TC code. [view] (Fabian Ruffy)

Changes to the P4Tools Back End

  • P4Testgen logging cleanups. [view] (Fabian Ruffy)
  • For-loop and for-in-loop support for P4Smith [view] (zzmic)
  • [P4Testgen] Refactor the P4Testgen extern implementation. [view] (Fabian Ruffy)
  • [P4Testgen] Initialize the testgen targets when invoking the library API [view] (Fabian Ruffy)
  • [P4Testgen] Pass compiler options as argument instead of retrieving them from the context. [view] (Fabian Ruffy)
  • [P4Testgen] Hotfix for failing P4Testgen benchmark test. [view] (Fabian Ruffy)
  • [P4Testgen] Fix problems with the reachability pass. [view] (Fabian Ruffy)
  • Replace boost::container::flat_map with absl::btree_map in P4Tools. [view] (Fabian Ruffy)

Other Changes

  • Docs : Changelogs release update for v1.2.4.13 [view] (Adarsh Rawat)
  • Docs : Add Home page for documentation [view] (Adarsh Rawat)
  • P4Fmt reference checker [view] (Nitish Kumar)
  • Update the PINS programs. [view] (Fabian Ruffy)
  • Add test program to verify compile-time error if no type in for-in loop [view] (Andy Fingerhut)
  • Add tests from issue 4507 [view] (Kyle Cripps)
  • Update README.md instructions for running doxygen [view] (Andy Fingerhut)
  • Fix: Links in Generated Documentation [view] (Adarsh Rawat)
  • Minor Fix: links in P4Smith page [view] (Adarsh Rawat)
  • Add missing BUILD file dependencies. [view] (Matthew Lam)
  • Minor fix : Heading of portable_common [view] (Adarsh Rawat)
  • Automated Release v1.2.4.14 [view] (github-actions)

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 <iterator> 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]