Add ICMPv4 and lneto.StackNode and deprecate internet.StackNode (#65)

* begin adding icmp client

* rely on anon structs

* add tests

* tests passing

* icmp fleshed out

* rework icmp to include ip addr

* rename StackAsync.Demux/Encapsulate to RecvEthernet and SendEthernet

* remove legacy unreachable TCP tests

* remove uses of deprecated internet.StackNode in preference of lneto.StackNode

* documentation

* rename methods to signal no I/O happening
This commit is contained in:
Pat Whittingslow
2026-04-09 09:07:16 -03:00
committed by GitHub
parent 22c7e6c9d8
commit ec44889896
26 changed files with 679 additions and 209 deletions
+8 -8
View File
@@ -34,12 +34,12 @@ func FuzzStackAsyncHTTP(f *testing.F) {
written := false
closed := false
for {
n1, err := s1.Encapsulate(buf[:], -1, 0)
n1, err := s1.EgressEthernet(buf[:])
if err != nil {
f.Fatal(err)
}
if n1 > 0 {
err = s2.Demux(buf[:n1], 0)
err = s2.IngressEthernet(buf[:n1])
if err != nil {
f.Fatal(err)
}
@@ -53,10 +53,10 @@ func FuzzStackAsyncHTTP(f *testing.F) {
written = true
}
}
n2, err := s2.Encapsulate(buf[:], -1, 0)
n2, err := s2.EgressEthernet(buf[:])
if n2 > 0 {
pktnum++
err = s1.Demux(buf[:n2], 0)
err = s1.IngressEthernet(buf[:n2])
if err != nil {
f.Fatal(err)
}
@@ -88,7 +88,7 @@ func FuzzStackAsyncHTTP(f *testing.F) {
closed := false
const maxpkts = 100
for {
n1, err := s1.Encapsulate(buf[:], -1, 0)
n1, err := s1.EgressEthernet(buf[:])
if err != nil {
t.Fatal(err)
}
@@ -97,21 +97,21 @@ func FuzzStackAsyncHTTP(f *testing.F) {
n1 = copy(buf[:], a)
fixIPTCPCRCs(buf[:n1])
}
s2.Demux(buf[:n1], 0)
s2.IngressEthernet(buf[:n1])
pkt++
if !written && c2.State() >= tcp.StateEstablished {
c2.Write(data)
written = true
}
}
n2, err := s2.Encapsulate(buf[:], -1, 0)
n2, err := s2.EgressEthernet(buf[:])
if n2 > 0 {
if pkt == pktnum {
n2 = copy(buf[:], a)
fixIPTCPCRCs(buf[:n2])
}
pkt++
s1.Demux(buf[:n2], 0)
s1.IngressEthernet(buf[:n2])
}
if n1 == 0 && n2 == 0 {
if !closed {