Skip to content

Commit db2af02

Browse files
committed
wip
Signed-off-by: Matej Hrica <mhrica@redhat.com>
1 parent 5db2c21 commit db2af02

File tree

5 files changed

+756
-491
lines changed

5 files changed

+756
-491
lines changed

src/devices/src/virtio/net/unixgram.rs

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -179,10 +179,10 @@ impl NetBackend for Unixgram {
179179
});
180180

181181
#[cfg(target_os = "linux")]
182-
self.recv_linux(vnet_offset);
182+
self.recv_linux();
183183

184184
#[cfg(target_os = "macos")]
185-
self.recv_macos(vnet_offset);
185+
self.recv_macos();
186186

187187
Ok(())
188188
}
@@ -241,7 +241,7 @@ impl Unixgram {
241241
Ok(())
242242
}
243243

244-
fn recv_linux(&mut self, vnet_offset: usize) {
244+
fn recv_linux(&mut self) {
245245
let fd = self.fd.as_raw_fd();
246246

247247
self.rx_producer.produce(|chains, completer| {
@@ -278,10 +278,9 @@ impl Unixgram {
278278
match ret {
279279
n if n > 0 => {
280280
for i in 0..(n as usize) {
281+
// vnet header bytes already tracked by feed_with_transform
281282
let bytes_received = mmsghdrs[i].msg_len as usize;
282-
// Total bytes = vnet header (written during feed) + payload received
283-
let total_bytes = vnet_offset + bytes_received;
284-
completer.complete(&mut chains[i], i, total_bytes);
283+
completer.complete(&mut chains[i], i, bytes_received);
285284
}
286285
}
287286
0 => log::warn!("recvmmsg returned 0 (unexpected)"),
@@ -308,7 +307,7 @@ impl Unixgram {
308307
}
309308

310309
// Build msghdr_x array - IoSlice is repr(transparent) over iovec
311-
let mut msghdrs: SmallVec<[msghdr_x; 32]> = frames
310+
let msghdrs: SmallVec<[msghdr_x; 32]> = frames
312311
.iter()
313312
.take(MAX_TX_BATCH)
314313
.map(|frame| msghdr_x {
@@ -344,7 +343,7 @@ impl Unixgram {
344343
Ok(())
345344
}
346345

347-
fn recv_macos(&mut self, vnet_offset: usize) {
346+
fn recv_macos(&mut self) {
348347
let fd = self.fd.as_raw_fd();
349348

350349
self.rx_producer.produce(|chains, completer| {
@@ -383,11 +382,10 @@ impl Unixgram {
383382
n if n > 0 => {
384383
log::trace!("recv_macos: recvmsg_x returned {n} messages");
385384
for i in 0..(n as usize) {
385+
// vnet header bytes already tracked by feed_with_transform
386386
let bytes_received = msghdrs[i].msg_datalen;
387-
// Total bytes = vnet header (written during feed) + payload received
388-
let total_bytes = vnet_offset + bytes_received;
389-
log::trace!("recv_macos: message {i} has {bytes_received} bytes payload, {total_bytes} total");
390-
completer.complete(&mut chains[i], i, total_bytes);
387+
log::trace!("recv_macos: message {i} has {bytes_received} bytes payload");
388+
completer.complete(&mut chains[i], i, bytes_received);
391389
}
392390
}
393391
0 => log::warn!("recvmsg_x returned 0 (unexpected)"),

0 commit comments

Comments
 (0)