Shell: ping, nslookup, port, traceroute, ifconfig and arp (#90) #91

Merged
twisla merged 2 commits from net-tools into main 2026-10-08 00:38:19 +00:00
Owner

For #90: network troubleshooting commands, in the Shell and over both consoles.

Command Tells you
ping <host> [count] [size] Whether a host answers and how fast
nslookup <name> [server] A name's addresses, which DNS server answered, in how long
port <host> <port> A TCP port: open, refused, or silent
traceroute <host> The routers on the way
ifconfig The interfaces (Wi-Fi, VPN), which is the default route, the DNS servers
arp The neighbours heard on the Wi-Fi
  • The first four run on a task of their own and print as they go, to the console that asked. One at a time; cancel stops it.
  • Tab completes them in the Shell, since they are in the help text.
  • lib/net/src/net_probe.h holds the packets and their parsing, host-tested.

Not in this PR: tls, ntp and netstat from the issue's list. The issue should stay open for them.

Checked

  • 544 host tests pass (5 new: arguments, ICMP echo and its answers, DNS query and answer including a pointer loop).
  • On the device, with the VPN up: every command, including a second command while a ping runs, cancel, a refused and a silent port, a name that doesn't exist, and a sized ping that finds the tunnel's 1420 bytes. In the Shell with Tab.

Not checked: without the VPN, and on a network that drops ICMP.

Docs: the Shell guide page, a new how-to ("When the network doesn't work"), the VPN guide and how-to, the FAQ, the README, the milestone notes and status line.

Costs 12 KB of flash, and a 6 KB task while a command runs.

🤖 Generated with Claude Code

https://claude.ai/code/session_01EhqxQ49eCju4CzKYNjZzwT

For #90: network troubleshooting commands, in the Shell and over both consoles. | Command | Tells you | |---|---| | `ping <host> [count] [size]` | Whether a host answers and how fast | | `nslookup <name> [server]` | A name's addresses, which DNS server answered, in how long | | `port <host> <port>` | A TCP port: open, refused, or silent | | `traceroute <host>` | The routers on the way | | `ifconfig` | The interfaces (Wi-Fi, VPN), which is the default route, the DNS servers | | `arp` | The neighbours heard on the Wi-Fi | - The first four run on a task of their own and print as they go, to the console that asked. One at a time; `cancel` stops it. - Tab completes them in the Shell, since they are in the `help` text. - `lib/net/src/net_probe.h` holds the packets and their parsing, host-tested. **Not in this PR:** `tls`, `ntp` and `netstat` from the issue's list. The issue should stay open for them. **Checked** - 544 host tests pass (5 new: arguments, ICMP echo and its answers, DNS query and answer including a pointer loop). - On the device, with the VPN up: every command, including a second command while a ping runs, `cancel`, a refused and a silent port, a name that doesn't exist, and a sized ping that finds the tunnel's 1420 bytes. In the Shell with Tab. **Not checked:** without the VPN, and on a network that drops ICMP. **Docs:** the Shell guide page, a new how-to ("When the network doesn't work"), the VPN guide and how-to, the FAQ, the README, the milestone notes and status line. Costs 12 KB of flash, and a 6 KB task while a command runs. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01EhqxQ49eCju4CzKYNjZzwT
twisla added 1 commit 2026-10-08 00:29:08 +00:00
Shell: ping, nslookup, port, traceroute, ifconfig and arp (#90)
Site / build (pull_request) Successful in 11s
CI / build (pull_request) Successful in 1m38s
ed7abdcaf5
Network troubleshooting from the device itself, in the Shell and over both
consoles. ping, nslookup, port and traceroute each run on a task of their
own and print as they go, to the console that asked; one at a time, and
`cancel` stops it. ifconfig and arp answer at once: the interfaces (Wi-Fi
and the VPN), which is the default route, the DNS servers, the neighbours.

nslookup asks a DNS server itself, so it can say which server answered and
in how long, and ask another. A sized ping finds what a tunnel really
carries.

With a how-to, "When the network doesn't work", and the rest of the docs.
tls, ntp and netstat from the issue's list are not in this.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EhqxQ49eCju4CzKYNjZzwT
twisla added 1 commit 2026-10-08 00:35:58 +00:00
N1: the network commands ship as v0.20.0
Site / build (pull_request) Successful in 13s
CI / build (pull_request) Successful in 1m37s
a8f267416b
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EhqxQ49eCju4CzKYNjZzwT
twisla merged commit 9b6457d1ec into main 2026-10-08 00:38:19 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: twisla/roro9stack#91