Skip to content

Commit 62aa911

Browse files
Copilotbenaadams
andcommitted
Improve code examples: clarify checksum calculation and generic pattern
Co-authored-by: benaadams <1142958+benaadams@users.noreply.github.com>
1 parent cd9debc commit 62aa911

1 file changed

Lines changed: 7 additions & 4 deletions

File tree

docs/ARCHITECTURE.md

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -384,10 +384,11 @@ var pseudoPartialSum = Checksum.PartialCalculate(
384384
ref Unsafe.As<TcpV4PseudoHeader, byte>(ref pseudo),
385385
Unsafe.SizeOf<TcpV4PseudoHeader>());
386386

387-
// Later, calculate full checksum by adding TCP header + data
387+
// Later, calculate full checksum for TCP segment (header + data)
388+
// by adding the pseudo-header partial sum
388389
var checksum = Checksum.Calculate(
389-
ref Unsafe.As<TcpV4PseudoHeader, byte>(ref tcpHeader),
390-
length,
390+
ref MemoryMarshal.GetReference(tcpSegmentSpan),
391+
tcpSegmentSpan.Length,
391392
pseudoPartialSum);
392393
```
393394

@@ -707,6 +708,8 @@ Host.CreateDefaultBuilder(args)
707708
708709
public class CustomPacketReceiver : IPacketReceiver
709710
{
711+
// TryConsume returns default (null) when packet is consumed
712+
// or returns the input to pass to OS network stack
710713
public T TryConsume<T>(T input) where T : IMemoryOwner<byte>
711714
{
712715
var span = input.Memory.Span;
@@ -718,7 +721,7 @@ public class CustomPacketReceiver : IPacketReceiver
718721
{
719722
// Process IPv4 packet
720723
input.Dispose();
721-
return default; // Consumed
724+
return default; // Consumed - return null
722725
}
723726
}
724727
return input; // Pass to OS

0 commit comments

Comments
 (0)