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.17 [view]
Breaking Changes đź›
- Remove ReferenceMap from majority of midend passes [view] (asl)
- Remove ReferenceMap from another set of midend passes [view] (asl)
P4 Specification Implementation
- Support for [lsb+:width] slices [view] (Chris Dodd)
Changes to the Compiler Core
- Fix parser symbolic interpreter to evaluate
StringLiteral
[view] (jhavrane)
- Add
Vector::dbprint
[view] (VladimĂr Ĺ till)
- Extend type checking to mark extern function call that returns enum as… [view] (hanw)
- Reorder subdirectory additions in
CMakeLists.txt
[view] (hanw)
- Add
LOGGING_FEATURE
macro [view] (VladimĂr Ĺ till)
- Add utilities for running modifications inside nested IR nodes [view] (VladimĂr Ĺ till)
- Set
PathExpression
type in ExpandLookahead
[view] (grg)
- Do not print confusing warning when a parser state contains an assignment to an l-value slice [view] (kfcripps)
- Minor code/comments cleanup in
SimplifyDefUse
[view] (kfcripps)
- Wrap
<64bit
types properly in loop unrolling [view] (Chris Dodd)
- Fix warning about
delete
not matching new
[view] (Chris Dodd)
Changes to the BMv2 Back Ends
- Clean up BMv2's
run-stf-test
script and integrate it with testutils
[view] (fruffy)
Changes to the TC Back End
- Change
tc
template define [view] (vbnogueira)
- Make number of masks default to 1 for exact tables [view] (vbnogueira)
- Handle
pna_main_parser_input_metadata_t
fields in the TC backend's parser [view] (vbnogueira)
- Implement Hash Extern for
P4TC
[view] (komaljai)
Changes to the DPDK Back End
- Support for 128-bit bitwise operation [view] (Sosutha)
Changes to the P4Tools Back End
- [P4Testgen] Move newline stripping from trace to
TestFramework
[view] (VladimĂr Ĺ till)
- [P4Testgen] Run typechecking after front and mid end [view] (fruffy)
- Build
Z3
from source instead of downloading precompiled binaries [view] (fruffy)
Other Changes
- Ignore
brew
dependency installation to fix breakages on MacOS CI [view] (fruffy)
- Remove
ReferenceMap
from top-level frontend passes [view] (asl)
- Add instructions on GitHub CI tests, including triggering optional ones [view] (jafingerhut)
- Fix a recently introduced typo [view] (jafingerhut)
- Fix Fedora CI build [view] (fruffy)
- Add missing
ENABLE_*
flags to README [view] (jafingerhut)
- Bump up
grpcio
version to fix Mac M1 CI issue [view] (hanw)
- Require the driver binary as a test input [view] (fruffy)
- [P4fmt]: Attach comments to IR Nodes [view] (snapdgn)
- Contribute Intel Tofino compiler backend to
p4c
[view] (hanw)
- Remove Tofino-specific Python packages from
requirements.txt
[view] (fruffy)
- Fix Fedora build and CMake warnings for versions greater than CMake 3.24 [view] (fruffy)
- Fix case of default CMake build mode [view] (fruffy)
Release v1.2.4.16 [view]
Breaking Changes đź›
- Allow extending
ToP4
, clean its constructors [view] (VladimĂr Ĺ till)
Changes to the Compiler Core
- Reduce the number of memory allocations in
def-use
[view] (asl)
- Split the
start
state more conservatively when a parser contains decl
initializers [view] (kfcripps)
- Add missed include [view] (asl)
- Only process
IR::Path
s inside of IR::ParserState
contexts in MoveInitializers
[view] (kfcripps)
- Factor common base
ExternCall
for ExternMethod
/ExternFunction
[view] (Chris Dodd)
- Issue - 4883 Remove unused actions whose name starts with
"__"
[view] (kfcripps)
- Allow
--Wdisable
to take precedence over --Werror
for warning messages [view] (kfcripps)
- Allow keywords to be used as annotation names [view] (Chris Dodd)
- Avoid copying
out
/inout
args when inlining functions [view] (Chris Dodd)
- Clean up the
P4-14
dependent code [view] (fruffy)
- Fix
Type_Indexed::at
[view] (Chris Dodd)
- Make
--top4
matching case-insensitive [view] (fruffy)
Changes to the TC Back End
- Add
inst_type
field in introspection.json
[view] (komaljai)
Changes to the P4Tools Back End
- [P4Tools] Track invocations in the timer to measure per function statistics [view] (fruffy)
- [P4Testgen] Unify compiler and tool options; ensure options context is initialized correctly [view] (fruffy)
- [P4Tools] Clean up use of
P4
prefix for errors, warnings, and logs [view] (fruffy)
Other Changes
- Bump
peter-evans/create-pull-request
from 6 to 7 [view] (dependabot)
- Docs: Update documentation instructions [view] (AdarshRawat1)
- Remove workaround required for MacOS CI installation [view] (fruffy)
- Docs: Changelog release update for v1.2.4.15 [view] (AdarshRawat1)
Release v1.2.4.15 [view]
Breaking Changes đź›
- Fixup/cleanup
IR::Type::width_bits()
[view] (Chris Dodd)
- Promote
P4
to be the project-wise top-level namespace [view] (qobilidop)
P4 Specification Implementation
- Allow concatenation of string literals at compile time [view] (VladimĂr Ĺ till)
Changes to the Compiler Core
- Ensure correct overload for
diagnose()
is called even in Transform
context [view] (asl)
- Fix ASAN issue in
lib/cstring
[view] (Matthew Lam)
- Ensure proper
operator<<
is used during debug printing [view] (asl)
- Fix linter complaints and enable
-werror
for MacOS [view] (fruffy)
- Trim overlong source fragments in error messages [view] (Chris Dodd)
- Pass to reduce added flags from
RemoveReturn
[view] (Chris Dodd)
- Add
operator<
to some compiler classes [view] (fruffy)
- Make
isSystemFile()
part of parser options file [view] (fruffy)
- Add empty block for trailing case(s) with no code [view] (Chris Dodd)
- Silence
-Wswitch-enum
from bison generated file [view] (Chris Dodd)
- Sync
dump.h
with dump.cpp
[view] (qobilidop)
- Make type checking a true read-only visitor [view] (asl)
Changes to the Control Plane
- Set the initial default action for tables when generating a
P4Info
[view] (fruffy)
Changes to the BMv2 Back Ends
- Fix incorrect BMv2 include [view] (fruffy)
Changes to the TC Back End
- Support of
Digest
extern in P4TC [view] (Komal Jain)
- Support for
is_net_port
and is_host_port
externs [view] (Komal Jain)
- Reduce extern parameters size to 64 bytes [view] (vbnogueira)
- Remove priority field from ternary table's action [view] (vbnogueira)
- Support for
Meter
and DirectMeter
extern in P4TC [view] (Komal Jain)
Changes to the P4Tools Back End
- [P4Testgen] Represent bits of width zero as an empty string [view] (fruffy)
- Reenable compilation tests for P4Smith [view] (zzmic)
- [P4Tools] Clean up the P4Tools GTest infrastructure [view] (fruffy)
- [P4Smith] Remove stray print in the smith code [view] (fruffy)
Other Changes
- Docs: Changelog release update for v1.2.4.14 [view] (Adarsh Rawat)
- Feat: PR Preview Workflow via GitHub Pages [view] (Adarsh Rawat)
- Fix: PR Preview URL to Use Base Repository [view] (Adarsh Rawat)
- Bump Documentation build workflow action from Doxygen v1.11.0 to v1.12.0 [view] (Adarsh Rawat)
- Bump actions/github-script from 6 to 7 [view] (dependabot)
- Docs: Content Organization and Documentation Updates [view] (Adarsh Rawat)
- [p4fmt]: Add a pretty printer for p4fmt [view] (snapdgn)
- Docs:Content Organization & Add 'Frontend' and 'Midend' Sections [view] (Adarsh Rawat)
- Update BDWGC [view] (fruffy)
- Remove redundant tests [view] (Andy Fingerhut)
- Report specific uninitialized struct field in
simplifyDefUse
[view] (Chris Dodd)
- Update namespace usage in
.gdbinit
[view] (qobilidop)
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
LocationSet
s 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
MethodCallStatement
s 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 diagnostic
s 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]