Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

"can't serialize Eth header" crash when running on Roon core #120

Open
mglause opened this issue Aug 29, 2023 · 3 comments
Open

"can't serialize Eth header" crash when running on Roon core #120

mglause opened this issue Aug 29, 2023 · 3 comments

Comments

@mglause
Copy link

mglause commented Aug 29, 2023

Hello,

Perhaps I'm doing something wrong, but udp-proxy-2020 crashes with a "can't serialize Eth header" error whenever I try to open Roon on my remote endpoint. I'm running the latest version (0.1.0) of udp-proxy-2020 on my Roon core, and my remote endpoint is connected to the Roon core via Wireguard (more specifically Netmaker). The command I'm using is "udp-proxy-2020 --interface lo --interface netmaker --port 9003 --no-listen --deliver-local --level debug" and the debug output is below. Any help would be appreciated.

Thanks,
Matt


DEBUG lo: ifIndex: 1
DEBUG Listen: (main.Listen) {
iname: (string) (len=2) "lo",
netif: (*net.Interface)(0xc0000624c0)({
Index: (int) 1,
MTU: (int) 65536,
Name: (string) (len=2) "lo",
HardwareAddr: (net.HardwareAddr) ,
Flags: (net.Flags) up|loopback|running
}),
ports: ([]int32) (len=1 cap=2) {
(int32) 9003
},
ipaddr: (string) "",
promisc: (bool) true,
handle: (*pcap.Handle)(),
writer: (*pcapgo.Writer)(),
inwriter: (*pcapgo.Writer)(),
outwriter: (*pcapgo.Writer)(),
sendOnly: (bool) false,
localIP: (net.IP) ,
timeout: (time.Duration) 250ms,
clientTTL: (time.Duration) 0s,
sendpkt: (chan main.Send) (cap=100) 0xc000064600,
clients: (map[string]time.Time) {
}
}
DEBUG netmaker: ifIndex: 11
DEBUG Listen: (main.Listen) {
iname: (string) (len=8) "netmaker",
netif: (*net.Interface)(0xc000062880)({
Index: (int) 11,
MTU: (int) 1420,
Name: (string) (len=8) "netmaker",
HardwareAddr: (net.HardwareAddr) ,
Flags: (net.Flags) up|pointtopoint|running
}),
ports: ([]int32) (len=1 cap=2) {
(int32) 9003
},
ipaddr: (string) "",
promisc: (bool) true,
handle: (*pcap.Handle)(),
writer: (*pcapgo.Writer)(),
inwriter: (*pcapgo.Writer)(),
outwriter: (*pcapgo.Writer)(),
sendOnly: (bool) false,
localIP: (net.IP) ,
timeout: (time.Duration) 250ms,
clientTTL: (time.Duration) 0s,
sendpkt: (chan main.Send) (cap=100) 0xc000064660,
clients: (map[string]time.Time) {
}
}
DEBUG lo: ifIndex: 1
DEBUG lo network: ip+net string: 127.0.0.1/8
DEBUG lo network: ip+net string: ::1/128
DEBUG Listen: (main.Listen) {
iname: (string) (len=2) "lo",
netif: (*net.Interface)(0xc000062b80)({
Index: (int) 1,
MTU: (int) 65536,
Name: (string) (len=2) "lo",
HardwareAddr: (net.HardwareAddr) ,
Flags: (net.Flags) up|loopback|running
}),
ports: ([]int32) (len=1 cap=2) {
(int32) 9003
},
ipaddr: (string) (len=15) "127.255.255.255",
promisc: (bool) false,
handle: (*pcap.Handle)(),
writer: (*pcapgo.Writer)(),
inwriter: (*pcapgo.Writer)(),
outwriter: (*pcapgo.Writer)(),
sendOnly: (bool) true,
localIP: (net.IP) ,
timeout: (time.Duration) 250ms,
clientTTL: (time.Duration) 0s,
sendpkt: (chan main.Send) (cap=100) 0xc000064a20,
clients: (map[string]time.Time) (len=1) {
(string) (len=9) "127.0.0.1": (time.Time) 0001-01-01 00:00:00 +0000 UTC
}
}
DEBUG lo: applying BPF Filter: (udp port 9003) and (src net 127.0.0.0/8)
DEBUG Opened pcap handle on lo
DEBUG netmaker: applying BPF Filter: (udp port 9003) and (src net 10.20.20.0/24)
DEBUG Opened pcap handle on netmaker
DEBUG lo: applying BPF Filter: (udp port 9003) and (src net 127.0.0.0/8)
DEBUG Opened pcap handle on lo
DEBUG Initialization complete!
DEBUG handlePackets(lo) ticker
DEBUG handlePackets(lo) ticker
DEBUG handlePackets(netmaker) ticker
DEBUG handlePackets(lo) ticker
DEBUG handlePackets(lo) ticker
DEBUG handlePackets(netmaker) ticker
DEBUG handlePackets(lo) ticker
DEBUG handlePackets(netmaker) ticker
DEBUG handlePackets(lo) ticker
DEBUG handlePackets(lo) ticker
DEBUG handlePackets(lo) ticker
DEBUG handlePackets(netmaker) ticker
DEBUG handlePackets(lo) ticker
DEBUG handlePackets(lo) ticker
DEBUG handlePackets(netmaker) ticker
DEBUG handlePackets(lo) ticker
DEBUG handlePackets(lo) ticker
DEBUG handlePackets(netmaker) ticker
DEBUG handlePackets(lo) ticker
DEBUG handlePackets(lo) ticker
DEBUG handlePackets(netmaker) ticker
DEBUG handlePackets(lo) ticker
DEBUG handlePackets(lo) ticker
DEBUG handlePackets(netmaker) ticker
DEBUG handlePackets(lo) ticker
DEBUG handlePackets(lo) ticker
DEBUG handlePackets(netmaker) ticker
DEBUG handlePackets(lo) ticker
DEBUG handlePackets(lo) ticker
DEBUG handlePackets(netmaker) ticker
DEBUG handlePackets(lo) ticker
DEBUG handlePackets(lo) ticker
DEBUG handlePackets(netmaker) ticker
DEBUG handlePackets(lo) ticker
DEBUG handlePackets(netmaker) ticker
DEBUG handlePackets(lo) ticker
DEBUG handlePackets(lo) ticker
DEBUG handlePackets(lo) ticker
DEBUG handlePackets(netmaker) ticker
DEBUG handlePackets(lo) ticker
DEBUG handlePackets(lo) ticker
DEBUG handlePackets(netmaker) ticker
DEBUG handlePackets(lo) ticker
DEBUG handlePackets(lo) ticker
DEBUG handlePackets(netmaker) ticker
DEBUG netmaker: Learned client IP: 10.20.20.1
DEBUG netmaker: received packet and fowarding onto other interfaces
DEBUG lo: sending out because we're not netmaker
DEBUG lo: Learned client IP: 127.0.0.1
DEBUG lo: received packet and fowarding onto other interfaces
DEBUG netmaker: sending out because we're not lo
DEBUG processing packet from netmaker on lo
FATAL can't serialize Eth header: (layers.Ethernet) {
BaseLayer: (layers.BaseLayer) {
Contents: ([]uint8) ,
Payload: ([]uint8)
},
SrcMAC: (net.HardwareAddr) ,
DstMAC: (net.HardwareAddr) (len=6 cap=6) ff:ff:ff:ff:ff:ff,
EthernetType: (layers.EthernetType) IPv4,
Length: (uint16) 0
}

@synfinatic
Copy link
Owner

Running udp-proxy-2020 on the same host as Roon is not supported at this time. Using loopback is not supported at this time..

@mglause
Copy link
Author

mglause commented Aug 29, 2023

Ok, thank you. You might want to clarify on the main page. It current says the following:

Does udp-proxy-2020 support running on the same host as Roon/etc?
As of v0.1.0, yes. You need to specify --deliver-local and --no-listen options so that it delivers packets via the loopback interface.

@synfinatic
Copy link
Owner

v0.1.0 isn't released yet :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants