digraph techviz { graph [rankdir=LR, splines=ortho, nodesep=0.55, ranksep=0.85]; node [fontname=Helvetica, fontsize=11, margin="0.18,0.12", style="rounded,filled", fillcolor=white, color="#2d4357", penwidth=1.5]; edge [fontname=Helvetica, fontsize=10, color="#364b5f", penwidth=1.4, arrowsize=0.75]; n0 [label="virsh", shape=box, style="rounded,filled"]; n1 [label="libvirt", shape=box, style="rounded,filled"]; n2 [label="QEMU", shape=box, style="rounded,filled"]; n3 [label="virtio-net Device Model", shape=box, style="rounded,filled"]; n4 [label="Physical NIC", shape=box, style="rounded,filled"]; n5 [label="Physical NIC Driver", shape=box, style="rounded,filled"]; n6 [label="Linux Bridge /\nRouting / NAT", shape=box, style="rounded,filled"]; n7 [label="TAP", shape=box, style="rounded,filled"]; n8 [label="vhost-net", shape=box, style="rounded,filled"]; n9 [label="QEMU virtio backend", shape=box, style="rounded,filled"]; n10 [label="virtqueue", shape=oval, style="rounded,filled"]; n11 [label="Guest", shape=box, style="rounded,filled"]; n0 -> n1 [label="Control / Setup", style=solid]; n1 -> n2 [label="NIC config", style=solid]; n2 -> n3 [label="QEMU process", style=solid]; n4 -> n5 [label="Ethernet Frame", style=solid]; n5 -> n6 [label="L2 forwarding", style=solid]; n6 -> n7 [label="Ethernet Frame", style=solid]; n3 -> n8 [label="vhost-net backend 설정", style=solid]; n3 -> n9 [label="", style=solid]; n7 -> n8 [label="vhost-net 사용", style=solid]; n7 -> n9 [label="", style=solid]; n8 -> n10 [label="Data Path", style=solid]; n9 -> n10 [label="Data Path", style=solid]; n10 -> n11 [label="frontend", style=solid]; }