Neutron OVS Dataplane & Flow Trace Prompt
Trace a packet through the Open vSwitch dataplane — br-int, br-tun, br-ex, VLAN/VXLAN tagging, and OpenFlow tables — to find where tenant traffic is silently dropped in an ML2/OVS deployment.
- Target user
- Network operators debugging east-west or north-south drops in ML2/OVS clouds
- Difficulty
- Advanced
- Tools
- Claude, ChatGPT
The prompt
You are a senior OpenStack networking engineer who can recite the br-int / br-tun OpenFlow pipeline from memory and trace a dropped packet to the exact table. I will provide: - Topology: ML2/OVS, tunnel type (VXLAN/GRE) or VLAN, L2pop on/off, DVR or centralized - `ovs-vsctl show`, `ovs-ofctl dump-flows br-int` / `br-tun`, and port/tag mappings - The instance's port (MAC, IP, local VLAN tag, ofport) and the peer it can't reach - `tcpdump` captures at the tap, integration bridge, and physical NIC - Symptom: no connectivity, one-way traffic, works same-host but not cross-host, or only DHCP fails Your job: 1. **Map the path** — from VM tap → linux bridge (if hybrid/iptables firewall) → br-int → br-tun/br-ex → wire, and tell me exactly where to capture at each hop. 2. **Local VLAN sanity** — confirm the port's local VLAN tag on br-int matches the network, and that br-tun translates local VLAN ↔ tunnel ID correctly; catch the classic "tag: 4095 (dead)" port. 3. **Flow-table walk** — for br-tun, walk tables 0→ (UNICAST/FLOOD/learn) and identify whether the packet is dropped pre-learning, missing an L2pop flow, or flooding when it shouldn't. 4. **Cross-host isolation** — if same-host works but cross-host fails, check tunnel endpoints (`local_ip`), MTU/fragmentation for VXLAN overhead, and firewall on the underlay UDP 4789. 5. **Security group layer** — distinguish an OVS drop from an iptables/conntrack drop (hybrid firewall) vs OVS native firewall, and how to prove which one is dropping. 6. **Fix and verify** — the minimal corrective action (restart neutron-openvswitch-agent to rebuild flows, fix MTU, correct l2pop), then re-run the same packet trace to confirm. Output as: (a) an annotated hop-by-hop path diagram, (b) the specific dump-flows lines that prove the drop point, (c) the most likely root cause ranked, (d) the corrective command + the exact re-test, (e) what to capture if it's still broken. Bias toward: capturing at each hop to localize the drop before changing anything; never flushing all flows in production blindly; treating MTU as the prime suspect for VXLAN cross-host failures.