Lay out device/stack interfaces - Netdev/Netlink (#92)

* good code today

* add netdev.Runner

* round off APIs more

* better interface method documentation

* improve DHCP netstack API

* add pico w netdev example

* remove temp file

* keep thinking about this. this is hard :/

* fix ci

* small fixer

* working dhcp

* fix rebase API mismatches

* begin adding espradio example

* keep working on espradio, icmp not working

* fix icmp by fixing dhcp
This commit is contained in:
Pat Whittingslow
2026-06-17 14:18:08 -03:00
committed by GitHub
parent 5f8ca45859
commit 813b7b5e57
16 changed files with 925 additions and 0 deletions
+4
View File
@@ -119,6 +119,7 @@ func (s *StackAsync) IngressEthernet(ethernetFrame []byte) error {
defer s.mu.Unlock()
s.stats.TotalReceived += uint64(len(ethernetFrame))
err := s.link.Demux(ethernetFrame, 0)
debugPacket("IN ", ethernetFrame)
if err == nil {
s.arpt.learnFromIngressEthernet(ethernetFrame)
}
@@ -132,6 +133,9 @@ func (s *StackAsync) EgressEthernet(dstEthernetFrame []byte) (int, error) {
defer s.mu.Unlock()
n, err := s.link.Encapsulate(dstEthernetFrame, -1, 0)
s.stats.TotalSent += uint64(n)
if n > 0 {
debugPacket("OUT", dstEthernetFrame[:n])
}
return n, err
}