From 68907ef8983aaf394293ffb60649436adb359fdf Mon Sep 17 00:00:00 2001 From: Patricio Whittingslow Date: Fri, 10 Apr 2026 19:43:08 -0300 Subject: [PATCH] up hardcoded number of IP protocols to 3 (ICMP,TCP,UDP) --- .gitignore | 1 + x/xnet/stack-async.go | 2 +- x/xnet/xnet_fuzz_test.go | 8 ++++++++ x/xnet/xnet_test.go | 2 ++ 4 files changed, 12 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index d5dbfd8..7c7feca 100644 --- a/.gitignore +++ b/.gitignore @@ -36,6 +36,7 @@ vendor/ # IDE .vscode/ agents.md +*skill.md # For local development and testing create `local` directories. local diff --git a/x/xnet/stack-async.go b/x/xnet/stack-async.go index 9255637..0519ade 100644 --- a/x/xnet/stack-async.go +++ b/x/xnet/stack-async.go @@ -164,7 +164,7 @@ func (s *StackAsync) Reset(cfg StackConfig) error { return err } s.link.SetAcceptMulticast(cfg.AcceptMulticast) - const ipNodes = 2 // UDP, TCP ports. + const ipNodes = 3 // 3 IP protocols possible: UDP, TCP, ICMP. err = s.ip.Reset(addr, ipNodes) if err != nil { return err diff --git a/x/xnet/xnet_fuzz_test.go b/x/xnet/xnet_fuzz_test.go index 7029113..6ec6a33 100644 --- a/x/xnet/xnet_fuzz_test.go +++ b/x/xnet/xnet_fuzz_test.go @@ -75,6 +75,14 @@ func FuzzStackAsyncHTTP(f *testing.F) { f.Fuzz(func(t *testing.T, pktnum int, a []byte) { var buf [MTU + ethernet.MaxOverheadSize]byte s1, s2, c1, c2 := newTCPStacks(t, seed, MTU) + err = s1.EnableICMP(true) + if err != nil { + t.Fatal(err) + } + err = s2.EnableICMP(true) + if err != nil { + t.Fatal(err) + } err := s1.ListenTCP(c1, 80) if err != nil { t.Fatal(err) diff --git a/x/xnet/xnet_test.go b/x/xnet/xnet_test.go index 6697cc0..6085009 100644 --- a/x/xnet/xnet_test.go +++ b/x/xnet/xnet_test.go @@ -181,6 +181,7 @@ func newTCPStacks(t testing.TB, randSeed int64, mtu int) (s1, s2 *StackAsync, c1 MaxActiveTCPPorts: 1, HardwareAddress: [6]byte{0xbe, 0xef, 0, 0, 0, byte1}, MTU: uint16(mtu), + ICMPQueueLimit: 2, }) if err != nil { t.Fatal(err) @@ -194,6 +195,7 @@ func newTCPStacks(t testing.TB, randSeed int64, mtu int) (s1, s2 *StackAsync, c1 MaxActiveTCPPorts: 1, HardwareAddress: [6]byte{0xbe, 0xef, 0, 0, 0, byte2}, MTU: uint16(mtu), + ICMPQueueLimit: 2, }) if err != nil { t.Fatal(err)