profinet-device-inventorylisted
Install: claude install-skill comradezephyr/ot-ics-agent-skills
## When to Use
- A PROFINET island with no controller-supplied device list.
- A segment that runs only PROFINET (Ethertype 0x8892) with no IP layer to scan.
- A duplicate station name conflict reported by the IO controller.
- Validating station names against the IO supervisor configuration.
## Prerequisites
- tshark 4.x. Verify with `tshark --version`.
- nmap 7.94 or newer with the `profinet-cm-lookup` NSE script.
- SPAN port or network TAP on the island.
- No IP address is required. DCP runs at Layer 2.
- Credentials: none.
- Authorization: segment owner sign-off. The DCP identity burst is an active Layer 2 step and needs a maintenance window.
- Upstream skills: `passive-ot-network-discovery` for the segment capture.
### Safety
This skill is passive by default. Active steps are gated in the Workflow section.
- Passive. Captures and inspects traffic. Sends no packets. Safe to run during normal operations.
## Workflow
1. Resolve the DCP field names for this tshark revision:
`tshark -G fields | grep -i nameofstation`
`tshark -G fields | grep -i pn_dcp`
Field names change across tshark releases. Use the resolved names in the commands below.
2. Passive device list from a capture that holds controller boot or address-resolver traffic:
`tshark -r capture.pcapng -Y "pn_dcp" -T fields -e eth.src -e <nameofstation-field> | sort -u > dcp_devices.txt`
3. Decision point: if no DCP frames exist in the capture, the island has no station naming traffic in the window. Do