Hi, I'm trying out passt with custom QEMU (we emulate a proprietary device). On one terminal I'm running latest passt (3eb26fe): ./passt --debug -f -t 55556:22 -s /tmp/passt.socket On another terminal I'm running our qemu-system-x86_64 with: -device virtio-net-pci,netdev=net0 -netdev stream,id=net0,server=off,addr.type=unix,addr.path=/tmp/passt.socket QEMU starts and the VM boots, but without network: [FAILED] Failed to start NetworkMan...[0m - Network Manager Wait Online. On passt side I see this log: No external routable interface for IPv6 Outbound interface (IPv4): ens160 MAC: host: 00:50:56:87:50:45 DHCP: assign: 192.168.120.119 mask: 255.255.255.0 router: 192.168.120.1 DNS: 192.168.3.240 0.8229: UNIX domain socket bound at /tmp/passt.socket 0.8245: You can now start qemu (>= 7.2, with commit 13c6be96618c): 0.8247: kvm ... -device virtio-net-pci,netdev=s -netdev stream,id=s,server=off,addr.type=unix,addr.path=/tmp/passt.socket 0.8250: or qrap, for earlier qemu versions: 0.8252: ./qrap 5 kvm ... -net socket,fd=5 -net nic,model=virtio 143.3596: accepted connection from PID 1704978 144.3168: TCP: index 0, SOCK_ACCEPTED: CLOSED -> SYN_RCVD 144.3168: TCP: hash table insert: index 0, sock 41, bucket: 59909, next: (nil) 144.3169: TCP: index 0: ACK_FROM_TAP_DUE 144.3170: TCP: index 0, timer expires in 10.000s 154.3170: TCP: index 0, handshake timeout 154.3170: TCP: index 0, reset at tcp_timer_handler:2965 154.3170: TCP: index 0, CLOSED: SYN_RCVD -> CLOSED 154.3171: TCP: hash table remove: index 0, sock 41, bucket: 59909, new: (nil) 154.3172: TCP: hash table compaction: maximum index was 0 (0x5600919ac500) 159.3257: TCP: index 0, SOCK_ACCEPTED: CLOSED -> SYN_RCVD 159.3257: TCP: hash table insert: index 0, sock 41, bucket: 134652, next: (nil) 159.3258: TCP: index 0: ACK_FROM_TAP_DUE 159.3258: TCP: index 0, timer expires in 10.000s 169.3258: TCP: index 0, handshake timeout 169.3258: TCP: index 0, reset at tcp_timer_handler:2965 169.3259: TCP: index 0, CLOSED: SYN_RCVD -> CLOSED 169.3259: TCP: hash table remove: index 0, sock 41, bucket: 134652, new: (nil) 169.3259: TCP: hash table compaction: maximum index was 0 (0x5600919ac500) 174.3371: TCP: index 0, SOCK_ACCEPTED: CLOSED -> SYN_RCVD ... Looks like a handshake timeout. Am I doing something wrong? Thanks, Amir The contents of this email message and any attachments are intended solely for the addressee(s) and may contain confidential and/or privileged information and may be legally protected from disclosure. If you are not the intended recipient of this message or their agent, or if this message has been addressed to you in error, please immediately alert the sender by reply email and then delete this message and any attachments. If you are not the intended recipient, you are hereby notified that any use, dissemination, copying, or storage of this message or its attachments is strictly prohibited.
Hi Amir, On Mon, 21 Nov 2022 16:08:35 +0000 Amir Gonnen <amir.gonnen(a)neuroblade.com> wrote:Hi, I'm trying out passt with custom QEMU (we emulate a proprietary device). On one terminal I'm running latest passt (3eb26fe): ./passt --debug -f -t 55556:22 -s /tmp/passt.socket On another terminal I'm running our qemu-system-x86_64 with: -device virtio-net-pci,netdev=net0 -netdev stream,id=net0,server=off,addr.type=unix,addr.path=/tmp/passt.socket QEMU starts and the VM boots, but without network: [FAILED] Failed to start NetworkMan...[0m - Network Manager Wait Online.I would have a look into this first -- check NetworkManager logs (and traffic capture, more below) and try to figure out why the network isn't being configured -- passt implements a DHCP server, and it seems to be configured given your output.On passt side I see this log: No external routable interface for IPv6 Outbound interface (IPv4): ens160 MAC: host: 00:50:56:87:50:45 DHCP: assign: 192.168.120.119 mask: 255.255.255.0 router: 192.168.120.1 DNS: 192.168.3.240 0.8229: UNIX domain socket bound at /tmp/passt.socket 0.8245: You can now start qemu (>= 7.2, with commit 13c6be96618c): 0.8247: kvm ... -device virtio-net-pci,netdev=s -netdev stream,id=s,server=off,addr.type=unix,addr.path=/tmp/passt.socket 0.8250: or qrap, for earlier qemu versions: 0.8252: ./qrap 5 kvm ... -net socket,fd=5 -net nic,model=virtio 143.3596: accepted connection from PID 1704978 144.3168: TCP: index 0, SOCK_ACCEPTED: CLOSED -> SYN_RCVD 144.3168: TCP: hash table insert: index 0, sock 41, bucket: 59909, next: (nil) 144.3169: TCP: index 0: ACK_FROM_TAP_DUE 144.3170: TCP: index 0, timer expires in 10.000s 154.3170: TCP: index 0, handshake timeout 154.3170: TCP: index 0, reset at tcp_timer_handler:2965 154.3170: TCP: index 0, CLOSED: SYN_RCVD -> CLOSED 154.3171: TCP: hash table remove: index 0, sock 41, bucket: 59909, new: (nil) 154.3172: TCP: hash table compaction: maximum index was 0 (0x5600919ac500) 159.3257: TCP: index 0, SOCK_ACCEPTED: CLOSED -> SYN_RCVD 159.3257: TCP: hash table insert: index 0, sock 41, bucket: 134652, next: (nil) 159.3258: TCP: index 0: ACK_FROM_TAP_DUE 159.3258: TCP: index 0, timer expires in 10.000s 169.3258: TCP: index 0, handshake timeout 169.3258: TCP: index 0, reset at tcp_timer_handler:2965 169.3259: TCP: index 0, CLOSED: SYN_RCVD -> CLOSED 169.3259: TCP: hash table remove: index 0, sock 41, bucket: 134652, new: (nil) 169.3259: TCP: hash table compaction: maximum index was 0 (0x5600919ac500) 174.3371: TCP: index 0, SOCK_ACCEPTED: CLOSED -> SYN_RCVD ... Looks like a handshake timeout.Yes, and I would expect that to happen if the guest has no configured network: passt will send packets but your SSH daemon won't answer. Other than checking NetworkManager logs for DHCP issues, you can also use the --pcap option in passt: ./passt --pcap guest.pcap --debug -f -t 55556:22 -s /tmp/passt.socket guest.pcap will contain a guest-side packet capture in pcap format (readable with e.g. Wireshark).Am I doing something wrong?I don't know yet. :) -- Stefano