Răsfoiți Sursa

Refactor: move SocketAddrSpace to net-utils to decouple from streamer (#9037)

* refactor: move SocketAddrSpace to net-utils to decouple from streamer

* refactor(streamer): remove socket.rs and cleanup

* fix: formatting issues w/ cargofmt

* refactor: migrate SocketAddrSpace and drop obsolete streamer usage

* refactor: removes test from socket_addr_space
Anish 6 zile în urmă
părinte
comite
e7af356486
87 a modificat fișierele cu 107 adăugiri și 132 ștergeri
  1. 3 9
      Cargo.lock
  2. 0 1
      accounts-cluster-bench/Cargo.toml
  3. 1 1
      accounts-cluster-bench/src/main.rs
  4. 0 1
      banking-bench/Cargo.toml
  5. 1 1
      bench-tps/tests/bench_tps.rs
  6. 1 2
      cli/Cargo.toml
  7. 1 1
      cli/tests/address_lookup_table.rs
  8. 1 1
      cli/tests/cluster_query.rs
  9. 1 1
      cli/tests/nonce.rs
  10. 1 1
      cli/tests/program.rs
  11. 1 1
      cli/tests/request_airdrop.rs
  12. 1 1
      cli/tests/stake.rs
  13. 1 1
      cli/tests/transfer.rs
  14. 1 1
      cli/tests/validator_info.rs
  15. 1 1
      cli/tests/vote.rs
  16. 0 1
      client-test/Cargo.toml
  17. 1 1
      client-test/tests/client.rs
  18. 1 1
      client-test/tests/send_and_confirm_transactions_in_parallel.rs
  19. 4 2
      core/src/banking_simulation.rs
  20. 1 1
      core/src/cluster_slots_service.rs
  21. 1 2
      core/src/repair/ancestor_hashes_service.rs
  22. 1 2
      core/src/repair/repair_service.rs
  23. 2 2
      core/src/repair/serve_repair.rs
  24. 2 4
      core/src/repair/serve_repair_service.rs
  25. 1 1
      core/src/replay_stage.rs
  26. 1 1
      core/src/tvu.rs
  27. 1 1
      core/src/validator.rs
  28. 1 1
      core/src/window_service.rs
  29. 1 1
      core/tests/snapshots.rs
  30. 1 4
      dev-bins/Cargo.lock
  31. 0 1
      dos/Cargo.toml
  32. 1 2
      dos/src/main.rs
  33. 0 1
      gossip-bin/Cargo.toml
  34. 1 1
      gossip-bin/src/main.rs
  35. 1 2
      gossip/src/cluster_info.rs
  36. 1 1
      gossip/src/contact_info.rs
  37. 1 1
      gossip/src/crds_gossip.rs
  38. 1 1
      gossip/src/crds_gossip_pull.rs
  39. 1 1
      gossip/src/crds_gossip_push.rs
  40. 1 1
      gossip/src/duplicate_shred_listener.rs
  41. 1 2
      gossip/src/gossip_service.rs
  42. 1 1
      gossip/tests/crds_gossip.rs
  43. 2 4
      gossip/tests/gossip.rs
  44. 0 1
      ledger-tool/Cargo.toml
  45. 1 1
      local-cluster/src/cluster.rs
  46. 1 1
      local-cluster/src/cluster_tests.rs
  47. 1 1
      local-cluster/src/integration_tests.rs
  48. 2 2
      local-cluster/src/local_cluster.rs
  49. 1 1
      local-cluster/tests/local_cluster.rs
  50. 8 4
      net-utils/src/lib.rs
  51. 2 1
      net-utils/src/socket_addr_space.rs
  52. 1 1
      programs/sbf/Cargo.lock
  53. 0 1
      rpc-test/Cargo.toml
  54. 1 2
      rpc-test/tests/rpc.rs
  55. 0 1
      rpc/Cargo.toml
  56. 1 1
      rpc/src/cluster_tpu_info.rs
  57. 1 1
      rpc/src/rpc.rs
  58. 0 1
      streamer/src/lib.rs
  59. 2 1
      streamer/src/packet.rs
  60. 6 3
      streamer/src/streamer.rs
  61. 4 2
      test-validator/src/lib.rs
  62. 1 1
      tokens/Cargo.toml
  63. 1 1
      tokens/src/commands.rs
  64. 3 2
      tokens/tests/commands.rs
  65. 0 1
      transaction-dos/Cargo.toml
  66. 1 1
      transaction-dos/src/main.rs
  67. 1 2
      turbine/benches/cluster_info.rs
  68. 1 1
      turbine/benches/cluster_nodes.rs
  69. 2 4
      turbine/src/broadcast_stage.rs
  70. 1 1
      turbine/src/broadcast_stage/broadcast_fake_shreds_run.rs
  71. 1 2
      turbine/src/broadcast_stage/standard_broadcast_run.rs
  72. 1 1
      turbine/src/cluster_nodes.rs
  73. 2 4
      turbine/src/retransmit_stage.rs
  74. 1 1
      turbine/src/sigverify_shreds.rs
  75. 1 2
      validator/src/admin_rpc_service.rs
  76. 1 1
      validator/src/bin/solana-test-validator.rs
  77. 1 1
      validator/src/bootstrap.rs
  78. 1 1
      validator/src/commands/run/args.rs
  79. 1 2
      vortexor/tests/vortexor.rs
  80. 1 1
      votor/src/consensus_pool.rs
  81. 1 1
      votor/src/consensus_pool/parent_ready_tracker.rs
  82. 1 1
      votor/src/consensus_pool_service.rs
  83. 1 1
      votor/src/event_handler.rs
  84. 1 1
      votor/src/staked_validators_cache.rs
  85. 1 2
      votor/src/voting_service.rs
  86. 1 1
      wen-restart/Cargo.toml
  87. 1 1
      wen-restart/src/wen_restart.rs

+ 3 - 9
Cargo.lock

@@ -7131,7 +7131,6 @@ dependencies = [
  "solana-runtime",
  "solana-signature",
  "solana-signer",
- "solana-streamer",
  "solana-system-interface",
  "solana-test-validator",
  "solana-transaction",
@@ -7765,6 +7764,7 @@ dependencies = [
  "solana-loader-v4-program",
  "solana-message",
  "solana-native-token",
+ "solana-net-utils",
  "solana-nonce",
  "solana-nonce-account",
  "solana-offchain-message",
@@ -7787,7 +7787,6 @@ dependencies = [
  "solana-signer",
  "solana-slot-history",
  "solana-stake-interface",
- "solana-streamer",
  "solana-system-interface",
  "solana-sysvar",
  "solana-test-validator",
@@ -7937,7 +7936,6 @@ dependencies = [
  "solana-rpc-client-api",
  "solana-runtime",
  "solana-signer",
- "solana-streamer",
  "solana-system-interface",
  "solana-system-transaction",
  "solana-test-validator",
@@ -8886,7 +8884,6 @@ dependencies = [
  "solana-gossip",
  "solana-net-utils",
  "solana-pubkey",
- "solana-streamer",
  "solana-version",
 ]
 
@@ -10062,7 +10059,6 @@ dependencies = [
  "solana-slot-history",
  "solana-stake-interface",
  "solana-storage-bigtable",
- "solana-streamer",
  "solana-svm",
  "solana-svm-log-collector",
  "solana-system-interface",
@@ -10243,7 +10239,6 @@ dependencies = [
  "solana-rpc-client-api",
  "solana-signature",
  "solana-signer",
- "solana-streamer",
  "solana-system-transaction",
  "solana-test-validator",
  "solana-tpu-client",
@@ -11259,6 +11254,7 @@ dependencies = [
  "solana-keypair",
  "solana-message",
  "solana-native-token",
+ "solana-net-utils",
  "solana-program-error",
  "solana-program-pack",
  "solana-pubkey",
@@ -11268,7 +11264,6 @@ dependencies = [
  "solana-signature",
  "solana-signer",
  "solana-stake-interface",
- "solana-streamer",
  "solana-system-interface",
  "solana-test-validator",
  "solana-transaction",
@@ -11458,7 +11453,6 @@ dependencies = [
  "solana-rpc-client",
  "solana-runtime",
  "solana-signer",
- "solana-streamer",
  "solana-system-interface",
  "solana-transaction",
  "solana-transaction-status",
@@ -11900,11 +11894,11 @@ dependencies = [
  "solana-hash",
  "solana-keypair",
  "solana-ledger",
+ "solana-net-utils",
  "solana-pubkey",
  "solana-runtime",
  "solana-shred-version",
  "solana-signer",
- "solana-streamer",
  "solana-svm-timings",
  "solana-time-utils",
  "solana-vote",

+ 0 - 1
accounts-cluster-bench/Cargo.toml

@@ -40,7 +40,6 @@ solana-rpc-client = { workspace = true, features = ["default"] }
 solana-rpc-client-api = { workspace = true }
 solana-signature = { workspace = true }
 solana-signer = { workspace = true }
-solana-streamer = { workspace = true }
 solana-system-interface = { workspace = true, features = ["bincode"] }
 solana-transaction = { workspace = true }
 solana-transaction-status = { workspace = true }

+ 1 - 1
accounts-cluster-bench/src/main.rs

@@ -20,13 +20,13 @@ use {
     solana_keypair::{read_keypair_file, Keypair},
     solana_measure::measure::Measure,
     solana_message::Message,
+    solana_net_utils::SocketAddrSpace,
     solana_program_pack::Pack,
     solana_pubkey::Pubkey,
     solana_rpc_client::rpc_client::RpcClient,
     solana_rpc_client_api::request::TokenAccountsFilter,
     solana_signature::Signature,
     solana_signer::Signer,
-    solana_streamer::socket::SocketAddrSpace,
     solana_system_interface::{instruction as system_instruction, program as system_program},
     solana_transaction::Transaction,
     solana_transaction_status::UiTransactionEncoding,

+ 0 - 1
banking-bench/Cargo.toml

@@ -42,7 +42,6 @@ solana-pubkey = { workspace = true }
 solana-runtime = { workspace = true, features = ["dev-context-only-utils"] }
 solana-signature = { workspace = true }
 solana-signer = { workspace = true }
-solana-streamer = { workspace = true }
 solana-system-interface = { workspace = true }
 solana-system-transaction = { workspace = true }
 solana-time-utils = { workspace = true }

+ 1 - 1
bench-tps/tests/bench_tps.rs

@@ -19,12 +19,12 @@ use {
         local_cluster::{ClusterConfig, LocalCluster},
         validator_configs::make_identical_validator_configs,
     },
+    solana_net_utils::SocketAddrSpace,
     solana_quic_client::{QuicConfig, QuicConnectionManager},
     solana_rent::Rent,
     solana_rpc::rpc::JsonRpcConfig,
     solana_rpc_client::rpc_client::RpcClient,
     solana_signer::Signer,
-    solana_streamer::socket::SocketAddrSpace,
     solana_test_validator::TestValidatorGenesis,
     solana_tpu_client::tpu_client::{TpuClient, TpuClientConfig},
     std::{sync::Arc, time::Duration},

+ 1 - 2
cli/Cargo.toml

@@ -88,7 +88,6 @@ solana-signature = { version = "=3.1.0", default-features = false }
 solana-signer = "=3.0.0"
 solana-slot-history = "=3.0.0"
 solana-stake-interface = "=2.0.1"
-solana-streamer = { workspace = true }
 solana-system-interface = { version = "=2.0", features = ["bincode"] }
 solana-sysvar = "=3.0.0"
 solana-tps-client = { workspace = true }
@@ -108,11 +107,11 @@ tiny-bip39 = { workspace = true }
 assert_matches = { workspace = true }
 solana-client = { workspace = true, features = ["dev-context-only-utils"] }
 solana-faucet = { workspace = true, features = ["dev-context-only-utils"] }
+solana-net-utils = { workspace = true }
 solana-nonce-account = { workspace = true }
 solana-presigner = { workspace = true }
 solana-rpc = { workspace = true }
 solana-sha256-hasher = { workspace = true }
-solana-streamer = { workspace = true }
 solana-test-validator = { workspace = true }
 solana-tps-client = { workspace = true, features = ["dev-context-only-utils"] }
 tempfile = { workspace = true }

+ 1 - 1
cli/tests/address_lookup_table.rs

@@ -10,9 +10,9 @@ use {
     solana_faucet::faucet::run_local_faucet_with_unique_port_for_tests,
     solana_keypair::Keypair,
     solana_native_token::LAMPORTS_PER_SOL,
+    solana_net_utils::SocketAddrSpace,
     solana_pubkey::Pubkey,
     solana_signer::Signer,
-    solana_streamer::socket::SocketAddrSpace,
     solana_test_validator::TestValidator,
     std::str::FromStr,
 };

+ 1 - 1
cli/tests/cluster_query.rs

@@ -9,9 +9,9 @@ use {
     solana_fee_structure::FeeStructure,
     solana_keypair::Keypair,
     solana_native_token::LAMPORTS_PER_SOL,
+    solana_net_utils::SocketAddrSpace,
     solana_rpc_client::rpc_client::RpcClient,
     solana_signer::Signer,
-    solana_streamer::socket::SocketAddrSpace,
     solana_test_validator::TestValidator,
     std::time::Duration,
     test_case::test_case,

+ 1 - 1
cli/tests/nonce.rs

@@ -12,11 +12,11 @@ use {
     solana_hash::Hash,
     solana_keypair::{keypair_from_seed, Keypair},
     solana_native_token::LAMPORTS_PER_SOL,
+    solana_net_utils::SocketAddrSpace,
     solana_pubkey::Pubkey,
     solana_rpc_client::rpc_client::RpcClient,
     solana_rpc_client_nonce_utils::blockhash_query::{self, BlockhashQuery},
     solana_signer::Signer,
-    solana_streamer::socket::SocketAddrSpace,
     solana_system_interface::program as system_program,
     solana_test_validator::TestValidator,
     test_case::test_case,

+ 1 - 1
cli/tests/program.rs

@@ -22,6 +22,7 @@ use {
     solana_fee_calculator::FeeRateGovernor,
     solana_keypair::Keypair,
     solana_loader_v3_interface::state::UpgradeableLoaderState,
+    solana_net_utils::SocketAddrSpace,
     solana_pubkey::Pubkey,
     solana_rent::Rent,
     solana_rpc::rpc::JsonRpcConfig,
@@ -31,7 +32,6 @@ use {
     solana_sdk_ids::{bpf_loader_upgradeable, compute_budget, loader_v4},
     solana_signature::Signature,
     solana_signer::{null_signer::NullSigner, Signer},
-    solana_streamer::socket::SocketAddrSpace,
     solana_system_interface::program as system_program,
     solana_test_validator::TestValidatorGenesis,
     solana_transaction::Transaction,

+ 1 - 1
cli/tests/request_airdrop.rs

@@ -5,9 +5,9 @@ use {
     solana_faucet::faucet::run_local_faucet_with_unique_port_for_tests,
     solana_keypair::Keypair,
     solana_native_token::LAMPORTS_PER_SOL,
+    solana_net_utils::SocketAddrSpace,
     solana_rpc_client::rpc_client::RpcClient,
     solana_signer::Signer,
-    solana_streamer::socket::SocketAddrSpace,
     solana_test_validator::TestValidator,
 };
 

+ 1 - 1
cli/tests/stake.rs

@@ -17,6 +17,7 @@ use {
     solana_fee_structure::FeeStructure,
     solana_keypair::{keypair_from_seed, Keypair},
     solana_native_token::LAMPORTS_PER_SOL,
+    solana_net_utils::SocketAddrSpace,
     solana_nonce::state::State as NonceState,
     solana_pubkey::Pubkey,
     solana_rent::Rent,
@@ -29,7 +30,6 @@ use {
         instruction::LockupArgs,
         state::{Lockup, StakeAuthorize, StakeStateV2},
     },
-    solana_streamer::socket::SocketAddrSpace,
     solana_test_validator::{TestValidator, TestValidatorGenesis},
     test_case::test_case,
 };

+ 1 - 1
cli/tests/transfer.rs

@@ -14,13 +14,13 @@ use {
     solana_keypair::{keypair_from_seed, Keypair},
     solana_message::Message,
     solana_native_token::LAMPORTS_PER_SOL,
+    solana_net_utils::SocketAddrSpace,
     solana_nonce::state::State as NonceState,
     solana_pubkey::Pubkey,
     solana_rpc_client::rpc_client::RpcClient,
     solana_rpc_client_nonce_utils::blockhash_query::{self, BlockhashQuery},
     solana_signer::{null_signer::NullSigner, Signer},
     solana_stake_interface as stake,
-    solana_streamer::socket::SocketAddrSpace,
     solana_system_interface::instruction as system_instruction,
     solana_test_validator::TestValidator,
     test_case::test_case,

+ 1 - 1
cli/tests/validator_info.rs

@@ -7,9 +7,9 @@ use {
     solana_commitment_config::CommitmentConfig,
     solana_faucet::faucet::run_local_faucet_with_unique_port_for_tests,
     solana_keypair::{keypair_from_seed, Keypair},
+    solana_net_utils::SocketAddrSpace,
     solana_rpc_client::rpc_client::RpcClient,
     solana_signer::Signer,
-    solana_streamer::socket::SocketAddrSpace,
     solana_test_validator::TestValidator,
     test_case::test_case,
 };

+ 1 - 1
cli/tests/vote.rs

@@ -10,10 +10,10 @@ use {
     solana_commitment_config::CommitmentConfig,
     solana_faucet::faucet::run_local_faucet_with_unique_port_for_tests,
     solana_keypair::Keypair,
+    solana_net_utils::SocketAddrSpace,
     solana_rpc_client::rpc_client::RpcClient,
     solana_rpc_client_nonce_utils::blockhash_query::{self, BlockhashQuery},
     solana_signer::{null_signer::NullSigner, Signer},
-    solana_streamer::socket::SocketAddrSpace,
     solana_test_validator::TestValidator,
     solana_vote_program::vote_state::{VoteAuthorize, VoteStateV4},
     test_case::test_case,

+ 0 - 1
client-test/Cargo.toml

@@ -37,7 +37,6 @@ solana-rpc-client = { workspace = true }
 solana-rpc-client-api = { workspace = true }
 solana-runtime = { workspace = true }
 solana-signer = { workspace = true }
-solana-streamer = { workspace = true }
 solana-system-interface = { workspace = true }
 solana-system-transaction = { workspace = true }
 solana-test-validator = { workspace = true }

+ 1 - 1
client-test/tests/client.rs

@@ -6,6 +6,7 @@ use {
     solana_keypair::Keypair,
     solana_ledger::{blockstore::Blockstore, get_tmp_ledger_path_auto_delete},
     solana_native_token::LAMPORTS_PER_SOL,
+    solana_net_utils::SocketAddrSpace,
     solana_pubkey::Pubkey,
     solana_pubsub_client::{nonblocking, pubsub_client::PubsubClient},
     solana_rpc::{
@@ -29,7 +30,6 @@ use {
         genesis_utils::{create_genesis_config, GenesisConfigInfo},
     },
     solana_signer::Signer,
-    solana_streamer::socket::SocketAddrSpace,
     solana_system_interface::program as system_program,
     solana_system_transaction as system_transaction,
     solana_test_validator::TestValidator,

+ 1 - 1
client-test/tests/send_and_confirm_transactions_in_parallel.rs

@@ -10,10 +10,10 @@ use {
     solana_keypair::Keypair,
     solana_message::Message,
     solana_native_token::LAMPORTS_PER_SOL,
+    solana_net_utils::SocketAddrSpace,
     solana_pubkey::Pubkey,
     solana_rpc_client::rpc_client::RpcClient,
     solana_signer::Signer,
-    solana_streamer::socket::SocketAddrSpace,
     solana_system_interface::instruction as system_instruction,
     solana_test_validator::TestValidator,
     std::sync::Arc,

+ 4 - 2
core/src/banking_simulation.rs

@@ -26,7 +26,10 @@ use {
         blockstore::{Blockstore, PurgeType},
         leader_schedule_cache::LeaderScheduleCache,
     },
-    solana_net_utils::sockets::{bind_in_range_with_config, SocketConfiguration},
+    solana_net_utils::{
+        sockets::{bind_in_range_with_config, SocketConfiguration},
+        SocketAddrSpace,
+    },
     solana_poh::{
         poh_controller::PohController,
         poh_recorder::{PohRecorder, GRACE_TICKS_FACTOR, MAX_GRACE_SLOTS},
@@ -43,7 +46,6 @@ use {
     },
     solana_shred_version::compute_shred_version,
     solana_signer::Signer,
-    solana_streamer::socket::SocketAddrSpace,
     solana_turbine::broadcast_stage::{BroadcastStage, BroadcastStageType},
     std::{
         collections::BTreeMap,

+ 1 - 1
core/src/cluster_slots_service.rs

@@ -205,8 +205,8 @@ mod test {
         super::*,
         solana_gossip::{crds_data::LowestSlot, node::Node},
         solana_keypair::Keypair,
+        solana_net_utils::SocketAddrSpace,
         solana_signer::Signer,
-        solana_streamer::socket::SocketAddrSpace,
     };
 
     #[test]

+ 1 - 2
core/src/repair/ancestor_hashes_service.rs

@@ -924,11 +924,10 @@ mod test {
             blockstore::make_many_slot_entries, get_tmp_ledger_path,
             get_tmp_ledger_path_auto_delete, shred::Nonce,
         },
-        solana_net_utils::sockets::bind_to_localhost_unique,
+        solana_net_utils::{sockets::bind_to_localhost_unique, SocketAddrSpace},
         solana_perf::packet::Packet,
         solana_runtime::bank_forks::BankForks,
         solana_signer::Signer,
-        solana_streamer::socket::SocketAddrSpace,
         std::collections::HashMap,
         trees::tr,
     };

+ 1 - 2
core/src/repair/repair_service.rs

@@ -1290,10 +1290,9 @@ mod test {
             get_tmp_ledger_path_auto_delete,
             shred::max_ticks_per_n_shreds,
         },
-        solana_net_utils::sockets::bind_to_localhost_unique,
+        solana_net_utils::{sockets::bind_to_localhost_unique, SocketAddrSpace},
         solana_runtime::bank::Bank,
         solana_signer::Signer,
-        solana_streamer::socket::SocketAddrSpace,
         solana_time_utils::timestamp,
         std::collections::HashSet,
     };

+ 2 - 2
core/src/repair/serve_repair.rs

@@ -36,6 +36,7 @@ use {
     solana_hash::{Hash, HASH_BYTES},
     solana_keypair::{signable::Signable, Keypair},
     solana_ledger::shred::{self, Nonce, ShredFetchStats, SIZE_OF_NONCE},
+    solana_net_utils::SocketAddrSpace,
     solana_packet::PACKET_DATA_SIZE,
     solana_perf::{
         data_budget::DataBudget,
@@ -47,7 +48,6 @@ use {
     solana_signer::Signer,
     solana_streamer::{
         sendmmsg::{batch_send, SendPktsError},
-        socket::SocketAddrSpace,
         streamer::PacketBatchSender,
     },
     solana_time_utils::timestamp,
@@ -1362,10 +1362,10 @@ mod tests {
                 max_ticks_per_n_shreds, ProcessShredsStats, ReedSolomonCache, Shred, Shredder,
             },
         },
+        solana_net_utils::SocketAddrSpace,
         solana_perf::packet::{deserialize_from_with_limit, Packet, PacketFlags, PacketRef},
         solana_pubkey::Pubkey,
         solana_runtime::bank::Bank,
-        solana_streamer::socket::SocketAddrSpace,
         solana_time_utils::timestamp,
         std::{io::Cursor, net::Ipv4Addr},
     };

+ 2 - 4
core/src/repair/serve_repair_service.rs

@@ -2,11 +2,9 @@ use {
     crate::repair::{quic_endpoint::RemoteRequest, serve_repair::ServeRepair},
     bytes::Bytes,
     crossbeam_channel::{unbounded, Receiver, Sender},
+    solana_net_utils::SocketAddrSpace,
     solana_perf::{packet::PacketBatch, recycler::Recycler},
-    solana_streamer::{
-        socket::SocketAddrSpace,
-        streamer::{self, StreamerReceiveStats},
-    },
+    solana_streamer::streamer::{self, StreamerReceiveStats},
     std::{
         net::{SocketAddr, UdpSocket},
         sync::{atomic::AtomicBool, Arc},

+ 1 - 1
core/src/replay_stage.rs

@@ -4465,6 +4465,7 @@ pub(crate) mod tests {
             get_tmp_ledger_path, get_tmp_ledger_path_auto_delete,
             shred::{ProcessShredsStats, ReedSolomonCache, Shred, Shredder},
         },
+        solana_net_utils::SocketAddrSpace,
         solana_poh::poh_recorder::create_test_recorder,
         solana_poh_config::PohConfig,
         solana_rpc::{
@@ -4477,7 +4478,6 @@ pub(crate) mod tests {
             genesis_utils::{GenesisConfigInfo, ValidatorVoteKeypairs},
         },
         solana_sha256_hasher::hash,
-        solana_streamer::socket::SocketAddrSpace,
         solana_system_transaction as system_transaction,
         solana_tpu_client::tpu_client::{DEFAULT_TPU_CONNECTION_POOL_SIZE, DEFAULT_VOTE_USE_QUIC},
         solana_transaction_error::TransactionError,

+ 1 - 1
core/src/tvu.rs

@@ -475,11 +475,11 @@ pub mod tests {
             create_new_tmp_ledger,
             genesis_utils::{create_genesis_config, GenesisConfigInfo},
         },
+        solana_net_utils::SocketAddrSpace,
         solana_poh::poh_recorder::create_test_recorder,
         solana_rpc::optimistically_confirmed_bank_tracker::OptimisticallyConfirmedBank,
         solana_runtime::bank::Bank,
         solana_signer::Signer,
-        solana_streamer::socket::SocketAddrSpace,
         solana_tpu_client::tpu_client::{DEFAULT_TPU_CONNECTION_POOL_SIZE, DEFAULT_VOTE_USE_QUIC},
         std::sync::atomic::{AtomicU64, Ordering},
     };

+ 1 - 1
core/src/validator.rs

@@ -93,6 +93,7 @@ use {
     },
     solana_measure::measure::Measure,
     solana_metrics::{datapoint_info, metrics::metrics_config_sanity_check},
+    solana_net_utils::SocketAddrSpace,
     solana_poh::{
         poh_controller::PohController,
         poh_recorder::PohRecorder,
@@ -137,7 +138,6 @@ use {
     solana_streamer::{
         nonblocking::{simple_qos::SimpleQosConfig, swqos::SwQosConfig},
         quic::{QuicStreamerConfig, SimpleQosQuicStreamerConfig, SwQosQuicStreamerConfig},
-        socket::SocketAddrSpace,
         streamer::StakedNodes,
     },
     solana_time_utils::timestamp,

+ 1 - 1
core/src/window_service.rs

@@ -468,9 +468,9 @@ mod test {
             get_tmp_ledger_path_auto_delete,
             shred::{ProcessShredsStats, Shredder},
         },
+        solana_net_utils::SocketAddrSpace,
         solana_runtime::bank::Bank,
         solana_signer::Signer,
-        solana_streamer::socket::SocketAddrSpace,
         solana_time_utils::timestamp,
     };
 

+ 1 - 1
core/tests/snapshots.rs

@@ -15,6 +15,7 @@ use {
     solana_genesis_config::GenesisConfig,
     solana_gossip::{cluster_info::ClusterInfo, contact_info::ContactInfo},
     solana_keypair::Keypair,
+    solana_net_utils::SocketAddrSpace,
     solana_pubkey::Pubkey,
     solana_runtime::{
         accounts_background_service::{
@@ -32,7 +33,6 @@ use {
     },
     solana_sha256_hasher::hashv,
     solana_signer::Signer,
-    solana_streamer::socket::SocketAddrSpace,
     solana_system_transaction as system_transaction,
     solana_time_utils::timestamp,
     std::{

+ 1 - 4
dev-bins/Cargo.lock

@@ -176,7 +176,6 @@ dependencies = [
  "solana-signature",
  "solana-stake-interface",
  "solana-storage-bigtable",
- "solana-streamer",
  "solana-svm-callback",
  "solana-svm-feature-set",
  "solana-svm-log-collector",
@@ -6210,7 +6209,6 @@ dependencies = [
  "solana-runtime",
  "solana-signature",
  "solana-signer",
- "solana-streamer",
  "solana-system-interface",
  "solana-system-transaction",
  "solana-time-utils",
@@ -7063,7 +7061,6 @@ dependencies = [
  "solana-signature",
  "solana-signer",
  "solana-stake-interface",
- "solana-streamer",
  "solana-system-interface",
  "solana-time-utils",
  "solana-tps-client",
@@ -8404,7 +8401,6 @@ dependencies = [
  "solana-signer",
  "solana-slot-history",
  "solana-storage-bigtable",
- "solana-streamer",
  "solana-svm",
  "solana-system-interface",
  "solana-system-transaction",
@@ -9780,6 +9776,7 @@ dependencies = [
  "solana-gossip",
  "solana-hash",
  "solana-ledger",
+ "solana-net-utils",
  "solana-pubkey",
  "solana-runtime",
  "solana-shred-version",

+ 0 - 1
dos/Cargo.toml

@@ -47,7 +47,6 @@ solana-rpc-client = { workspace = true }
 solana-signature = { workspace = true, features = ["rand"] }
 solana-signer = { workspace = true }
 solana-stake-interface = { workspace = true }
-solana-streamer = { workspace = true }
 solana-system-interface = { workspace = true }
 solana-time-utils = { workspace = true }
 solana-tps-client = { workspace = true }

+ 1 - 2
dos/src/main.rs

@@ -59,13 +59,12 @@ use {
     solana_keypair::Keypair,
     solana_measure::measure::Measure,
     solana_message::{compiled_instruction::CompiledInstruction, Message},
-    solana_net_utils::bind_to_unspecified,
+    solana_net_utils::{bind_to_unspecified, SocketAddrSpace},
     solana_pubkey::Pubkey,
     solana_rpc_client::rpc_client::RpcClient,
     solana_signature::Signature,
     solana_signer::Signer,
     solana_stake_interface as stake,
-    solana_streamer::socket::SocketAddrSpace,
     solana_system_interface::{
         instruction::{self as system_instruction, SystemInstruction},
         program as system_program,

+ 0 - 1
gossip-bin/Cargo.toml

@@ -25,5 +25,4 @@ solana-clap-utils = { workspace = true }
 solana-gossip = { workspace = true, features = ["agave-unstable-api"] }
 solana-net-utils = { workspace = true, features = ["agave-unstable-api"] }
 solana-pubkey = { version = "=3.0.0", features = ["rand"] }
-solana-streamer = { workspace = true }
 solana-version = { workspace = true }

+ 1 - 1
gossip-bin/src/main.rs

@@ -12,8 +12,8 @@ use {
         input_parsers::{keypair_of, pubkeys_of},
         input_validators::{is_keypair_or_ask_keyword, is_port, is_pubkey},
     },
+    solana_net_utils::SocketAddrSpace,
     solana_pubkey::Pubkey,
-    solana_streamer::socket::SocketAddrSpace,
     std::{
         error,
         net::{IpAddr, Ipv4Addr, SocketAddr},

+ 1 - 2
gossip/src/cluster_info.rs

@@ -56,7 +56,7 @@ use {
         bind_in_range,
         multihomed_sockets::BindIpAddrs,
         sockets::{bind_gossip_port_in_range, bind_to_localhost_unique},
-        PortRange, VALIDATOR_PORT_RANGE,
+        PortRange, SocketAddrSpace, VALIDATOR_PORT_RANGE,
     },
     solana_perf::{
         data_budget::DataBudget,
@@ -70,7 +70,6 @@ use {
     solana_signer::Signer,
     solana_streamer::{
         packet,
-        socket::SocketAddrSpace,
         streamer::{ChannelSend, PacketBatchReceiver},
     },
     solana_time_utils::timestamp,

+ 1 - 1
gossip/src/contact_info.rs

@@ -7,10 +7,10 @@ use {
     },
     assert_matches::{assert_matches, debug_assert_matches},
     serde::{Deserialize, Deserializer, Serialize},
+    solana_net_utils::SocketAddrSpace,
     solana_pubkey::Pubkey,
     solana_sanitize::{Sanitize, SanitizeError},
     solana_serde_varint as serde_varint, solana_short_vec as short_vec,
-    solana_streamer::socket::SocketAddrSpace,
     static_assertions::const_assert_eq,
     std::{
         cmp::Ordering,

+ 1 - 1
gossip/src/crds_gossip.rs

@@ -26,9 +26,9 @@ use {
     solana_hash::Hash,
     solana_keypair::Keypair,
     solana_ledger::shred::Shred,
+    solana_net_utils::SocketAddrSpace,
     solana_pubkey::Pubkey,
     solana_signer::Signer,
-    solana_streamer::socket::SocketAddrSpace,
     solana_time_utils::timestamp,
     std::{
         collections::{HashMap, HashSet},

+ 1 - 1
gossip/src/crds_gossip_pull.rs

@@ -32,10 +32,10 @@ use {
     solana_hash::Hash,
     solana_keypair::Keypair,
     solana_native_token::LAMPORTS_PER_SOL,
+    solana_net_utils::SocketAddrSpace,
     solana_packet::PACKET_DATA_SIZE,
     solana_pubkey::Pubkey,
     solana_signer::Signer,
-    solana_streamer::socket::SocketAddrSpace,
     std::{
         collections::{HashMap, HashSet, VecDeque},
         convert::TryInto,

+ 1 - 1
gossip/src/crds_gossip_push.rs

@@ -24,9 +24,9 @@ use {
     },
     itertools::Itertools,
     solana_keypair::Keypair,
+    solana_net_utils::SocketAddrSpace,
     solana_pubkey::Pubkey,
     solana_signer::Signer,
-    solana_streamer::socket::SocketAddrSpace,
     solana_time_utils::timestamp,
     std::{
         collections::{HashMap, HashSet},

+ 1 - 1
gossip/src/duplicate_shred_listener.rs

@@ -74,8 +74,8 @@ mod tests {
         },
         solana_keypair::Keypair,
         solana_ledger::shred::Shredder,
+        solana_net_utils::SocketAddrSpace,
         solana_signer::Signer,
-        solana_streamer::socket::SocketAddrSpace,
         std::sync::{
             atomic::{AtomicU32, Ordering},
             Arc,

+ 1 - 2
gossip/src/gossip_service.rs

@@ -11,7 +11,7 @@ use {
     rand::{thread_rng, Rng},
     solana_client::{connection_cache::ConnectionCache, tpu_client::TpuClientWrapper},
     solana_keypair::Keypair,
-    solana_net_utils::DEFAULT_IP_ECHO_SERVER_THREADS,
+    solana_net_utils::{SocketAddrSpace, DEFAULT_IP_ECHO_SERVER_THREADS},
     solana_perf::recycler::Recycler,
     solana_pubkey::Pubkey,
     solana_rpc_client::rpc_client::RpcClient,
@@ -19,7 +19,6 @@ use {
     solana_signer::Signer,
     solana_streamer::{
         evicting_sender::EvictingSender,
-        socket::SocketAddrSpace,
         streamer::{self, StreamerReceiveStats},
     },
     solana_tpu_client::tpu_client::{TpuClient, TpuClientConfig},

+ 1 - 1
gossip/tests/crds_gossip.rs

@@ -19,11 +19,11 @@ use {
         crds_value::{CrdsValue, CrdsValueLabel},
     },
     solana_keypair::Keypair,
+    solana_net_utils::SocketAddrSpace,
     solana_pubkey::Pubkey,
     solana_rayon_threadlimit::get_thread_count,
     solana_sha256_hasher::hash,
     solana_signer::Signer,
-    solana_streamer::socket::SocketAddrSpace,
     solana_time_utils::timestamp,
     std::{
         collections::{HashMap, HashSet},

+ 2 - 4
gossip/tests/gossip.rs

@@ -13,14 +13,12 @@ use {
     },
     solana_hash::Hash,
     solana_keypair::Keypair,
+    solana_net_utils::SocketAddrSpace,
     solana_perf::packet::Packet,
     solana_pubkey::Pubkey,
     solana_runtime::bank_forks::BankForks,
     solana_signer::Signer,
-    solana_streamer::{
-        sendmmsg::{multi_target_send, SendPktsError},
-        socket::SocketAddrSpace,
-    },
+    solana_streamer::sendmmsg::{multi_target_send, SendPktsError},
     solana_time_utils::timestamp,
     solana_transaction::Transaction,
     solana_vote_program::{vote_instruction, vote_state::Vote},

+ 0 - 1
ledger-tool/Cargo.toml

@@ -80,7 +80,6 @@ solana-shred-version = { workspace = true }
 solana-signature = { workspace = true }
 solana-stake-interface = { workspace = true }
 solana-storage-bigtable = { workspace = true }
-solana-streamer = { workspace = true }
 solana-svm-callback = { workspace = true }
 solana-svm-feature-set = { workspace = true }
 solana-svm-log-collector = { workspace = true }

+ 1 - 1
local-cluster/src/cluster.rs

@@ -4,9 +4,9 @@ use {
     solana_gossip::{contact_info::ContactInfo, node::Node},
     solana_keypair::Keypair,
     solana_ledger::shred::Shred,
+    solana_net_utils::SocketAddrSpace,
     solana_pubkey::Pubkey,
     solana_quic_client::{QuicConfig, QuicConnectionManager, QuicPool},
-    solana_streamer::socket::SocketAddrSpace,
     solana_tpu_client::tpu_client::TpuClient,
     std::{io::Result, path::PathBuf, sync::Arc},
 };

+ 1 - 1
local-cluster/src/cluster_tests.rs

@@ -24,11 +24,11 @@ use {
     solana_hash::Hash,
     solana_keypair::Keypair,
     solana_ledger::blockstore::Blockstore,
+    solana_net_utils::SocketAddrSpace,
     solana_poh_config::PohConfig,
     solana_pubkey::Pubkey,
     solana_rpc_client::rpc_client::RpcClient,
     solana_signer::Signer,
-    solana_streamer::socket::SocketAddrSpace,
     solana_system_transaction as system_transaction,
     solana_time_utils::timestamp,
     solana_tpu_client::tpu_client::{TpuClient, TpuClientConfig, TpuSenderError},

+ 1 - 1
local-cluster/src/integration_tests.rs

@@ -37,10 +37,10 @@ use {
         leader_schedule::{FixedSchedule, IdentityKeyedLeaderSchedule, LeaderSchedule},
     },
     solana_native_token::LAMPORTS_PER_SOL,
+    solana_net_utils::SocketAddrSpace,
     solana_pubkey::Pubkey,
     solana_rpc_client::rpc_client::RpcClient,
     solana_signer::Signer,
-    solana_streamer::socket::SocketAddrSpace,
     solana_turbine::broadcast_stage::BroadcastStageType,
     static_assertions,
     std::{

+ 2 - 2
local-cluster/src/local_cluster.rs

@@ -29,7 +29,7 @@ use {
     solana_ledger::{create_new_tmp_ledger_with_size, shred::Shred},
     solana_message::Message,
     solana_native_token::LAMPORTS_PER_SOL,
-    solana_net_utils::sockets::bind_to_localhost_unique,
+    solana_net_utils::{sockets::bind_to_localhost_unique, SocketAddrSpace},
     solana_poh_config::PohConfig,
     solana_program_binaries::core_bpf_programs,
     solana_pubkey::Pubkey,
@@ -44,7 +44,7 @@ use {
         instruction as stake_instruction,
         state::{Authorized, Lockup, StakeStateV2},
     },
-    solana_streamer::{socket::SocketAddrSpace, streamer::StakedNodes},
+    solana_streamer::streamer::StakedNodes,
     solana_system_transaction as system_transaction,
     solana_tpu_client::tpu_client::{
         TpuClient, TpuClientConfig, DEFAULT_TPU_CONNECTION_POOL_SIZE, DEFAULT_TPU_ENABLE_UDP,

+ 1 - 1
local-cluster/tests/local_cluster.rs

@@ -60,6 +60,7 @@ use {
         local_cluster::{ClusterConfig, LocalCluster, DEFAULT_MINT_LAMPORTS},
         validator_configs::*,
     },
+    solana_net_utils::SocketAddrSpace,
     solana_poh_config::PohConfig,
     solana_pubkey::Pubkey,
     solana_pubsub_client::pubsub_client::PubsubClient,
@@ -74,7 +75,6 @@ use {
     solana_runtime::{commitment::VOTE_THRESHOLD_SIZE, snapshot_bank_utils, snapshot_utils},
     solana_signer::Signer,
     solana_stake_interface::{self as stake, state::NEW_WARMUP_COOLDOWN_RATE},
-    solana_streamer::socket::SocketAddrSpace,
     solana_system_interface::program as system_program,
     solana_system_transaction as system_transaction,
     solana_turbine::broadcast_stage::{

+ 8 - 4
net-utils/src/lib.rs

@@ -20,16 +20,13 @@
 mod ip_echo_client;
 mod ip_echo_server;
 pub mod multihomed_sockets;
+pub mod socket_addr_space;
 pub mod sockets;
 pub mod token_bucket;
 
 #[cfg(feature = "dev-context-only-utils")]
 pub mod tooling_for_tests;
 
-pub use ip_echo_server::{
-    ip_echo_server, IpEchoServer, DEFAULT_IP_ECHO_SERVER_THREADS, MAX_PORT_COUNT_PER_MESSAGE,
-    MINIMUM_IP_ECHO_SERVER_THREADS,
-};
 use {
     ip_echo_client::{ip_echo_server_request, ip_echo_server_request_with_binding},
     ip_echo_server::IpEchoServerMessage,
@@ -40,6 +37,13 @@ use {
     },
     url::Url,
 };
+pub use {
+    ip_echo_server::{
+        ip_echo_server, IpEchoServer, DEFAULT_IP_ECHO_SERVER_THREADS, MAX_PORT_COUNT_PER_MESSAGE,
+        MINIMUM_IP_ECHO_SERVER_THREADS,
+    },
+    socket_addr_space::SocketAddrSpace,
+};
 
 /// A data type representing a public Udp socket
 pub struct UdpSocketPair {

+ 2 - 1
streamer/src/socket.rs → net-utils/src/socket_addr_space.rs

@@ -22,11 +22,12 @@ impl SocketAddrSpace {
         if matches!(self, SocketAddrSpace::Unspecified) {
             return true;
         }
+
         // TODO: remove these once IpAddr::is_global is stable.
         match addr.ip() {
             IpAddr::V4(addr) => {
                 // TODO: Consider excluding:
-                //    addr.is_link_local() || addr.is_broadcast()
+                // addr.is_link_local() || addr.is_broadcast()
                 // || addr.is_documentation() || addr.is_unspecified()
                 !(addr.is_private() || addr.is_loopback())
             }

+ 1 - 1
programs/sbf/Cargo.lock

@@ -8154,7 +8154,6 @@ dependencies = [
  "solana-signer",
  "solana-slot-history",
  "solana-storage-bigtable",
- "solana-streamer",
  "solana-svm",
  "solana-system-interface",
  "solana-system-transaction",
@@ -10295,6 +10294,7 @@ dependencies = [
  "solana-gossip",
  "solana-hash",
  "solana-ledger",
+ "solana-net-utils",
  "solana-pubkey",
  "solana-runtime",
  "solana-shred-version",

+ 0 - 1
rpc-test/Cargo.toml

@@ -32,7 +32,6 @@ solana-pubsub-client = { workspace = true }
 solana-rpc = { workspace = true }
 solana-rpc-client = { workspace = true }
 solana-rpc-client-api = { workspace = true }
-solana-streamer = { workspace = true }
 solana-test-validator = { workspace = true }
 solana-tpu-client = { workspace = true }
 solana-transaction-status = { workspace = true }

+ 1 - 2
rpc-test/tests/rpc.rs

@@ -10,7 +10,7 @@ use {
     solana_commitment_config::CommitmentConfig,
     solana_hash::Hash,
     solana_keypair::Keypair,
-    solana_net_utils::sockets::bind_to_localhost_unique,
+    solana_net_utils::{sockets::bind_to_localhost_unique, SocketAddrSpace},
     solana_pubkey::Pubkey,
     solana_pubsub_client::nonblocking::pubsub_client::PubsubClient,
     solana_rent::Rent,
@@ -23,7 +23,6 @@ use {
     },
     solana_signature::Signature,
     solana_signer::Signer,
-    solana_streamer::socket::SocketAddrSpace,
     solana_system_transaction as system_transaction,
     solana_test_validator::TestValidator,
     solana_tpu_client::tpu_client::{TpuClient, TpuClientConfig, DEFAULT_TPU_CONNECTION_POOL_SIZE},

+ 0 - 1
rpc/Cargo.toml

@@ -80,7 +80,6 @@ solana-signature = { workspace = true }
 solana-signer = { workspace = true }
 solana-slot-history = { workspace = true }
 solana-storage-bigtable = { workspace = true }
-solana-streamer = { workspace = true }
 solana-svm = { workspace = true }
 solana-system-interface = { workspace = true }
 solana-system-transaction = { workspace = true }

+ 1 - 1
rpc/src/cluster_tpu_info.rs

@@ -95,6 +95,7 @@ mod test {
             blockstore::Blockstore, get_tmp_ledger_path_auto_delete,
             leader_schedule_cache::LeaderScheduleCache,
         },
+        solana_net_utils::SocketAddrSpace,
         solana_poh_config::PohConfig,
         solana_runtime::{
             bank::Bank,
@@ -103,7 +104,6 @@ mod test {
             },
         },
         solana_signer::Signer,
-        solana_streamer::socket::SocketAddrSpace,
         solana_time_utils::timestamp,
         std::{net::Ipv4Addr, sync::atomic::AtomicBool},
     };

+ 1 - 1
rpc/src/rpc.rs

@@ -122,12 +122,12 @@ use {
 use {
     solana_gossip::contact_info::ContactInfo,
     solana_ledger::get_tmp_ledger_path,
+    solana_net_utils::SocketAddrSpace,
     solana_runtime::commitment::CommitmentSlots,
     solana_send_transaction_service::{
         send_transaction_service::Config as SendTransactionServiceConfig,
         send_transaction_service::SendTransactionService, test_utils::ClientWithCreator,
     },
-    solana_streamer::socket::SocketAddrSpace,
 };
 
 mod transaction {

+ 0 - 1
streamer/src/lib.rs

@@ -15,7 +15,6 @@ pub mod packet;
 pub mod quic;
 pub mod recvmmsg;
 pub mod sendmmsg;
-pub mod socket;
 pub mod streamer;
 
 #[macro_use]

+ 2 - 1
streamer/src/packet.rs

@@ -9,7 +9,8 @@ use nix::poll::{poll, PollFd, PollTimeout};
 ))]
 use nix::{poll::ppoll, sys::time::TimeSpec};
 use {
-    crate::{recvmmsg::recv_mmsg, socket::SocketAddrSpace},
+    crate::recvmmsg::recv_mmsg,
+    solana_net_utils::SocketAddrSpace,
     std::{
         io::{ErrorKind, Result},
         net::UdpSocket,

+ 6 - 3
streamer/src/streamer.rs

@@ -7,13 +7,16 @@ use {
             self, PacketBatch, PacketBatchRecycler, PacketRef, PinnedPacketBatch, PACKETS_PER_BATCH,
         },
         sendmmsg::{batch_send, SendPktsError},
-        socket::SocketAddrSpace,
     },
     crossbeam_channel::{Receiver, RecvTimeoutError, SendError, Sender, TrySendError},
     histogram::Histogram,
     itertools::Itertools,
-    solana_net_utils::multihomed_sockets::{
-        BindIpAddrs, CurrentSocket, FixedSocketProvider, MultihomedSocketProvider, SocketProvider,
+    solana_net_utils::{
+        multihomed_sockets::{
+            BindIpAddrs, CurrentSocket, FixedSocketProvider, MultihomedSocketProvider,
+            SocketProvider,
+        },
+        SocketAddrSpace,
     },
     solana_packet::Packet,
     solana_pubkey::Pubkey,

+ 4 - 2
test-validator/src/lib.rs

@@ -45,7 +45,9 @@ use {
     solana_loader_v3_interface::state::UpgradeableLoaderState,
     solana_message::Message,
     solana_native_token::LAMPORTS_PER_SOL,
-    solana_net_utils::{find_available_ports_in_range, multihomed_sockets::BindIpAddrs, PortRange},
+    solana_net_utils::{
+        find_available_ports_in_range, multihomed_sockets::BindIpAddrs, PortRange, SocketAddrSpace,
+    },
     solana_pubkey::Pubkey,
     solana_rent::Rent,
     solana_rpc::{rpc::JsonRpcConfig, rpc_pubsub_service::PubSubConfig},
@@ -58,7 +60,7 @@ use {
     },
     solana_sdk_ids::address_lookup_table,
     solana_signer::Signer,
-    solana_streamer::{quic::DEFAULT_QUIC_ENDPOINTS, socket::SocketAddrSpace},
+    solana_streamer::quic::DEFAULT_QUIC_ENDPOINTS,
     solana_tpu_client::tpu_client::DEFAULT_TPU_ENABLE_UDP,
     solana_transaction::Transaction,
     solana_validator_exit::Exit,

+ 1 - 1
tokens/Cargo.toml

@@ -36,6 +36,7 @@ solana-instruction = { workspace = true }
 solana-keypair = { workspace = true }
 solana-message = { workspace = true }
 solana-native-token = { workspace = true }
+solana-net-utils = { workspace = true }
 solana-program-error = { workspace = true }
 solana-program-pack = { workspace = true }
 solana-pubkey = { workspace = true, features = ["rand"] }
@@ -58,6 +59,5 @@ thiserror = { workspace = true }
 agave-logger = { workspace = true }
 assert_matches = { workspace = true }
 bincode = { workspace = true }
-solana-streamer = { workspace = true }
 solana-test-validator = { workspace = true }
 solana-transaction-error = { workspace = true }

+ 1 - 1
tokens/src/commands.rs

@@ -1311,9 +1311,9 @@ mod tests {
         solana_instruction::AccountMeta,
         solana_keypair::{read_keypair_file, write_keypair_file},
         solana_native_token::LAMPORTS_PER_SOL,
+        solana_net_utils::SocketAddrSpace,
         solana_signer::Signer,
         solana_stake_interface::instruction::StakeInstruction,
-        solana_streamer::socket::SocketAddrSpace,
         solana_test_validator::TestValidator,
         solana_transaction_status::TransactionConfirmationStatus,
         std::slice,

+ 3 - 2
tokens/tests/commands.rs

@@ -1,6 +1,7 @@
 use {
-    solana_keypair::Keypair, solana_rpc_client::rpc_client::RpcClient, solana_signer::Signer,
-    solana_streamer::socket::SocketAddrSpace, solana_test_validator::TestValidator,
+    solana_keypair::Keypair, solana_net_utils::SocketAddrSpace,
+    solana_rpc_client::rpc_client::RpcClient, solana_signer::Signer,
+    solana_test_validator::TestValidator,
     solana_tokens::commands::test_process_distribute_tokens_with_client,
 };
 

+ 0 - 1
transaction-dos/Cargo.toml

@@ -38,7 +38,6 @@ solana-pubkey = { workspace = true }
 solana-rpc-client = { workspace = true }
 solana-runtime = { workspace = true }
 solana-signer = { workspace = true }
-solana-streamer = { workspace = true }
 solana-system-interface = { workspace = true }
 solana-transaction = { workspace = true }
 solana-transaction-status = { workspace = true }

+ 1 - 1
transaction-dos/src/main.rs

@@ -17,11 +17,11 @@ use {
     solana_instruction::{AccountMeta, Instruction},
     solana_keypair::{read_keypair_file, Keypair},
     solana_message::Message,
+    solana_net_utils::SocketAddrSpace,
     solana_packet::PACKET_DATA_SIZE,
     solana_pubkey::Pubkey,
     solana_rpc_client::rpc_client::RpcClient,
     solana_signer::Signer,
-    solana_streamer::socket::SocketAddrSpace,
     solana_system_interface::instruction as system_instruction,
     solana_transaction::Transaction,
     std::{

+ 1 - 2
turbine/benches/cluster_info.rs

@@ -9,11 +9,10 @@ use {
         genesis_utils::{create_genesis_config, GenesisConfigInfo},
         shred::{ProcessShredsStats, ReedSolomonCache, Shredder},
     },
-    solana_net_utils::sockets::bind_to_localhost_unique,
+    solana_net_utils::{sockets::bind_to_localhost_unique, SocketAddrSpace},
     solana_pubkey as pubkey,
     solana_runtime::{bank::Bank, bank_forks::BankForks},
     solana_signer::Signer,
-    solana_streamer::socket::SocketAddrSpace,
     solana_time_utils::{timestamp, AtomicInterval},
     solana_turbine::{
         broadcast_stage::{

+ 1 - 1
turbine/benches/cluster_nodes.rs

@@ -7,8 +7,8 @@ use {
     solana_hash::Hash,
     solana_keypair::Keypair,
     solana_ledger::shred::{ProcessShredsStats, ReedSolomonCache, Shredder},
+    solana_net_utils::SocketAddrSpace,
     solana_pubkey::Pubkey,
-    solana_streamer::socket::SocketAddrSpace,
     solana_turbine::{
         cluster_nodes::{make_test_cluster, new_cluster_nodes, ClusterNodes},
         retransmit_stage::RetransmitStage,

+ 2 - 4
turbine/src/broadcast_stage.rs

@@ -24,13 +24,11 @@ use {
     solana_ledger::{blockstore::Blockstore, shred::Shred},
     solana_measure::measure::Measure,
     solana_metrics::{inc_new_counter_error, inc_new_counter_info},
+    solana_net_utils::SocketAddrSpace,
     solana_poh::poh_recorder::WorkingBankEntry,
     solana_pubkey::Pubkey,
     solana_runtime::{bank::MAX_LEADER_SCHEDULE_STAKES, bank_forks::BankForks},
-    solana_streamer::{
-        sendmmsg::{batch_send, SendPktsError},
-        socket::SocketAddrSpace,
-    },
+    solana_streamer::sendmmsg::{batch_send, SendPktsError},
     solana_time_utils::{timestamp, AtomicInterval},
     std::{
         collections::{HashMap, HashSet},

+ 1 - 1
turbine/src/broadcast_stage/broadcast_fake_shreds_run.rs

@@ -191,8 +191,8 @@ impl BroadcastRun for BroadcastFakeShredsRun {
 mod tests {
     use {
         super::*,
+        solana_net_utils::SocketAddrSpace,
         solana_signer::Signer,
-        solana_streamer::socket::SocketAddrSpace,
         std::net::{IpAddr, Ipv4Addr, SocketAddr},
     };
 

+ 1 - 2
turbine/src/broadcast_stage/standard_broadcast_run.rs

@@ -509,10 +509,9 @@ mod test {
             get_tmp_ledger_path,
             shred::{max_ticks_per_n_shreds, DATA_SHREDS_PER_FEC_BLOCK},
         },
-        solana_net_utils::sockets::bind_to_localhost_unique,
+        solana_net_utils::{sockets::bind_to_localhost_unique, SocketAddrSpace},
         solana_runtime::bank::Bank,
         solana_signer::Signer,
-        solana_streamer::socket::SocketAddrSpace,
         std::{ops::Deref, sync::Arc, time::Duration},
     };
 

+ 1 - 1
turbine/src/cluster_nodes.rs

@@ -19,10 +19,10 @@ use {
     solana_keypair::Keypair,
     solana_ledger::shred::ShredId,
     solana_native_token::LAMPORTS_PER_SOL,
+    solana_net_utils::SocketAddrSpace,
     solana_pubkey::Pubkey,
     solana_runtime::bank::Bank,
     solana_signer::Signer,
-    solana_streamer::socket::SocketAddrSpace,
     solana_time_utils::timestamp,
     std::{
         any::TypeId,

+ 2 - 4
turbine/src/retransmit_stage.rs

@@ -19,6 +19,7 @@ use {
         shred::{self, ShredFlags, ShredId, ShredType},
     },
     solana_measure::measure::Measure,
+    solana_net_utils::SocketAddrSpace,
     solana_perf::deduper::Deduper,
     solana_pubkey::Pubkey,
     solana_rpc::{
@@ -30,10 +31,7 @@ use {
         bank::{Bank, MAX_LEADER_SCHEDULE_STAKES},
         bank_forks::BankForks,
     },
-    solana_streamer::{
-        sendmmsg::{multi_target_send, SendPktsError},
-        socket::SocketAddrSpace,
-    },
+    solana_streamer::sendmmsg::{multi_target_send, SendPktsError},
     solana_time_utils::timestamp,
     std::{
         borrow::Cow,

+ 1 - 1
turbine/src/sigverify_shreds.rs

@@ -570,10 +570,10 @@ mod tests {
             genesis_utils::create_genesis_config_with_leader,
             shred::{Nonce, ProcessShredsStats, ReedSolomonCache, Shredder},
         },
+        solana_net_utils::SocketAddrSpace,
         solana_perf::packet::{Packet, PacketFlags, PinnedPacketBatch},
         solana_runtime::bank::Bank,
         solana_signer::Signer,
-        solana_streamer::socket::SocketAddrSpace,
         solana_time_utils::timestamp,
         test_case::test_matrix,
     };

+ 1 - 2
validator/src/admin_rpc_service.rs

@@ -1048,7 +1048,7 @@ mod tests {
                 create_genesis_config, create_genesis_config_with_leader, GenesisConfigInfo,
             },
         },
-        solana_net_utils::sockets::bind_to_localhost_unique,
+        solana_net_utils::{sockets::bind_to_localhost_unique, SocketAddrSpace},
         solana_program_option::COption,
         solana_program_pack::Pack,
         solana_pubkey::Pubkey,
@@ -1057,7 +1057,6 @@ mod tests {
             bank::{Bank, BankTestConfig},
             bank_forks::BankForks,
         },
-        solana_streamer::socket::SocketAddrSpace,
         solana_system_interface::program as system_program,
         solana_tpu_client::tpu_client::DEFAULT_TPU_ENABLE_UDP,
         spl_generic_token::token,

+ 1 - 1
validator/src/bin/solana-test-validator.rs

@@ -20,6 +20,7 @@ use {
     solana_inflation::Inflation,
     solana_keypair::{read_keypair_file, write_keypair_file, Keypair},
     solana_native_token::sol_str_to_lamports,
+    solana_net_utils::SocketAddrSpace,
     solana_pubkey::Pubkey,
     solana_rent::Rent,
     solana_rpc::{
@@ -28,7 +29,6 @@ use {
     },
     solana_rpc_client::rpc_client::RpcClient,
     solana_signer::Signer,
-    solana_streamer::socket::SocketAddrSpace,
     solana_system_interface::program as system_program,
     solana_test_validator::*,
     std::{

+ 1 - 1
validator/src/bootstrap.rs

@@ -23,10 +23,10 @@ use {
     solana_hash::Hash,
     solana_keypair::Keypair,
     solana_metrics::datapoint_info,
+    solana_net_utils::SocketAddrSpace,
     solana_pubkey::Pubkey,
     solana_rpc_client::rpc_client::RpcClient,
     solana_signer::Signer,
-    solana_streamer::socket::SocketAddrSpace,
     solana_vote_program::vote_state::VoteStateV4,
     std::{
         collections::{hash_map::RandomState, HashMap, HashSet},

+ 1 - 1
validator/src/commands/run/args.rs

@@ -24,11 +24,11 @@ use {
     },
     solana_keypair::Keypair,
     solana_ledger::{blockstore_options::BlockstoreOptions, use_snapshot_archives_at_startup},
+    solana_net_utils::SocketAddrSpace,
     solana_pubkey::Pubkey,
     solana_rpc::{rpc::JsonRpcConfig, rpc_pubsub_service::PubSubConfig},
     solana_send_transaction_service::send_transaction_service::Config as SendTransactionServiceConfig,
     solana_signer::Signer,
-    solana_streamer::socket::SocketAddrSpace,
     solana_unified_scheduler_pool::DefaultSchedulerPool,
     std::{collections::HashSet, net::SocketAddr, path::PathBuf, str::FromStr},
 };

+ 1 - 2
vortexor/tests/vortexor.rs

@@ -7,7 +7,7 @@ use {
         local_cluster::{ClusterConfig, LocalCluster},
     },
     solana_native_token::LAMPORTS_PER_SOL,
-    solana_net_utils::VALIDATOR_PORT_RANGE,
+    solana_net_utils::{SocketAddrSpace, VALIDATOR_PORT_RANGE},
     solana_pubkey::Pubkey,
     solana_signer::Signer,
     solana_streamer::{
@@ -16,7 +16,6 @@ use {
             DEFAULT_MAX_CONNECTIONS_PER_IPADDR_PER_MINUTE, DEFAULT_MAX_STAKED_CONNECTIONS,
             DEFAULT_MAX_STREAMS_PER_MS, DEFAULT_MAX_UNSTAKED_CONNECTIONS,
         },
-        socket::SocketAddrSpace,
         streamer::StakedNodes,
     },
     solana_vortexor::{

+ 1 - 1
votor/src/consensus_pool.rs

@@ -561,6 +561,7 @@ mod tests {
         solana_gossip::contact_info::ContactInfo,
         solana_hash::Hash,
         solana_keypair::Keypair,
+        solana_net_utils::SocketAddrSpace,
         solana_runtime::{
             bank::{Bank, NewBankOptions},
             bank_forks::BankForks,
@@ -569,7 +570,6 @@ mod tests {
             },
         },
         solana_signer::Signer,
-        solana_streamer::socket::SocketAddrSpace,
         std::sync::{Arc, RwLock},
         test_case::test_case,
     };

+ 1 - 1
votor/src/consensus_pool/parent_ready_tracker.rs

@@ -238,7 +238,7 @@ mod tests {
     use {
         super::*, itertools::Itertools, solana_clock::NUM_CONSECUTIVE_LEADER_SLOTS,
         solana_gossip::contact_info::ContactInfo, solana_hash::Hash, solana_keypair::Keypair,
-        solana_signer::Signer, solana_streamer::socket::SocketAddrSpace,
+        solana_net_utils::SocketAddrSpace, solana_signer::Signer,
     };
 
     fn new_cluster_info() -> Arc<ClusterInfo> {

+ 1 - 1
votor/src/consensus_pool_service.rs

@@ -434,6 +434,7 @@ mod tests {
         solana_gossip::{cluster_info::ClusterInfo, contact_info::ContactInfo},
         solana_hash::Hash,
         solana_ledger::get_tmp_ledger_path_auto_delete,
+        solana_net_utils::SocketAddrSpace,
         solana_runtime::{
             bank_forks::{BankForks, SharableBanks},
             genesis_utils::{
@@ -441,7 +442,6 @@ mod tests {
             },
         },
         solana_signer::Signer,
-        solana_streamer::socket::SocketAddrSpace,
         std::sync::{Arc, Mutex},
         test_case::test_case,
     };

+ 1 - 1
votor/src/event_handler.rs

@@ -842,6 +842,7 @@ mod tests {
             blockstore::Blockstore, blockstore_options::BlockstoreOptions, get_tmp_ledger_path,
             leader_schedule_cache::LeaderScheduleCache,
         },
+        solana_net_utils::SocketAddrSpace,
         solana_runtime::{
             bank::Bank,
             bank_forks::BankForks,
@@ -850,7 +851,6 @@ mod tests {
             },
             installed_scheduler_pool::BankWithScheduler,
         },
-        solana_streamer::socket::SocketAddrSpace,
         std::{
             collections::HashMap,
             fs::remove_file,

+ 1 - 1
votor/src/staked_validators_cache.rs

@@ -241,6 +241,7 @@ mod tests {
             crds_data::CrdsData, crds_value::CrdsValue, node::Node,
         },
         solana_keypair::Keypair,
+        solana_net_utils::SocketAddrSpace,
         solana_pubkey::Pubkey,
         solana_runtime::{
             bank::Bank,
@@ -250,7 +251,6 @@ mod tests {
             },
         },
         solana_signer::Signer,
-        solana_streamer::socket::SocketAddrSpace,
         solana_time_utils::timestamp,
         std::{
             collections::HashMap,

+ 1 - 2
votor/src/voting_service.rs

@@ -269,7 +269,7 @@ mod tests {
         solana_bls_signatures::Signature as BLSSignature,
         solana_gossip::{cluster_info::ClusterInfo, contact_info::ContactInfo},
         solana_keypair::Keypair,
-        solana_net_utils::sockets::bind_to_localhost_unique,
+        solana_net_utils::{sockets::bind_to_localhost_unique, SocketAddrSpace},
         solana_runtime::{
             bank::Bank,
             bank_forks::BankForks,
@@ -281,7 +281,6 @@ mod tests {
         solana_streamer::{
             nonblocking::swqos::SwQosConfig,
             quic::{spawn_stake_wighted_qos_server, QuicStreamerConfig, SpawnServerResult},
-            socket::SocketAddrSpace,
             streamer::StakedNodes,
         },
         std::{net::SocketAddr, sync::Arc},

+ 1 - 1
wen-restart/Cargo.toml

@@ -32,6 +32,7 @@ solana-genesis-utils = { workspace = true }
 solana-gossip = { workspace = true }
 solana-hash = { workspace = true }
 solana-ledger = { workspace = true }
+solana-net-utils = { workspace = true }
 solana-pubkey = { workspace = true }
 solana-runtime = { workspace = true }
 solana-shred-version = { workspace = true }
@@ -61,5 +62,4 @@ solana-keypair = { workspace = true }
 solana-ledger = { workspace = true, features = ["dev-context-only-utils"] }
 solana-runtime = { workspace = true, features = ["dev-context-only-utils"] }
 solana-signer = { workspace = true }
-solana-streamer = { workspace = true }
 tempfile = { workspace = true }

+ 1 - 1
wen-restart/src/wen_restart.rs

@@ -1435,6 +1435,7 @@ mod tests {
             blockstore_processor::{fill_blockstore_slot_with_ticks, test_process_blockstore},
             get_tmp_ledger_path_auto_delete,
         },
+        solana_net_utils::SocketAddrSpace,
         solana_pubkey::Pubkey,
         solana_runtime::{
             epoch_stakes::VersionedEpochStakes,
@@ -1444,7 +1445,6 @@ mod tests {
             snapshot_bank_utils::bank_to_full_snapshot_archive,
         },
         solana_signer::Signer,
-        solana_streamer::socket::SocketAddrSpace,
         solana_time_utils::timestamp,
         solana_vote::vote_account::VoteAccount,
         solana_vote_interface::state::{TowerSync, Vote},