From d4f1b59d2bf5a530b1ce6a716c0296e8c957c19a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=20H=C3=A4ggblad?= Date: Tue, 24 Sep 2024 08:44:33 +0200 Subject: [PATCH] Remove 2-hop support in IPR --- .../src/connected_client_handler.rs | 7 +---- .../ip-packet-router/src/mixnet_listener.rs | 27 ++----------------- .../src/util/create_message.rs | 9 +------ 3 files changed, 4 insertions(+), 39 deletions(-) diff --git a/service-providers/ip-packet-router/src/connected_client_handler.rs b/service-providers/ip-packet-router/src/connected_client_handler.rs index 8754fb8394..a1904eba5f 100644 --- a/service-providers/ip-packet-router/src/connected_client_handler.rs +++ b/service-providers/ip-packet-router/src/connected_client_handler.rs @@ -22,9 +22,6 @@ pub(crate) struct ConnectedClientHandler { // The address of the client that this handler is connected to nym_address: Recipient, - // The number of hops the packet should take before reaching the client - mix_hops: Option, - // Channel to receive packets from the tun_listener forward_from_tun_rx: tokio::sync::mpsc::UnboundedReceiver>, @@ -47,7 +44,6 @@ pub(crate) struct ConnectedClientHandler { impl ConnectedClientHandler { pub(crate) fn start( reply_to: Recipient, - reply_to_hops: Option, buffer_timeout: std::time::Duration, client_version: SupportedClientVersion, mixnet_client_sender: nym_sdk::mixnet::MixnetClientSender, @@ -67,7 +63,6 @@ impl ConnectedClientHandler { let connected_client_handler = ConnectedClientHandler { nym_address: reply_to, - mix_hops: reply_to_hops, forward_from_tun_rx, mixnet_client_sender, close_rx, @@ -98,7 +93,7 @@ impl ConnectedClientHandler { } .map_err(|err| IpPacketRouterError::FailedToSerializeResponsePacket { source: err })?; - let input_message = create_input_message(self.nym_address, response_packet, self.mix_hops); + let input_message = create_input_message(self.nym_address, response_packet); self.mixnet_client_sender .send(input_message) diff --git a/service-providers/ip-packet-router/src/mixnet_listener.rs b/service-providers/ip-packet-router/src/mixnet_listener.rs index 7713cc0541..1fe3641754 100644 --- a/service-providers/ip-packet-router/src/mixnet_listener.rs +++ b/service-providers/ip-packet-router/src/mixnet_listener.rs @@ -96,6 +96,7 @@ impl ConnectedClients { }) } + #[allow(dead_code)] fn lookup_client_from_nym_address(&self, nym_address: &Recipient) -> Option<&ConnectedClient> { self.clients_ipv4_mapping .iter() @@ -112,7 +113,6 @@ impl ConnectedClients { &mut self, ips: IpPair, nym_address: Recipient, - mix_hops: Option, client_version: SupportedClientVersion, forward_from_tun_tx: tokio::sync::mpsc::UnboundedSender>, close_tx: tokio::sync::oneshot::Sender<()>, @@ -123,7 +123,6 @@ impl ConnectedClients { let client = ConnectedClient { nym_address, ipv6: ips.ipv6, - mix_hops, last_activity: Arc::new(RwLock::new(std::time::Instant::now())), client_version, _close_tx: Arc::new(CloseTx { @@ -247,10 +246,6 @@ pub(crate) struct ConnectedClient { // The assigned IPv6 address of this client pub(crate) ipv6: Ipv6Addr, - // Number of mix node hops that the client has requested to use - // WIP(JON): remove me - pub(crate) mix_hops: Option, - // Keep track of last activity so we can disconnect inactive clients pub(crate) last_activity: Arc>, @@ -494,10 +489,8 @@ impl MixnetListener { let request_id = connect_request.request_id; let requested_ips = connect_request.ips; let reply_to = connect_request.reply_to; - let reply_to_hops = connect_request.reply_to_hops; // TODO: add to connect request let buffer_timeout = nym_ip_packet_requests::codec::BUFFER_TIMEOUT; - // TODO: ignoring reply_to_avg_mix_delays for now // Check that the IP is available in the set of connected clients let is_ip_taken = self.connected_clients.is_ip_connected(&requested_ips); @@ -529,7 +522,6 @@ impl MixnetListener { let (forward_from_tun_tx, close_tx, handle) = connected_client_handler::ConnectedClientHandler::start( reply_to, - reply_to_hops, buffer_timeout, client_version, self.mixnet_client.split_sender(), @@ -539,7 +531,6 @@ impl MixnetListener { self.connected_clients.connect( requested_ips, reply_to, - reply_to_hops, client_version, forward_from_tun_tx, close_tx, @@ -584,10 +575,8 @@ impl MixnetListener { let request_id = connect_request.request_id; let reply_to = connect_request.reply_to; - let reply_to_hops = connect_request.reply_to_hops; // TODO: add to connect request let buffer_timeout = nym_ip_packet_requests::codec::BUFFER_TIMEOUT; - // TODO: ignoring reply_to_avg_mix_delays for now // Check if it's the same client connecting again, then we just reuse the same IP // TODO: this is problematic. Until we sign connect requests this means you can spam people @@ -625,7 +614,6 @@ impl MixnetListener { let (forward_from_tun_tx, close_tx, handle) = connected_client_handler::ConnectedClientHandler::start( reply_to, - reply_to_hops, buffer_timeout, client_version, self.mixnet_client.split_sender(), @@ -635,7 +623,6 @@ impl MixnetListener { self.connected_clients.connect( new_ips, reply_to, - reply_to_hops, client_version, forward_from_tun_tx, close_tx, @@ -878,17 +865,7 @@ impl MixnetListener { let response_packet = response.to_bytes()?; - // We could avoid this lookup if we check this when we create the response. - let mix_hops = if let Some(c) = self - .connected_clients - .lookup_client_from_nym_address(recipient) - { - c.mix_hops - } else { - None - }; - - let input_message = create_input_message(*recipient, response_packet, mix_hops); + let input_message = create_input_message(*recipient, response_packet); self.mixnet_client .send(input_message) .await diff --git a/service-providers/ip-packet-router/src/util/create_message.rs b/service-providers/ip-packet-router/src/util/create_message.rs index d04d85bd22..dca63c21df 100644 --- a/service-providers/ip-packet-router/src/util/create_message.rs +++ b/service-providers/ip-packet-router/src/util/create_message.rs @@ -4,15 +4,8 @@ use nym_task::connections::TransmissionLane; pub(crate) fn create_input_message( nym_address: Recipient, response_packet: Vec, - mix_hops: Option, ) -> InputMessage { let lane = TransmissionLane::General; let packet_type = None; - InputMessage::new_regular_with_custom_hops( - nym_address, - response_packet, - lane, - packet_type, - mix_hops, - ) + InputMessage::new_regular(nym_address, response_packet, lane, packet_type) }