@@ -141,7 +141,7 @@ use {
141141 solana_turbine:: {
142142 self ,
143143 broadcast_stage:: BroadcastStageType ,
144- xdp:: { master_ip_if_bonded , XdpConfig , XdpRetransmitBuilder , XdpRetransmitter } ,
144+ xdp:: { XdpRetransmitBuilder , XdpRetransmitter } ,
145145 } ,
146146 solana_unified_scheduler_logic:: SchedulingMode ,
147147 solana_unified_scheduler_pool:: { DefaultSchedulerPool , SupportedSchedulingMode } ,
@@ -151,7 +151,7 @@ use {
151151 std:: {
152152 borrow:: Cow ,
153153 collections:: { HashMap , HashSet } ,
154- net:: { IpAddr , SocketAddr } ,
154+ net:: SocketAddr ,
155155 num:: { NonZeroU64 , NonZeroUsize } ,
156156 path:: { Path , PathBuf } ,
157157 str:: FromStr ,
@@ -412,7 +412,6 @@ pub struct ValidatorConfig {
412412 pub replay_transactions_threads : NonZeroUsize ,
413413 pub tvu_shred_sigverify_threads : NonZeroUsize ,
414414 pub delay_leader_block_for_pending_fork : bool ,
415- pub retransmit_xdp : Option < XdpConfig > ,
416415 pub repair_handler_type : RepairHandlerType ,
417416}
418417
@@ -494,7 +493,6 @@ impl ValidatorConfig {
494493 tvu_shred_sigverify_threads : NonZeroUsize :: new ( get_thread_count ( ) )
495494 . expect ( "thread count is non-zero" ) ,
496495 delay_leader_block_for_pending_fork : false ,
497- retransmit_xdp : None ,
498496 repair_handler_type : RepairHandlerType :: default ( ) ,
499497 }
500498 }
@@ -701,6 +699,7 @@ impl Validator {
701699 socket_addr_space : SocketAddrSpace ,
702700 tpu_config : ValidatorTpuConfig ,
703701 admin_rpc_service_post_init : Arc < RwLock < Option < AdminRpcRequestMetadataPostInit > > > ,
702+ maybe_xdp_retransmit_builder : Option < XdpRetransmitBuilder > ,
704703 ) -> Result < Self > {
705704 #[ cfg( debug_assertions) ]
706705 const DEBUG_ASSERTION_STATUS : & str = "enabled" ;
@@ -1543,28 +1542,13 @@ impl Validator {
15431542 )
15441543 } ) ;
15451544
1546- let ( xdp_retransmitter, xdp_sender) = if let Some ( xdp_config) =
1547- config. retransmit_xdp . clone ( )
1548- {
1549- let src_port = node. sockets . retransmit_sockets [ 0 ]
1550- . local_addr ( )
1551- . expect ( "failed to get local address" )
1552- . port ( ) ;
1553- let src_ip = match node. bind_ip_addrs . active ( ) {
1554- IpAddr :: V4 ( ip) if !ip. is_unspecified ( ) => Some ( ip) ,
1555- IpAddr :: V4 ( _unspecified) => xdp_config
1556- . interface
1557- . as_ref ( )
1558- . and_then ( |iface| master_ip_if_bonded ( iface) ) ,
1559- _ => panic ! ( "IPv6 not supported" ) ,
1545+ let ( xdp_retransmitter, xdp_sender) =
1546+ if let Some ( xdp_retransmit_builder) = maybe_xdp_retransmit_builder {
1547+ let ( rtx, sender) = xdp_retransmit_builder. build ( exit. clone ( ) ) ;
1548+ ( Some ( rtx) , Some ( sender) )
1549+ } else {
1550+ ( None , None )
15601551 } ;
1561- let xdp_retransmit_builder = XdpRetransmitBuilder :: new ( xdp_config, src_port, src_ip)
1562- . expect ( "failed to create xdp retransmitter" ) ;
1563- let ( rtx, sender) = xdp_retransmit_builder. build ( exit. clone ( ) ) ;
1564- ( Some ( rtx) , Some ( sender) )
1565- } else {
1566- ( None , None )
1567- } ;
15681552
15691553 // disable all2all tests if not allowed for a given cluster type
15701554 let alpenglow_socket = if genesis_config. cluster_type == ClusterType :: Testnet
@@ -2968,6 +2952,7 @@ mod tests {
29682952 SocketAddrSpace :: Unspecified ,
29692953 ValidatorTpuConfig :: new_for_tests ( ) ,
29702954 Arc :: new ( RwLock :: new ( None ) ) ,
2955+ None ,
29712956 )
29722957 . expect ( "assume successful validator start" ) ;
29732958 assert_eq ! (
@@ -3182,6 +3167,7 @@ mod tests {
31823167 SocketAddrSpace :: Unspecified ,
31833168 ValidatorTpuConfig :: new_for_tests ( ) ,
31843169 Arc :: new ( RwLock :: new ( None ) ) ,
3170+ None ,
31853171 )
31863172 . expect ( "assume successful validator start" )
31873173 } )
0 commit comments