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

Upstream IPDK changes to Stratum mothership #309

Open
ffoulkes opened this issue Nov 6, 2024 · 0 comments
Open

Upstream IPDK changes to Stratum mothership #309

ffoulkes opened this issue Nov 6, 2024 · 0 comments

Comments

@ffoulkes
Copy link
Collaborator

ffoulkes commented Nov 6, 2024

The following summary is based on a side-by-side comparison of the upstream Stratum code with the IPDK code, made on June 27, 2024.

We will need to review the changes made since then to see what impact they've had to non-TDI source files.


Some of the edits can be reverted (Buildifier was run on our file but not the upstream version; only change was the addition of an Intel copyright notice).

Some lend themselves readily to individual PRs -- modifying timestamping to work under CMake; adding support for Tofino SDE 9.11.0; implementing the TargetOptions class; adding new support functions; making local functions static to eliminate compiler warnings.


WORKSPACE

  • Custom version of P4Runtime

Bazel/defs.bzl

  • STRATUM_DISABLED_COMPILER_WARNINGS_GCC

Bazel/deps.bzl

  • Newer version of gRPC (1.40.0 -> 1.40.1)
  • Older versions of BCM libraries
  • Update googletest version [align w/ MEV]
  • Update googleapis version [align w/ MEV]

Bazel/workspace_rule.bzl

  • Buildifier

Bazel/external/bfsde.BUILD

  • Buildifier
  • SDE version 9.11.0

Bazel/external/

  • Add dpdk.BUILD
  • Add es2k.BUILD
  • Add tofino.BUILD [for TDI]

Bazel/rules/test_rule.bzl

  • Add tags parameter

Cmake build system (throughout)

  • Action: do not upstream

Stratum/docs

  • refactoring_yang_parse_tree_paths.md
  • target_options.md

Stratum/glue/init_google.h [cmake support]

  • Support kStampingEnabled

Stratum/glue/logging.cc [cmake support]

  • Support kStampingEnabled

Stratum/glue/stamping.cc [cmake support]

  • Support BUILD_TIMESTAMP
  • Define kSampingEnabled

Stratum/glue/stamping.h [cmake support]

  • Declare kStampingEnabled

Stratum/glue/status/status_macros.cc

  • Make LogErrorWithSuppression static

Stratum/glue/status/status_macros.h

  • Define RETURN_IF_ERROR_WITHOUT_LOGGING()
  • Could move to tdi_table_manager.cc (or private header file)
  • Action: add Intel copyright

Stratum/hal/bin/barefoot/main.cc

  • Make Main static [fix warnings, IIRC]

Stratum/hal/bin/barefoot/README.pipeline.md

  • Action: remove Intel copyright/SPDX-License-Identifier

Stratum/hal/bin/dummy/Main.cc

  • Make Main static

Stratum/hal/bin/tdi/… (new)

Stratum/hal/config/chassis_config_migrator.cc

  • Make several functions static

Stratum/hal/lib/barefoot/bf_chassis_manager_test.cc

  • Use NiceMock

Stratum/hal/lib/barefoot/bf_sde_wrapper.cc

  • Support 9.11.0

Stratum/hal/lib/barefoot/bf_sde_wrapper.h

  • BSR edits

Stratum/hal/lib/barefoot/bfrt_switch.h

  • BSR edits

Stratum/hal/lib/barefoot/BUILD

  • Support 9.11.0

Stratum/hal/lib/common/common.proto

  • Dpdk, es2k, ipsec additions

Stratum/hal/lib/common/config_monitoring_service.cc

  • TargetOptions
  • Security (!IsRegularFile)

Stratum/hal/lib/common/config_monitoring_service.h

  • TargetOptions

Stratum/hal/lib/common/config_monitoring_service_test.cc

  • DISABLED_GnmiSetRootReplace
  • Action: review this

Stratum/hal/lib/common/gnmi_events.h

  • BSR edits
  • IPsecNotificationEvent
  • GnmiDeleteWithValHandler
  • Action: rename to IpsecNotificationEvent

Stratum/hal/lib/common/gnmi_publisher.cc

  • Yang_parse_tree_paths
  • Ipsec support

Stratum/hal/lib/common/gnmi_publisher.h

  • Yang_parse_tree_paths
  • IsPathSupportedIPsec

Stratum/hal/lib/common/gnmi_publisher_test.cc

  • Disabled ReplaceSupportedPathsTest
  • Action: review this

Stratum/hal/lib/common/hal.h

  • Action: remove Intel copyright notice

Stratum/hal/lib/common/p4_service.cc
Stratum/hal/lib/common/p4_service.h

  • TargetOptions

Stratum/hal/lib/common/p4/utils.h

  • BSR

Stratum/hal/lib/common/p4/utils_test.cc

  • Static functions

Yang_parse_tree.cc
Yang_parse_tree.h
Etc.

Stratum/hal/lib/p4/p4_info_manager.cc
Stratum/hal/lib/p4/p4_info_manager.h
Stratum/hal/lib/p4/p4_info_manager_mock.h

  • Packet_mod_meter
  • Direct_packet_mod_meter
  • All_resource_ids
  • Add comments
  • UPDATE (6-Nov-2024): PacketModMeter support was recently moved to an ES2K-specific module.

Stratum/hal/lib/p4/p4_info_manager_test.cc

  • Incompatible replacement for TestFindDirectMeter
  • No tests for new Find methods
  • UPDATE (6-Nov-2024): incompatibilities have been addressed.

Stratum/hal/lib/phal/phal_cli.cc

  • Static function

Stratum/hal/lib/phal/phal_sim.h

  • Remove unnecessary #includes

Stratum/hal/lib/phal/only/BUILD

  • Buildifier

Stratum/hal/lib/phal/onlp/onlp_cli.cc

  • Static function

Add stratum/hal/lib/tdi/…
Add stratum/hal/lib/yang/…

Stratum/hal/stub/embedded/main.cc

  • Add cases [warning?]
  • Static Main

Stratum/lib/utils.cc

  • Static functions
  • ValidateYangHexString

Stratum/lib/utils.h

  • IsRegularFile
  • ValidateYangHexString

Stratum/lib/p4runtime/sdn_controller_manager

  • IPDK_ROLE_FIX (#ifdef)
  • Action: upstream as a fix?

Stratum/lib/security/BUILD

  • Buildifier

Stratum/lib/security/credentials_manager.cc
Stratum/lib/security/credentials_manager.h

  • Add secure_only mode
  • --client_cert_req_type flag
  • InitializeServerCredentials / InitializeClientCredentials

Stratum/pipelines/main/BUILD

  • Buildifier
  • Action: restore

Stratum/portage/build_defs.bzl

  • Buildifier
  • Action: restore

Stratum/procmon/BUILD

  • Buildifier
  • Action: restore

Stratum/procmon/procmon_main.cc

  • Static function

Stratum/procmon/procmon_test.cc

  • Action: remove Intel copyright notice

Stratum/tools/gnmi/gnmi_cli.cc

  • --proto_bytes flag
  • Help text

Stratum/tools/stratum_replay/stratum_replay.cc

  • Static function
@ffoulkes ffoulkes added enhancement New feature or request and removed enhancement New feature or request labels Nov 6, 2024
@ffoulkes ffoulkes changed the title Upstream IPDK changes to Stratum Upstream IPDK changes to Stratum mothership Nov 13, 2024
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

No branches or pull requests

1 participant