udp: uring: combine SendBuffers metadata lookups

This commit is contained in:
Joakim Frostegård 2023-03-08 14:40:29 +01:00
parent 1be6d4fa61
commit aae19c4cb3
2 changed files with 17 additions and 18 deletions

View file

@ -297,8 +297,10 @@ impl SocketWorker {
} else if self.config.statistics.active() { } else if self.config.statistics.active() {
let send_buffer_index = send_buffer_index as usize; let send_buffer_index = send_buffer_index as usize;
let (statistics, extra_bytes) = let (response_type, receiver_is_ipv4) =
if self.send_buffers.receiver_is_ipv4(send_buffer_index) { self.send_buffers.response_type_and_ipv4(send_buffer_index);
let (statistics, extra_bytes) = if receiver_is_ipv4 {
(&self.shared_state.statistics_ipv4, EXTRA_PACKET_SIZE_IPV4) (&self.shared_state.statistics_ipv4, EXTRA_PACKET_SIZE_IPV4)
} else { } else {
(&self.shared_state.statistics_ipv6, EXTRA_PACKET_SIZE_IPV6) (&self.shared_state.statistics_ipv6, EXTRA_PACKET_SIZE_IPV6)
@ -308,8 +310,7 @@ impl SocketWorker {
.bytes_sent .bytes_sent
.fetch_add(result as usize + extra_bytes, Ordering::Relaxed); .fetch_add(result as usize + extra_bytes, Ordering::Relaxed);
let response_counter = let response_counter = match response_type {
match self.send_buffers.response_type(send_buffer_index) {
ResponseType::Connect => &statistics.responses_sent_connect, ResponseType::Connect => &statistics.responses_sent_connect,
ResponseType::Announce => &statistics.responses_sent_announce, ResponseType::Announce => &statistics.responses_sent_announce,
ResponseType::Scrape => &statistics.responses_sent_scrape, ResponseType::Scrape => &statistics.responses_sent_scrape,

View file

@ -191,12 +191,10 @@ impl SendBuffers {
} }
} }
pub fn receiver_is_ipv4(&mut self, index: usize) -> bool { pub fn response_type_and_ipv4(&self, index: usize) -> (ResponseType, bool) {
self.buffers[index].receiver_is_ipv4 let buffer = self.buffers.get(index).unwrap();
}
pub fn response_type(&mut self, index: usize) -> ResponseType { (buffer.response_type, buffer.receiver_is_ipv4)
self.buffers[index].response_type
} }
pub fn mark_index_as_free(&mut self, index: usize) { pub fn mark_index_as_free(&mut self, index: usize) {