mirror of
https://github.com/soypat/lneto.git
synced 2026-08-18 21:54:01 +00:00
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:
@@ -145,7 +145,7 @@ func run() error {
|
||||
}
|
||||
|
||||
for {
|
||||
nwrite, err := stack.Encapsulate(buf[:], -1, 0)
|
||||
nwrite, err := stack.EgressEthernet(buf[:])
|
||||
if err != nil {
|
||||
log.Println("ERR:ENCAPSULATE", err)
|
||||
} else if nwrite > 0 {
|
||||
@@ -159,13 +159,13 @@ func run() error {
|
||||
log.Fatalf("mismatch written bytes %d!=%d", nwrite, n)
|
||||
}
|
||||
if flagMockClient && mockStack.Addr().IsValid() {
|
||||
mockStack.Demux(buf[:nwrite], 0)
|
||||
mockStack.IngressEthernet(buf[:nwrite])
|
||||
}
|
||||
}
|
||||
if flagMockClient && mockStack.Addr().IsValid() {
|
||||
n, _ := mockStack.Encapsulate(buf[:], -1, 0)
|
||||
n, _ := mockStack.EgressEthernet(buf[:])
|
||||
if n > 0 {
|
||||
stack.Demux(buf[:n], 0)
|
||||
stack.IngressEthernet(buf[:n])
|
||||
}
|
||||
}
|
||||
|
||||
@@ -181,7 +181,7 @@ func run() error {
|
||||
if err != nil {
|
||||
log.Fatal("goroutine read:", err)
|
||||
} else if nread > 0 {
|
||||
err = stack.Demux(buf[:nread], 0)
|
||||
err = stack.IngressEthernet(buf[:nread])
|
||||
if !errors.Is(err, lneto.ErrPacketDrop) {
|
||||
if err = logFrames("IN", buf[:nread]); err != nil {
|
||||
log.Println("ERR:INLOG", err)
|
||||
|
||||
@@ -144,7 +144,7 @@ func run() (err error) {
|
||||
return err
|
||||
}
|
||||
for {
|
||||
nwrite, err := stack.Encapsulate(buf[:], -1, 0)
|
||||
nwrite, err := stack.EgressEthernet(buf[:])
|
||||
if err != nil {
|
||||
log.Println("ERR:ENCAPSULATE", err)
|
||||
} else if nwrite > 0 {
|
||||
@@ -172,7 +172,7 @@ func run() (err error) {
|
||||
if err != nil {
|
||||
log.Fatal("goroutine read:", err)
|
||||
} else if nread > 0 {
|
||||
err = stack.Demux(buf[:nread], 0)
|
||||
err = stack.IngressEthernet(buf[:nread])
|
||||
if !errors.Is(err, lneto.ErrPacketDrop) {
|
||||
err = logFrames("IN", buf[:nread])
|
||||
if err != nil {
|
||||
|
||||
@@ -142,7 +142,7 @@ func stackLoop(ctx context.Context, stack *xnet.StackAsync) {
|
||||
frameLength, _ := network.MaxFrameLength()
|
||||
buf := make([]byte, frameLength)
|
||||
for ctx.Err() == nil {
|
||||
nwrite, err := stack.Encapsulate(buf[:], -1, 0)
|
||||
nwrite, err := stack.EgressEthernet(buf[:])
|
||||
if err != nil {
|
||||
fmt.Println("encaps err:", err)
|
||||
} else if nwrite > 0 {
|
||||
@@ -153,7 +153,7 @@ func stackLoop(ctx context.Context, stack *xnet.StackAsync) {
|
||||
if err != nil {
|
||||
fmt.Println("network read err:", err)
|
||||
} else if nread > 0 {
|
||||
err = stack.Demux(buf[:nread], 0)
|
||||
err = stack.IngressEthernet(buf[:nread])
|
||||
if err != nil && err != lneto.ErrPacketDrop {
|
||||
fmt.Println("demux err:", err)
|
||||
} else {
|
||||
|
||||
@@ -164,7 +164,7 @@ func run() (err error) {
|
||||
return err
|
||||
}
|
||||
for {
|
||||
nwrite, err := stack.Encapsulate(buf[:], -1, 0)
|
||||
nwrite, err := stack.EgressEthernet(buf[:])
|
||||
if err != nil {
|
||||
log.Println("ERR:ENCAPSULATE", err)
|
||||
} else if nwrite > 0 {
|
||||
@@ -193,7 +193,7 @@ func run() (err error) {
|
||||
if err != nil {
|
||||
log.Fatal("groutine read:", err)
|
||||
} else if nread > 0 {
|
||||
err = stack.Demux(buf[:nread], 0)
|
||||
err = stack.IngressEthernet(buf[:nread])
|
||||
if !errors.Is(err, lneto.ErrPacketDrop) {
|
||||
// Only skip logging packet in case of dropped packet.
|
||||
err = logFrames("IN", buf[:nread])
|
||||
|
||||
Reference in New Issue
Block a user