From 709bca8e171fa781ae55a75bcdeaa47059452090 Mon Sep 17 00:00:00 2001 From: Matthew Lam Date: Mon, 8 Jun 2026 11:45:11 -0700 Subject: [PATCH] [NetKAT] Update to latest version of absl + protobuf PiperOrigin-RevId: 928686997 --- .bazelversion | 2 +- MODULE.bazel | 30 ++++++++++++++++++++++-------- netkat/BUILD.bazel | 10 +++++----- netkat/manager_handle_pattern.md | 29 +++++++++++++++++++---------- 4 files changed, 47 insertions(+), 24 deletions(-) diff --git a/.bazelversion b/.bazelversion index 6d28907..47da986 100644 --- a/.bazelversion +++ b/.bazelversion @@ -1 +1 @@ -8.5.0 +9.1.0 diff --git a/MODULE.bazel b/MODULE.bazel index 2c751db..56d1380 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -18,16 +18,30 @@ module( name = "google-netkat", version = "0.0.1", bazel_compatibility = [">=7.3.2"], - compatibility_level = 1, ) -bazel_dep(name = "protobuf", version = "29.0", repo_name = "com_google_protobuf") -bazel_dep(name = "abseil-cpp", version = "20240722.0", repo_name = "com_google_absl") -bazel_dep(name = "gutil", version = "20250502.0", repo_name = "com_google_gutil") -bazel_dep(name = "re2", version = "2024-07-02.bcr.1", repo_name = "com_googlesource_code_re2") +bazel_dep(name = "protobuf", version = "35.0", repo_name = "com_google_protobuf") +bazel_dep(name = "abseil-cpp", version = "20260526.0", repo_name = "com_google_absl") +bazel_dep(name = "rules_proto", version = "7.1.0") +bazel_dep(name = "rules_cc", version = "0.2.18") +bazel_dep(name = "aspect_bazel_lib", version = "2.22.5") +bazel_dep(name = "aspect_rules_esbuild", version = "0.25.1") +bazel_dep(name = "brotli", version = "1.2.0") +bazel_dep(name = "snappy", version = "1.2.2.bcr.3") +bazel_dep(name = "highwayhash", version = "0.0.0-20240305-5ad3bf8.bcr.1") +bazel_dep(name = "googleapis", version = "0.0.0-20260130-c0fcb356") +bazel_dep(name = "googleapis-cc", version = "1.0.0") +bazel_dep(name = "grpc", version = "1.81.0", repo_name = "com_google_grpc") +bazel_dep(name = "gutil", version = "20260309.0", repo_name = "com_google_gutil") +bazel_dep(name = "re2", version = "2025-11-05.bcr.1", repo_name = "com_googlesource_code_re2") -# Dev Depdencies. +# Dev Dependencies. bazel_dep(name = "rules_license", version = "1.0.0", dev_dependency = True) -bazel_dep(name = "googletest", version = "1.15.2", dev_dependency = True, repo_name = "com_google_googletest") -bazel_dep(name = "fuzztest", version = "20241028.0", dev_dependency = True, repo_name = "com_google_fuzztest") +bazel_dep(name = "googletest", version = "1.17.0.bcr.2", dev_dependency = True, repo_name = "com_google_googletest") +bazel_dep(name = "fuzztest", version = "20260219.0", dev_dependency = True, repo_name = "com_google_fuzztest") bazel_dep(name = "google_benchmark", version = "1.9.4", dev_dependency = True, repo_name = "com_google_benchmark") + +single_version_override( + module_name = "highwayhash", + version = "0.0.0-20240305-5ad3bf8.bcr.1", +) diff --git a/netkat/BUILD.bazel b/netkat/BUILD.bazel index 9121fef..9a22758 100644 --- a/netkat/BUILD.bazel +++ b/netkat/BUILD.bazel @@ -1,9 +1,9 @@ - - - +load("@rules_cc//cc:defs.bzl", "cc_binary") +load("@rules_cc//cc:defs.bzl", "cc_library") +load("@rules_cc//cc:defs.bzl", "cc_test") load("@com_google_gutil//gutil:diff_test.bzl", "cmd_diff_test") - - +load("@rules_proto//proto:defs.bzl", "proto_library") +load("@com_google_protobuf//bazel:cc_proto_library.bzl", "cc_proto_library") package( default_applicable_licenses = ["//:license"], diff --git a/netkat/manager_handle_pattern.md b/netkat/manager_handle_pattern.md index e2c81b4..98b8437 100644 --- a/netkat/manager_handle_pattern.md +++ b/netkat/manager_handle_pattern.md @@ -26,19 +26,28 @@ combining them, or inspecting the underlying sets, one must call methods on the manager class, which acts as an arena allocator that owns all memory associated with the handles. -For example: ``` // We need a manager to construct handles. PacketSetManager -manager; PacketSetHandle a = manager.EmptySet() PacketSetHandle b = -manager.Match("src_mac", 0xFF'FF'FF'FF); +For example: -// Handles can be compared and hashed without the help of the manager, // but -that's about it. CHECK(a != b); absl::flat_hash_map ab_set{a, -b}; +``` +// We need a manager to construct handles. +PacketSetManager manager; +PacketSetHandle a = manager.EmptySet() +PacketSetHandle b = manager.Match("src_mac", 0xFF'FF'FF'FF); + +// Handles can be compared and hashed without the help of the manager, +// but that's about it. +CHECK(a != b); +absl::flat_hash_map ab_set{a, b}; // To do interesting things with the handles, we need the manager. -PacketSetHandle c = manager.And(a, b); // The set union of `a` and `b`. -PacketSetHandle not_c = manager.Not(c); // The set complement of `c`. if -(manager.Contains(c, packet)) { CHECK(!manager.Contains(not_c, packet)); } else -{ CHECK(manager.Contains(not_c, packet)); } ``` +PacketSetHandle c = manager.And(a, b); // The set union of `a` and `b`. +PacketSetHandle not_c = manager.Not(c); // The set complement of `c`. +if (manager.Contains(c, packet)) { + CHECK(!manager.Contains(not_c, packet)); +} else { + CHECK(manager.Contains(not_c, packet)); +} +``` ## Motivation for Using the Pattern