Install
$ agentstack add skill-affaan-m-ecc-network-interface-health ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ● Dynamic code execution Used
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Network Interface Health
Use this skill when a network symptom might be caused by a physical link, switch port, cable, transceiver, duplex setting, or congested interface.
When to Use
- A host or VLAN has packet loss, latency spikes, or intermittent reachability.
- A switch or router interface shows CRCs, runts, giants, drops, resets, or flaps.
- You need to compare both ends of a link before replacing hardware.
- A change window needs before/after interface counter evidence.
- Monitoring reports rising
ifInErrors,ifOutErrors, orifOutDiscards.
How It Works
Interface counters are evidence, but the trend matters more than the absolute number. Capture a baseline, wait a measurement interval, capture again, then compare increments.
show interfaces
show interfaces status
show logging | include |changed state|line protocol
On Linux hosts:
ip -s link show
ethtool
ethtool -S
Counter Reference
| Counter | Meaning | Common cause | | --- | --- | --- | | CRC | Received frame checksum failed | Bad cable, dirty fiber, bad optic, duplex mismatch | | input errors | Aggregate receive-side errors | Check sub-counters before concluding | | runts | Frames below minimum Ethernet size | Duplex mismatch, collision domain, faulty NIC | | giants | Frames larger than expected MTU | MTU mismatch or jumbo-frame boundary | | input drops | Device could not accept inbound packets | Burst, oversubscription, CPU path, queue pressure | | output drops | Egress queue discarded packets | Congestion, QoS policy, undersized uplink | | resets | Interface hardware reset | Flapping, keepalive, driver, optic, power | | collisions | Ethernet collision counter | Half duplex or negotiation mismatch |
Diagnosis Flow
CRCs Or Input Errors
- Confirm counters are incrementing, not just historical.
- Check both ends of the link. Receive-side errors usually point to the signal
arriving on that side, not necessarily the port reporting the error.
- Replace patch cable or clean/replace fiber and optics.
- Confirm speed/duplex settings match on both sides.
- Check logs for flap events around the same timestamp.
Drops
- Separate input drops from output drops.
- Compare interface rate against capacity.
- Check QoS policy, queue counters, and whether the link is an oversubscribed
uplink.
- Treat queue tuning as secondary. First prove whether the link is congested.
Duplex And Speed
Prefer auto-negotiation on modern Ethernet links when both sides support it. If one side must be fixed, configure both sides explicitly and document why. Never mix fixed speed/duplex on one side with auto on the other.
show interfaces | include duplex|speed
Safe Parser Example
Slice each interface block from one header to the next. Do not use an arbitrary character window; large interface blocks can cause counters to be missed or assigned to the wrong port.
import re
from typing import Any
HEADER_RE = re.compile(
r"^(?P\S+) is (?P(?:administratively )?down|up), "
r"line protocol is (?Pup|down)",
re.I | re.M,
)
ERROR_RE = re.compile(r"(?P\d+) input errors, (?P\d+) CRC", re.I)
DROP_RE = re.compile(r"(?P\d+) output errors", re.I)
DUPLEX_RE = re.compile(r"(?PFull|Half|Auto)-duplex,\s+(?P[^,]+)", re.I)
def parse_show_interfaces(raw: str) -> list[dict[str, Any]]:
headers = list(HEADER_RE.finditer(raw))
interfaces = []
for index, header in enumerate(headers):
end = headers[index + 1].start() if index + 1 < len(headers) else len(raw)
block = raw[header.start():end]
errors = ERROR_RE.search(block)
drops = DROP_RE.search(block)
duplex = DUPLEX_RE.search(block)
interfaces.append({
"name": header.group("name"),
"status": header.group("status"),
"protocol": header.group("protocol"),
"duplex": duplex.group("duplex") if duplex else "unknown",
"speed": duplex.group("speed").strip() if duplex else "unknown",
"input_errors": int(errors.group("input")) if errors else 0,
"crc_errors": int(errors.group("crc")) if errors else 0,
"output_errors": int(drops.group("output")) if drops else 0,
})
return interfaces
Examples
CRCs On One Switch Port
- Capture counters on the local port.
- Capture counters on the connected remote port.
- Replace the cable or optic before changing routing or firewall rules.
- Clear counters only after recording the baseline.
- Recheck after a fixed interval.
Internet Slow But LAN Is Fine
- Check WAN interface drops/errors.
- Check LAN uplink utilization and output drops.
- Check gateway CPU if the WAN link is clean but throughput is still low.
- Compare wired and wireless tests before blaming upstream service.
Anti-Patterns
- Clearing counters before saving a baseline.
- Looking at only one side of a link.
- Assuming all historical CRCs are active problems without a time window.
- Mixing auto-negotiation on one side with fixed speed/duplex on the other.
- Treating output drops as a cable problem before checking congestion.
See Also
- Agent:
network-troubleshooter - Skill:
network-config-validation - Skill:
homelab-network-setup
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: affaan-m
- Source: affaan-m/ECC
- License: MIT
- Homepage: https://ecc.tools
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.