Bug #13929
closed
IGMP Proxy multicast group membership query packets have an invalid checksum
Added by R. Picobello almost 2 years ago.
Updated over 1 year ago.
Plus Target Version:
23.05
Affected Architecture:
All
Description
Having a TV provider with multicast streams, working flawless in 22.50 when upgraded to 23.01 it starts stuttering and stopped playing. After a research with packets captures it seems that the membership query from pfSense to the LAN devices is corrupted. Therefore the STB does not report back its currently joined groups, and the proxy sends out a leave on the WAN -> TV stops.
Screenshots with debugging showed here https://forum.netgate.com/topic/177181/23-01-b-20230106-0600-igmp-proxy-stops-tv-stream/31?_=1675500284303
I don't know if this is caused due to the IGMP-Proxy or the Intel 226v NIC driver running on an intel N5105 CPU.
Files
- Subject changed from IGMP proxy/IGMP packet bug in 23.01 RC to IGMP Proxy multicast group membership query packets have an invalid checksum
- Target version set to 23.05
Marking as 23.05 for now so it doesn't get missed. If we find a viable solution in the meantime we can try to squeeze it in.
I can't upgrade to 23.01 if this issue is still active in 23.01.
Hopefully this will be fixed in 23.01 instead of 23.05
I’m also hoping this could be fixed in 23.01.
It’s going to destroy a lot of IPTV setups when people upgrade.
Hopefully it will be fixed in the upcoming version 23.01. Otherwise I have to skip this version. :(
Is this bug also in the version CE 2.7.0?
I was going to upgrade from 2.6.0 CE to plus 23.01, but this bug is a stopper for me. I've got a working IPTV setup atm so this bug prevents me from upgrading. I was so excited to be able to try out the new version, but it'll have to wait. Hopefully it can be fixed soon.
issue seems to be from freeBSD-14 upstream, freeBSD-13 seems to generate valid igmp query packets,
any idea pfsense plus went with unreleased/unstable freeBSD-14 rather than stable 13?
@Nizam Moidu
Thanks for the example program. This is immensely helpful. I'm looking at it now.
Unfortunately I get the same output with the example program on 22.05 (FreeBSD 12.3) and 23.01 (FreeBSD14)
I've tried different versions of llvm across different versions of FreeBSD... I get the same result:
check sum is 0x9bee
- Assignee set to Christian McDonald
@Christian McDonald
sorry about the different output on freebsd 14, I figured out the issue, the bug is indeed in the igmpproxy, where it calculated checksum. [[https://github.com/pali/igmpproxy/blob/master/src/igmp.c#L290]], i am little confused about the current code it passes data length out of payload length, this should work as long as the overflow bytes are all zeros, i am not sure what made this change in freebsd 14, i do have patch which is working for me now, i am attaching binary as well if someone needs
Attached is a bundled up pkg that can be installed on amd64
pkg add -f igmpproxy-0.3_1.pkg
- Status changed from New to Feedback
The fix has been pushed to the 23.01 ports tree. In a few hours you should be able to run: pkg upgrade igmpproxy
on all architectures to obtain the updated binary.
- Status changed from Feedback to Resolved
- Project changed from pfSense Plus to pfSense
- Category changed from IGMP Proxy to IGMP Proxy
- Target version changed from 23.05 to 2.7.0
- Affected Plus Version deleted (
23.01)
- Plus Target Version set to 23.05
- Affected Version set to 2.7.0
Also available in: Atom
PDF