Skip to content

Fix/namespace tofino #5217

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 15 commits into from
Closed

Conversation

AkarshSahlot
Copy link
Contributor

@AkarshSahlot AkarshSahlot commented Apr 3, 2025

Changes: I wrapped all bfn with p4 ,like the files which were in form bfn{ ,are now in form of P4{ BFN {.

the files which were lacking namespaces I added them , this was mainly in alloc file ,
total 132 files were changed with proper namespace nesting
Verified all changes compile successfully
Maintained existing functionality while improving code organisation

[Some files are attached below to description that species that no llm was used or taken help with,
Uploading IMG_0812 2.JPG…
as a
Proof of work.
]

the files bfn which are wrapped with p4 are :-
backends/tofino/bf-p4c/mau/dynhash.cpp
backends/tofino/bf-p4c/mau/dynhash.h
backends/tofino/bf-p4c/mau/input_xbar.h
backends/tofino/bf-p4c/mau/ixbar_info.h
backends/tofino/bf-p4c/mau/adjust_byte_count.cpp
backends/tofino/bf-p4c/mau/ixbar_info.cpp
backends/tofino/bf-p4c/mau/adjust_byte_count.h
backends/tofino/bf-p4c/backend.h
backends/tofino/bf-p4c/backend.cpp
backends/tofino/bf-p4c/ir/ir_enums.h
backends/tofino/bf-p4c/ir/control_flow_visitor.h
backends/tofino/bf-p4c/ir/ir_enums.cpp
backends/tofino/bf-p4c/ir/control_flow_visitor.cpp
backends/tofino/bf-p4c/ir/gateway_control_flow.h
backends/tofino/bf-p4c/arch/tna.h
backends/tofino/bf-p4c/arch/program_structure.h
backends/tofino/bf-p4c/arch/intrinsic_metadata.h
backends/tofino/bf-p4c/arch/psa/psa_model.h
backends/tofino/bf-p4c/arch/psa/psa_converters.cpp
backends/tofino/bf-p4c/arch/psa/psa.cpp
backends/tofino/bf-p4c/arch/psa/programStructure.cpp
backends/tofino/bf-p4c/arch/psa/programStructure.h
backends/tofino/bf-p4c/arch/psa/psa_converters.h
backends/tofino/bf-p4c/arch/psa/rewrite_packet_path.h
backends/tofino/bf-p4c/arch/psa/rewrite_bridge_metadata.h
backends/tofino/bf-p4c/arch/psa/psa_model.cpp
backends/tofino/bf-p4c/arch/psa/rewrite_packet_path.cpp
backends/tofino/bf-p4c/arch/psa/psa.h
backends/tofino/bf-p4c/arch/psa/rewrite_bridge_metadata.cpp
backends/tofino/bf-p4c/arch/t2na.cpp
backends/tofino/bf-p4c/arch/program_structure.cpp
backends/tofino/bf-p4c/arch/arch.cpp
backends/tofino/bf-p4c/arch/remove_set_metadata.cpp
backends/tofino/bf-p4c/arch/rewrite_action_selector.h
backends/tofino/bf-p4c/arch/add_t2na_meta.cpp
backends/tofino/bf-p4c/arch/rewrite_action_selector.cpp
backends/tofino/bf-p4c/arch/v1model.cpp
backends/tofino/bf-p4c/arch/add_t2na_meta.h
backends/tofino/bf-p4c/arch/bridge_metadata.cpp
backends/tofino/bf-p4c/arch/fromv1.0/checksum.h
backends/tofino/bf-p4c/arch/fromv1.0/add_metadata_parser_states.cpp
backends/tofino/bf-p4c/arch/fromv1.0/resubmit.cpp
backends/tofino/bf-p4c/arch/fromv1.0/v1_converters.h
backends/tofino/bf-p4c/arch/fromv1.0/phase0.cpp
backends/tofino/bf-p4c/arch/fromv1.0/parser_counter.cpp
backends/tofino/bf-p4c/arch/fromv1.0/checksum.cpp
backends/tofino/bf-p4c/arch/fromv1.0/mirror.cpp
backends/tofino/bf-p4c/arch/fromv1.0/add_metadata_parser_states.h
backends/tofino/bf-p4c/arch/fromv1.0/v1_converters.cpp
backends/tofino/bf-p4c/arch/fromv1.0/v1_program_structure.cpp
backends/tofino/bf-p4c/arch/fromv1.0/v1_program_structure.h
backends/tofino/bf-p4c/arch/fromv1.0/phase0.h
backends/tofino/bf-p4c/arch/fromv1.0/resubmit.h
backends/tofino/bf-p4c/arch/fromv1.0/parser_counter.h
backends/tofino/bf-p4c/arch/fromv1.0/mirror.h
backends/tofino/bf-p4c/arch/arch.h
backends/tofino/bf-p4c/arch/collect_hardware_constrained_fields.h
backends/tofino/bf-p4c/arch/helpers.h
backends/tofino/bf-p4c/arch/intrinsic_metadata.cpp
backends/tofino/bf-p4c/arch/helpers.cpp
backends/tofino/bf-p4c/arch/v1model.h
backends/tofino/bf-p4c/arch/remove_set_metadata.h
backends/tofino/bf-p4c/arch/collect_bridged_fields.cpp
backends/tofino/bf-p4c/arch/check_extern_invocation.h
backends/tofino/bf-p4c/arch/check_extern_invocation.cpp
backends/tofino/bf-p4c/arch/collect_hardware_constrained_fields.cpp
backends/tofino/bf-p4c/arch/tna.cpp
backends/tofino/bf-p4c/arch/t2na.h
backends/tofino/bf-p4c/arch/collect_bridged_fields.h
backends/tofino/bf-p4c/arch/bridge_metadata.h
backends/tofino/bf-p4c/test/gtest/field_packing.cpp
backends/tofino/bf-p4c/test/gtest/path_linearizer.cpp
backends/tofino/bf-p4c/test/gtest/type_categories.cpp
backends/tofino/bf-p4c/test/gtest/tofino_gtest_utils.h
backends/tofino/bf-p4c/test/gtest/bf_gtest_helpers.h
backends/tofino/bf-p4c/control-plane/p4runtime_force_std.cpp
backends/tofino/bf-p4c/control-plane/bfruntime_arch_handler.h
backends/tofino/bf-p4c/control-plane/bfruntime_ext.cpp
backends/tofino/bf-p4c/control-plane/bfruntime.cpp
backends/tofino/bf-p4c/control-plane/p4runtime_force_std.h
backends/tofino/bf-p4c/control-plane/bfruntime.h
backends/tofino/bf-p4c/control-plane/runtime.h
backends/tofino/bf-p4c/control-plane/runtime.cpp
backends/tofino/bf-p4c/control-plane/bfruntime_ext.h
backends/tofino/bf-p4c/midend.cpp
backends/tofino/bf-p4c/asm.cpp
backends/tofino/bf-p4c/logging/resources_parser.cpp
backends/tofino/bf-p4c/logging/collect_diagnostic_checks.cpp
backends/tofino/bf-p4c/logging/resources.h
backends/tofino/bf-p4c/logging/resources.cpp
backends/tofino/bf-p4c/logging/resources_clot.h
backends/tofino/bf-p4c/logging/collect_diagnostic_checks.h
backends/tofino/bf-p4c/logging/resources_parser.h
backends/tofino/bf-p4c/logging/resources_clot.cpp
backends/tofino/bf-p4c/midend.h
backends/tofino/bf-p4c/p4c-barefoot.cpp
backends/tofino/bf-p4c/common/alloc.h
backends/tofino/bf-p4c/common/extract_maupipe.cpp
backends/tofino/bf-p4c/common/parse_annotations.h
backends/tofino/bf-p4c/common/extract_maupipe.h
backends/tofino/bf-p4c/common/debug_info.h
backends/tofino/bf-p4c/common/size_of.cpp
backends/tofino/bf-p4c/common/merge_pov_bits.cpp
backends/tofino/bf-p4c/common/merge_pov_bits.h
backends/tofino/bf-p4c/common/pragma.h
backends/tofino/bf-p4c/common/pragma/pragma.h
backends/tofino/bf-p4c/common/front_end_policy.h
backends/tofino/bf-p4c/common/size_of.h
backends/tofino/bf-p4c/common/header_stack.h
backends/tofino/bf-p4c/asm.h
backends/tofino/bf-p4c/lib/error_type.h
backends/tofino/bf-p4c/parde/field_packing.cpp
backends/tofino/bf-p4c/parde/extract_deparser.cpp
backends/tofino/bf-p4c/parde/extract_parser.h
backends/tofino/bf-p4c/parde/parser_info.h
backends/tofino/bf-p4c/parde/extract_deparser.h
backends/tofino/bf-p4c/parde/deparser_checksum_update.cpp
backends/tofino/bf-p4c/parde/deparser_checksum_update.h
backends/tofino/bf-p4c/parde/extract_parser.cpp
backends/tofino/bf-p4c/parde/clot/clot.h
backends/tofino/bf-p4c/parde/parser_loops_info.cpp
backends/tofino/bf-p4c/parde/field_packing.h
backends/tofino/bf-p4c/parde/parser_loops_info.h
backends/tofino/bf-p4c/midend/fold_constant_hashes.cpp
backends/tofino/bf-p4c/midend/check_register_actions.cpp
backends/tofino/bf-p4c/midend/elim_cast.cpp
backends/tofino/bf-p4c/midend/rewrite_egress_intrinsic_metadata_header.h
backends/tofino/bf-p4c/midend/check_register_actions.h
backends/tofino/bf-p4c/midend/copy_header.h
backends/tofino/bf-p4c/midend/collect_pipelines.h
backends/tofino/bf-p4c/midend/type_categories.h
backends/tofino/bf-p4c/midend/path_linearizer.cpp
backends/tofino/bf-p4c/midend/ping_pong_generation.h
backends/tofino/bf-p4c/midend/check_unsupported.h
backends/tofino/bf-p4c/midend/type_checker.cpp
backends/tofino/bf-p4c/midend/check_design_pattern.h
backends/tofino/bf-p4c/midend/alpm.h
backends/tofino/bf-p4c/midend/simplify_args.cpp
backends/tofino/bf-p4c/midend/parser_enforce_depth_req.h
backends/tofino/bf-p4c/midend/alpm.cpp
backends/tofino/bf-p4c/midend/detect_multiple_pipelines.cpp
backends/tofino/bf-p4c/midend/eliminate_tuples.h
backends/tofino/bf-p4c/midend/initialize_mirror_io_select.cpp
backends/tofino/bf-p4c/midend/remove_select_booleans.h
backends/tofino/bf-p4c/midend/path_linearizer.h
backends/tofino/bf-p4c/midend/type_categories.cpp
backends/tofino/bf-p4c/midend/detect_multiple_pipelines.h
backends/tofino/bf-p4c/midend/simplify_args.h
backends/tofino/bf-p4c/midend/type_checker.h
backends/tofino/bf-p4c/midend/collect_pipelines.cpp
backends/tofino/bf-p4c/midend/annotate_with_in_hash.h
backends/tofino/bf-p4c/midend/drop_packet_with_mirror_engine.h
backends/tofino/bf-p4c/midend/desugar_varbit_extract.h
backends/tofino/bf-p4c/midend/initialize_mirror_io_select.h
backends/tofino/bf-p4c/midend/eliminate_tuples.cpp
backends/tofino/bf-p4c/midend/register_read_write.cpp
backends/tofino/bf-p4c/midend/register_read_write.h
backends/tofino/bf-p4c/midend/simplify_key_policy.h
backends/tofino/bf-p4c/midend/check_header_alignment.h
backends/tofino/bf-p4c/midend/remove_action_params.h
backends/tofino/bf-p4c/midend/action_synthesis_policy.h
backends/tofino/bf-p4c/midend/fold_constant_hashes.h
backends/tofino/bf-p4c/midend/check_unsupported.cpp
backends/tofino/bf-p4c/midend/elim_cast.h
backends/tofino/bf-p4c/midend/parser_enforce_depth_req.cpp
backends/tofino/bf-p4c/midend/desugar_varbit_extract.cpp
backends/tofino/bf-p4c/midend/check_header_alignment.cpp
backends/tofino/bf-p4c/midend/annotate_with_in_hash.cpp
backends/tofino/bf-p4c/midend/rewrite_flexible_header.h
backends/tofino/bf-p4c/midend/ping_pong_generation.cpp
backends/tofino/bf-p4c/midend/drop_packet_with_mirror_engine.cpp
backends/tofino/bf-asm/alloc.h
Pls review my pr and tell me what changes more to din it
fixes #5214

AkarshSahlot and others added 15 commits March 31, 2025 20:32
removed Commented section

Signed-off-by: Akarsh Sahlot <[email protected]>
Signed-off-by: Akarsh Sahlot <[email protected]>
Signed-off-by: Andy Fingerhut <[email protected]>
Signed-off-by: Andy Fingerhut <[email protected]>
I, Akarsh Sahlot <[email protected]>, hereby add my Signed-off-by to this commit: 98c054a
I, Akarsh Sahlot <[email protected]>, hereby add my Signed-off-by to this commit: 6ef3643

Signed-off-by: Akarsh Sahlot <[email protected]>
Signed-off-by: Akarsh Sahlot <[email protected]>
Signed-off-by: Akarsh Sahlot <[email protected]>
@AkarshSahlot AkarshSahlot deleted the fix/namespace-tofino branch April 3, 2025 14:38
@fruffy
Copy link
Collaborator

fruffy commented Apr 3, 2025

You need to enable Tofino to actually check the compilation (with -DENABLE_TOFINO=ON)

@AkarshSahlot
Copy link
Contributor Author

AkarshSahlot commented Apr 7, 2025

You need to enable Tofino to actually check the compilation (with -DENABLE_TOFINO=ON)

when I do it then try to build it, it starts building and wouldn't end building , I would try to install ubuntu on windows system and try it. I have tried out every single command that would this issue but not get anything out of it.

@fruffy
Copy link
Collaborator

fruffy commented Apr 7, 2025

when I do it then try to build it, it starts building and wouldn't end building ,

What do you mean by that? Are the percentages increasing or is it stuck? This is a large project, so it makes sense it builds slowly. Consider increasing the threads you are building with, for example with make -j3 if you have four processors.

@jafingerhut
Copy link
Contributor

when I do it then try to build it, it starts building and wouldn't end building ,

What do you mean by that? Are the percentages increasing or is it stuck? This is a large project, so it makes sense it builds slowly. Consider increasing the threads you are building with, for example with make -j3 if you have four processors.

Some individual C/C++ compiler processes use 4 to 5 GBytes of RAM when building the Tofino P4 compiler. I'd recommend at least 6 GBytes of RAM for building it at all, and only use -j1 if you have only that much RAM, otherwise it slows to a crawl, or starts randomly killing processes.

For more RAM, I'd recommend only increasing by 1 parallel job for each additional 4 GB of RAM you have, i.e.:

6-10 GB RAM: -j1
10-14 GB RAM: -j2
14-18 GB RAM: -j3
etc.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Missing namespaces in tofino back end.
3 participants