Skip to content
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

[P4-Symbolic] Add ERSPAN support to hard-coded SAI fields/parser/deparser. #730

Merged
merged 8 commits into from
Nov 19, 2024

Conversation

VSuryaprasad-HCL
Copy link
Contributor

Keyword Check:
~/sonic-buildimage/src/sonic-p4rt/sonic-pins$ ~/tools/keyword_checks.sh .
Keyword check Passed.

Build Result:
/sonic/src/sonic-p4rt/sonic-pins$ bazel build $BAZEL_BUILD_OPTS ...
INFO: Analyzed 584 targets (2 packages loaded, 129 targets configured).
INFO: Found 584 targets...
INFO: From Compiling p4_symbolic/sai/parser.cc:
p4_symbolic/sai/parser.cc: In function 'absl::lts_20230802::StatusOr<std::vectorz3::expr > p4_symbolic::EvaluateSaiParser(const SymbolicPerPacketState&)':
p4_symbolic/sai/parser.cc:65:51: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
65 | constraints.push_back(icmp.valid == (ipv4.valid && ipv4.protocol == 0x01 ||
| ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
p4_symbolic/sai/parser.cc:67:50: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
67 | constraints.push_back(tcp.valid == (ipv4.valid && ipv4.protocol == 0x06 ||
| ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
p4_symbolic/sai/parser.cc:69:50: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
69 | constraints.push_back(udp.valid == (ipv4.valid && ipv4.protocol == 0x11 ||
| ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
INFO: From Compiling p4_symbolic/sai/parser.cc [for host]:
p4_symbolic/sai/parser.cc: In function 'absl::lts_20230802::StatusOr<std::vectorz3::expr > p4_symbolic::EvaluateSaiParser(const SymbolicPerPacketState&)':
p4_symbolic/sai/parser.cc:65:51: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
65 | constraints.push_back(icmp.valid == (ipv4.valid && ipv4.protocol == 0x01 ||
| ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
p4_symbolic/sai/parser.cc:67:50: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
67 | constraints.push_back(tcp.valid == (ipv4.valid && ipv4.protocol == 0x06 ||
| ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
p4_symbolic/sai/parser.cc:69:50: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
69 | constraints.push_back(udp.valid == (ipv4.valid && ipv4.protocol == 0x11 ||
| ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
INFO: From Compiling dvaas/arriba_test_vector_validation.cc:
In file included from p4_symbolic/tests/sai_p4_component_test.cc:22:
p4_symbolic/tests/sai_p4_component_test.cc:118:85: warning: 'absl::lts_20230802::StatusOrp4::v1::TableEntry pdpi::PartialPdTableEntryToPiTableEntry(const pdpi::IrP4Info&, const google::protobuf::Message&, const pdpi::TranslationOptions&)' is deprecated: Use PdTableEntryToPiEntity instead [-Wdeprecated-declarations]
118 | pdpi::PartialPdTableEntryToPiTableEntry(ir_p4info, pd_entry));
| ^
./gutil/status_matchers.h:64:43: note: in definition of macro 'ASSERT_OK_AND_ASSIGN'
64 | auto __ASSIGN_OR_RETURN_VAL(LINE) = expression;
| ^~~~~~~~~~
In file included from p4_symbolic/tests/sai_p4_component_test.cc:27:
./p4_pdpi/pd.h:141:36: note: declared here
141 | absl::StatusOrp4::v1::TableEntry PartialPdTableEntryToPiTableEntry(
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
INFO: Elapsed time: 77.229s, Critical Path: 62.27s
INFO: 189 processes: 91 internal, 98 linux-sandbox.
INFO: Build completed successfully, 189 total actions

Test Result:
/sonic/src/sonic-p4rt/sonic-pins$ bazel test $BAZEL_BUILD_OPTS --cache_test_results=no ...
INFO: Analyzed 584 targets (0 packages loaded, 346 targets configured).
INFO: Found 394 targets and 190 test targets...
INFO: Elapsed time: 184.549s, Critical Path: 123.74s
INFO: 244 processes: 289 linux-sandbox, 18 local.
INFO: Build completed successfully, 244 total actions
//gutil:collections_test PASSED in 0.7s
//gutil:io_test PASSED in 0.5s
//gutil:proto_matchers_test PASSED in 0.7s
//gutil:proto_ordering_test PASSED in 0.6s
//gutil:proto_test PASSED in 0.5s
//gutil:status_matchers_test PASSED in 0.5s
//gutil:test_artifact_writer_test PASSED in 0.6s
//gutil:testing_test PASSED in 0.7s
//gutil:timer_test PASSED in 5.3s
//gutil:version_test PASSED in 5.5s
//lib:basic_switch_test PASSED in 1.1s
//lib:ixia_helper_test PASSED in 1.2s
//lib/basic_traffic:basic_p4rt_util_test PASSED in 1.0s
//lib/basic_traffic:basic_traffic_test PASSED in 15.0s
//lib/gnmi:gnmi_helper_test PASSED in 2.9s
//lib/gnoi:gnoi_helper_test PASSED in 0.6s
//lib/p4rt:p4rt_port_test PASSED in 0.5s
//p4rt_app/utils:table_utility_test PASSED in 0.8s
//sai_p4/instantiations/google:clos_stage_test PASSED in 0.7s
//sai_p4/instantiations/google:fabric_border_router_p4info_up_to_date_test PASSED in 0.0s
//sai_p4/instantiations/google:middleblock_p4info_up_to_date_test PASSED in 0.1s
//sai_p4/instantiations/google:sai_nonstandard_platforms_build_test PASSED in 0.0s
//sai_p4/instantiations/google:sai_nonstandard_platforms_cc_test PASSED in 0.7s
//sai_p4/instantiations/google:sai_p4info_fetcher_test PASSED in 0.8s
//sai_p4/instantiations/google:sai_p4info_test PASSED in 1.2s
//sai_p4/instantiations/google:sai_pd_proto_test PASSED in 0.0s
//sai_p4/instantiations/google:sai_pd_util_test PASSED in 0.8s
//sai_p4/instantiations/google:tor_p4info_up_to_date_test PASSED in 0.1s
//sai_p4/instantiations/google:union_p4info_up_to_date_test PASSED in 1.8s
//sai_p4/instantiations/google:wbb_p4info_up_to_date_test PASSED in 0.1s
//sai_p4/instantiations/google/test_tools:table_entry_generator_helper_test PASSED in 2.5s
//sai_p4/instantiations/google/test_tools:test_entries_test PASSED in 0.9s
//sai_p4/instantiations/google/tests:p4_fuzzer_integration_test PASSED in 3.8s
//sai_p4/tools:p4info_tools_test PASSED in 0.6s
//sai_p4/tools:packetio_tools_test PASSED in 1.4s
//tests/qos:gnmi_parsers_test PASSED in 0.9s
//tests/qos:gnmi_parsers_test_runner PASSED in 0.5s
//thinkit:bazel_test_environment_test PASSED in 0.8s
//thinkit:generic_testbed_test PASSED in 0.9s
//thinkit:mock_control_device_test PASSED in 1.2s
//thinkit:mock_generic_testbed_test PASSED in 0.7s
//thinkit:mock_mirror_testbed_test PASSED in 0.7s
//thinkit:mock_ssh_client_test PASSED in 0.1s
//thinkit:mock_switch_test PASSED in 0.8s
//thinkit:mock_test_environment_test PASSED in 0.1s
//thinkit:switch_test PASSED in 0.7s
//sai_p4/instantiations/google/tests:p4_constraints_integration_test PASSED in 0.8s
Stats over 5 runs: max = 0.8s, min = 0.7s, avg = 0.7s, dev = 0.1s
//sai_p4/instantiations/google/test_tools:table_entry_generator_test PASSED in 47.7s
Stats over 50 runs: max = 47.7s, min = 0.8s, avg = 4.1s, dev = 10.6s

Executed 190 out of 190 tests: 190 tests pass.
INFO: Build completed successfully, 244 total actions

@VSuryaprasad-HCL
Copy link
Contributor Author

Co-authored-by: Steffen Smolka [email protected]

Copy link
Contributor

@bibhuprasad-hcl bibhuprasad-hcl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@kishanps, Could you please review.
Thanks.

@kishanps kishanps merged commit 15d2de5 into sonic-net:main Nov 19, 2024
1 of 2 checks passed
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.

5 participants