@@ -13,19 +13,38 @@ A single network interface can be associated with the device.
1313
1414## Features supported
1515
16- - ARP (RFC 826)
17- - IPv4 (RFC 791)
18- - ICMP (RFC 792): only ping replies
19- - DHCP (RFC 2131): client only
20- - DNS (RFC 1035): client only
21- - UDP (RFC 768): unicast only
22- - TCP (RFC 793)
23- - TCP options supported: Timestamps, Maximum Segment Size
2416- BSD-like, non blocking socket API, with custom callbacks
2517- No dynamic memory allocation
2618 - Fixed number of concurrent sockets
2719 - Pre-allocated buffers for packet processing in static memory
2820
21+ ## Protocols and RFCs
22+
23+ | Layer | Protocol | Features | RFC(s) |
24+ | -------| ----------| ----------| --------|
25+ | ** Data Link** | Ethernet II | Frame encapsulation | [ IEEE 802.3] ( https://standards.ieee.org/ieee/802.3/10422/ ) |
26+ | ** Data Link** | ARP | Address resolution, request/reply | [ RFC 826] ( https://datatracker.ietf.org/doc/html/rfc826 ) |
27+ | ** Network** | IPv4 | Datagram delivery, TTL handling | [ RFC 791] ( https://datatracker.ietf.org/doc/html/rfc791 ) |
28+ | ** Network** | IPv4 Forwarding | Multi-interface routing (optional) | [ RFC 1812] ( https://datatracker.ietf.org/doc/html/rfc1812 ) |
29+ | ** Network** | ICMP | Echo request/reply, TTL exceeded | [ RFC 792] ( https://datatracker.ietf.org/doc/html/rfc792 ) |
30+ | ** Transport** | UDP | Unicast datagrams, checksum | [ RFC 768] ( https://datatracker.ietf.org/doc/html/rfc768 ) |
31+ | ** Transport** | TCP | Connection management, reliable delivery | [ RFC 793] ( https://datatracker.ietf.org/doc/html/rfc793 ) , [ RFC 9293] ( https://datatracker.ietf.org/doc/html/rfc9293 ) |
32+ | ** Transport** | TCP Options: MSS | Maximum Segment Size negotiation | [ RFC 793] ( https://datatracker.ietf.org/doc/html/rfc793 ) |
33+ | ** Transport** | TCP Options: Timestamps | RTT measurement, PAWS | [ RFC 7323] ( https://datatracker.ietf.org/doc/html/rfc7323 ) |
34+ | ** Transport** | TCP Congestion Control | Slow start, congestion avoidance | [ RFC 5681] ( https://datatracker.ietf.org/doc/html/rfc5681 ) |
35+ | ** Transport** | TCP Fast Retransmit | Triple duplicate ACK detection | [ RFC 5681] ( https://datatracker.ietf.org/doc/html/rfc5681 ) |
36+ | ** Application** | DHCP | Client only (DORA) | [ RFC 2131] ( https://datatracker.ietf.org/doc/html/rfc2131 ) |
37+ | ** Application** | DNS | A and PTR record queries (client) | [ RFC 1035] ( https://datatracker.ietf.org/doc/html/rfc1035 ) |
38+ | ** Application** | HTTP/HTTPS | Server with wolfSSL TLS support | [ RFC 9110] ( https://datatracker.ietf.org/doc/html/rfc9110 ) |
39+
40+ ### Notes
41+
42+ - ** TCP Congestion Control** : Implements slow start and congestion avoidance with ` cwnd ` , ` ssthresh ` tracking.
43+ - ** TCP Fast Retransmit** : Detects triple duplicate ACKs and retransmits lost segments.
44+ - ** ICMP** : Responds to ping requests; sends TTL exceeded messages when forwarding is enabled.
45+ - ** DHCP** : Full DORA (Discover, Offer, Request, Acknowledge) state machine with retry logic.
46+ - ** DNS** : Supports A record (forward) and PTR record (reverse) lookups.
47+
2948
3049## Functional tests with ` LD_PRELOAD `
3150
0 commit comments