The **Packet-Trace** feature provides insight into how packets are processed through the hardware and software data paths on Cisco platforms. It is a powerful diagnostic tool that can be used in production environments without severely impacting performance. Packet Trace allows inspection of packet handling using three levels of granularity: ## Packet-Trace Levels | Level | Description | |-------------|-------------| | **Accounting** | Lightweight and runs continuously. Provides a **count of packets** entering and leaving the network processor. Minimal impact on performance. | | **Summary** | Tracks **input/output interfaces**, packet state, and whether it was **punted, dropped, or injected**. Higher resource usage than accounting. Useful for identifying problem interfaces. | | **Path data** | Provides the **highest level of detail**, including timestamps, debug IDs, and feature-specific processing data. Optional enhancements include **packet-copy** and **Feature Invocation Array (FIA)** tracing. Highest performance impact and should be used with care. | > Note: Path data collection is resource intensive. Use sparingly in live environments where performance is critical. ## Guidelines and Memory Considerations - Use **ingress condition filters** to limit scope and avoid performance degradation. - Packet trace consumes **data-plane memory**. The memory usage is estimated by: ``` memory required = statistics_overhead + number_of_packets * (summary_size + data_size + packet_copy_size) ``` ## Configuration Steps ### Creating a Path Trace ``` c8000v-0# debug platform packet-trace ? copy Copy packet data drop Trace drops only inject Trace injects only packet Packet count punt Trace punts only statistics enable packet trace statistics ``` ``` debug platform packet-trace packets 2048 fia-trace circular ``` > You can enable multiple types of data being collected, as seen above. ### Apply Match Conditions You can limit the packet trace to specific interfaces or traffic flows. **Example: Match on ingress interface** ```ios debug platform condition interface g0/0/0 ingress ``` **Example: Match on source IP** ```ios debug platform condition ipv4 192.168.1.1 ingress ``` > Combine multiple conditions to narrow down further. ### Start and Stop Packet Trace ```ios debug platform condition start ... debug platform condition stop ``` ### View Packet Trace Data ```ios show platform packet-trace configuration show platform packet-trace statistics show platform packet-trace summary show platform packet-trace packet all ``` ### Clear All Conditions ```ios clear platform condition all clear platform packet-trace configuration ``` ## Example Workflow ```ios debug platform packet-trace packets 100 fia-trace circular debug platform packet-trace statistics debug platform condition interface GigabitEthernet0/0/0 egress show platform packet-trace configuration show platform condition debug platform condition start ...generate test traffic... debug platform condition stop show platform packet-trace summary show platform packet-trace statistics show platform packet-trace packet # ...cleanup when done... clear platform condition all clear platform packet-trace configuration ``` ## Reference [Cisco Packet Trace Configuration Guide](https://www.cisco.com/c/en/us/td/docs/routers/asr1000/software/configuration/xe-17/asr1000-sw-config-xe-17/packet_trace.html)