23.01.b.20230106.0600 IGMP proxy stops TV stream
-
For the record
[23.01-BETA][admin@pfSense.high.local]/root: cat /var/etc/igmpproxy.conf ##------------------------------------------------------ ## Enable Quickleave mode (Sends Leave instantly) ##------------------------------------------------------ quickleave phyint igc1.4 upstream ratelimit 0 threshold 1 altnet 0.0.0.0/1 altnet 128.0.0.0/1 phyint igc2 downstream ratelimit 0 threshold 1 altnet 172.16.26.0/24 phyint pppoe0 disabled phyint igc0.60 disabled phyint igc0 disabled phyint igc0.7 disabled phyint igc0.8 disabled phyint igc0.2 disabled phyint tun_wg0 disabled phyint ovpnc1 disabled phyint igc0.111 disabled phyint igc0.110 disabled
-
When digging further into this issue it seems that the TV stream stops when this log entry is passing by. Which in fact is correct, its coming from the WAN, why does it stop the stream ;(
The IGMP message was local multicast. Ignoring. RECV V3 member report from 10.238.170.137 to 224.0.0.22 Got leave message from 10.238.170.137 to 224.0.252.139. Starting last member detection. The found if for 10.238.170.137 was not downstream. Ignoring leave request. RECV V3 member report from 10.238.170.137 to 224.0.0.22 Got leave message from 10.238.170.137 to 224.0.252.139. Starting last member detection. The found if for 10.238.170.137 was not downstream. Ignoring leave request. About to call timeout 78 (#0)
-
Did another troubleshooting and it seems the IGMP 0x11 packets, sourced from pfSense, to the STB are corrupt and therefor the STB is not answering them.
@stephenw10 would you mind monitor this topic, I'm testing one more thing and that is to exclude the UniFi switch from the path.
Background:
*In IGMP V2; General query is used to learn which groups have members on an attached network(type:0x11, group address:0.0.0.0). Group-specific query is used to learn if particular group has any members on an attached network.(type:0x11, group address:group address that being queried)IGMPv2 Membership Reports are generated by IGMPv2 hosts when they first join a multicast group, and are sent in response to IGMPv2 Membership Queries.*
Sniffed the capture below on two physical switches, one in the WAN outer end. And one on the STB outer end. In between is the UniFi switch and pfSense on a N5105 board. Both sniffed on one MacBook to read the WAN and LAN as timeline top to bottom
172.16.26.11 STB
10.238.170.137 WAN IPTV IP-
Packet 53580 asks the STB for stream 224.0.251.125
-
Packet 71526 pfSense asking who is listing to a stream currently? Only this packet has a **corrupt checksom and is never answered...
-
Packet 85556 the IGMP proxy decides to shutdowns the stream because his request for active listeners is not answered, so no-one is listening...which is wrong...and closing the connection via a LEAVE group to the WAN.
-
-
Deffenetly an issue with pfSense 23.01 beta, the thing is...it's quite hard to rollback tot 22.05. As you need to start over and the I-226v NIC drivers are not embedded in the current start release.
Captured the network once again with the provider modem, and there the IGMP messages to 224.0.0.1 are OK, not corrupted and answered instantly by the STB.
What is needed to look deeper into this and probably fix the bug? Is there any way I can check if the IGMP-proxy version has changed between 22.05 and 23.01?
-
It seems there was a double issue:
My UniFi switch is having issues with igmp snooping for the packets involved in my TV stream. That caused an issue, with VYOS as router the TV works as before.
There is still an pfSense 23.01 beta issue, the forwarding of multicast seems to be dropping after a few minutes. Maybe the intel I-226v driver support or something? I hope the RC brings some good to this issue.
-
@thebear I'm no expert but from your trace it appears that the checksum is not correctly generated so maybe driver related. You could do a test with hardware checksum offload disabled. Not good for long term but maybe for a test. Good luck.
-
@ltolbert thanks indeed, this is with hardware checksum offload disabled. The N5105 has plenty of power to generate the checksums itself.
Its a weird situation summary:
-IGMP messages from pfSense alway a wrong checksum.
-pfSense 23.01 have an issue with forwarding multicast, therefore the streams stopped and the STB complains about a lost modem connections. This was running fine with 22.05.That the IGMP joins where not received by pfSense from the STB in the captures is due to a switching bug.
-
@thebear said in 23.01.b.20230106.0600 IGMP proxy stops TV stream:
-IGMP messages from pfSense alway a wrong checksum.
Even with checksum offloading disabled? It's expected to see that in a packet capture when it's enabled.
-
@stephenw10 yes it is disabled and still showing. Some other locals pointed me also towards this setting, but it did not change.
Please note that the STB was unable to deliver IGMP joins to pfSense due to a wrong multicast IGMP snooping on the switch.
My main concern left is that pfSense 23.01beta seems to be having trouble forwarding this multicast data and the TV starts to stutter and drops channel. Could that be a driver issue with the intel i226v?
-
Possibly but I would suspect an issue in IGMPproxy first.
Did this same hardware and config work as expected in 22.05?
-
@stephenw10 said in 23.01.b.20230106.0600 IGMP proxy stops TV stream:
Possibly but I would suspect an issue in IGMPproxy first.
Did this same hardware and config work as expected in 22.05?
yes was watching TV every night. From my latest research it seems the igmp joins are transported correctly between wan and stb-lan. But then the stream got issues and drops.
Any way to check the igmp-proxy version between 22.05 and 23.01? Does the version number got changed for the proxy software?
-
The pkg version is the same between 22.05 and 23.01:
[23.01-RC][root@6100.stevew.lan]/root: pkg info -x igmp igmpproxy-0.3,1
Do you see any traffic blocked?
Troubleshooting he igmpproxy is.... painful!
You can enable verbose logging in the gui settings but my experience with that has been limited.
The only way to get any real information from it is to stop the service in the gui then start it at the CLI in verbose mode:
[22.05.1-RELEASE][root@8200-2.stevew.lan]/root: igmpproxy -d -vv /var/etc/igmpproxy.conf Searching for config file at '/var/etc/igmpproxy.conf' Config: Quick leave mode enabled. Config: Got a phyint token. Config: IF: Config for interface ix3. Config: IF: Got upstream token. Config: IF: Got ratelimit token '0'. Config: IF: Got threshold token '1'. Config: IF: Got altnet token 224.0.0.0/8. Config: IF: Altnet: Parsed altnet to 224/8. IF name : ix3 Next ptr : 0 Ratelimit : 0 Threshold : 1 State : 1 Allowednet ptr : 649000 Config: Got a phyint token. Config: IF: Config for interface igc0. Config: IF: Got downstream token. Config: IF: Got ratelimit token '0'. Config: IF: Got threshold token '1'. Config: IF: Got altnet token 192.168.92.0/24. Config: IF: Altnet: Parsed altnet to 192.168.92/24. IF name : igc0 Next ptr : 0 Ratelimit : 0 Threshold : 1 State : 2 Allowednet ptr : 649010 Config: Got a phyint token. Config: IF: Config for interface ix2. Config: IF: Got disabled token. IF name : ix2 Next ptr : 0 Ratelimit : 0 Threshold : 1 State : 0 Allowednet ptr : 0 Config: Got a phyint token. Config: IF: Config for interface ix0. Config: IF: Got disabled token. IF name : ix0 Next ptr : 0 Ratelimit : 0 Threshold : 1 State : 0 Allowednet ptr : 0 Config: Got a phyint token. Config: IF: Config for interface ix1. Config: IF: Got disabled token. IF name : ix1 Next ptr : 0 Ratelimit : 0 Threshold : 1 State : 0 Allowednet ptr : 0 Config: Got a phyint token. Config: IF: Config for interface igc1. Config: IF: Got disabled token. IF name : igc1 Next ptr : 0 Ratelimit : 0 Threshold : 1 State : 0 Allowednet ptr : 0 Config: Got a phyint token. Config: IF: Config for interface igc2. Config: IF: Got disabled token. IF name : igc2 Next ptr : 0 Ratelimit : 0 Threshold : 1 State : 0 Allowednet ptr : 0 Config: Got a phyint token. Config: IF: Config for interface igc3. Config: IF: Got disabled token. IF name : igc3 Next ptr : 0 Ratelimit : 0 Threshold : 1 State : 0 Allowednet ptr : 0 buildIfVc: Interface igc0 Addr: 192.168.92.1, Flags: 0xffff8843, Network: 192.168.92/24 buildIfVc: Interface ix3 Addr: 172.21.16.92, Flags: 0xffff8843, Network: 172.21.16/24 buildIfVc: Interface lo0 Addr: 127.0.0.1, Flags: 0xffff8049, Network: 127/8 Found config for igc0 Found config for ix3 adding VIF, Ix 0 Fl 0x0 IP 0x015ca8c0 igc0, Threshold: 1, Ratelimit: 0 Network for [igc0] : 192.168.92/24 Network for [igc0] : 192.168.92/24 Found upstrem IF #0, will assing as upstream Vif 18 adding VIF, Ix 1 Fl 0x0 IP 0x5c1015ac ix3, Threshold: 1, Ratelimit: 0 Network for [ix3] : 172.21.16/24 Network for [ix3] : 224/8 Got 262144 byte buffer size in 0 iterations Joining all-routers group 224.0.0.2 on vif 192.168.92.1 Joining group 224.0.0.2 on interface igc0 Joining all igmpv3 multicast routers group 224.0.0.22 on vif 192.168.92.1 Joining group 224.0.0.22 on interface igc0 Sender VIF was down.; Errno(50): Network is down
That will give you a lot of information which isn't all that helpful but if you can log the output across a stream failure it might show you what's happening.
Steve
-
@stephenw10 said in 23.01.b.20230106.0600 IGMP proxy stops TV stream:
igmpproxy -d -vv /var/etc/igmpproxy.conf
Morning @stephenw10 no traffic blocked confirmed by the stream which is build op in multicast. It's quite a smart STB, it starts in unicast to fake fast channel switching. And then it seamless transfers to multicast.
I think it might still related to IGMP-proxy as you suspect, there are to less igmp joins from the STB processed. And the proxy is aging out the old routes. The stream was stuttering a the end of the capture, I think due to igmp joins missing/being processed correctly. After a few sec the stream is build op again, the STB tries that 2 times and then trows an error on the screen.
(Id:11, Time:115) About to call timeout 10 (#0) Aging routes in table. Removing group 224.0.251.133. Died of old age. Removed route entry for 224.0.251.133 from table. Vif bits : 0x00000001
-
pfSense after 30 seconds the igmp-proxy decides there are no listeners anymore because the IGMP-joins are not seen. (captured on the pfSense web GUI tcpdump)
-
Provider modem, every 10 seconds is the igmp join from the STB processed. So indeed the died of old age message is true because the proxy is unable to catch all the igmp joins.
Below the full log and the full igmp capture at the same time taken on the LAN interface.
pfSense capture
adding VIF, Ix 0 Fl 0x0 IP 0x011b10ac igc2, Threshold: 1, Ratelimit: 0 Network for [igc2] : 172.16.27/24 Network for [igc2] : 172.16.27/24 Found upstrem IF #0, will assing as upstream Vif 52 adding VIF, Ix 1 Fl 0x0 IP 0x2738ee0a igc1.4, Threshold: 1, Ratelimit: 0 Network for [igc1.4] : 10.238.56/22 Network for [igc1.4] : 0/1 Network for [igc1.4] : 128/1 adding VIF, Ix 2 Fl 0x0 IP 0x011a10ac igc0.26, Threshold: 1, Ratelimit: 0 Network for [igc0.26] : 172.16.26/24 Network for [igc0.26] : 172.16.26/24 Got 262144 byte buffer size in 0 iterations Joining all-routers group 224.0.0.2 on vif 172.16.27.1 Joining group 224.0.0.2 on interface igc2 Joining all igmpv3 multicast routers group 224.0.0.22 on vif 172.16.27.1 Joining group 224.0.0.22 on interface igc2 Joining all-routers group 224.0.0.2 on vif 172.16.26.1 Joining group 224.0.0.2 on interface igc0.26 Joining all igmpv3 multicast routers group 224.0.0.22 on vif 172.16.26.1 Joining group 224.0.0.22 on interface igc0.26 SENT Membership query from 172.16.27.1 to 224.0.0.1 Sent membership query from 172.16.27.1 to 224.0.0.1. Delay: 10 SENT Membership query from 172.16.26.1 to 224.0.0.1 Sent membership query from 172.16.26.1 to 224.0.0.1. Delay: 10 Created timeout 1 (#0) - delay 10 secs (Id:1, Time:10) Created timeout 2 (#1) - delay 21 secs (Id:1, Time:10) (Id:2, Time:21) RECV V3 member report from 172.16.26.1 to 224.0.0.22 The IGMP message was from myself. Ignoring. The IGMP message was from myself. Ignoring. RECV V3 member report from 172.16.27.1 to 224.0.0.22 The IGMP message was from myself. Ignoring. The IGMP message was from myself. Ignoring. RECV V3 member report from 172.16.27.1 to 224.0.0.22 The IGMP message was from myself. Ignoring. The IGMP message was from myself. Ignoring. RECV V3 member report from 172.16.26.1 to 224.0.0.22 The IGMP message was from myself. Ignoring. The IGMP message was from myself. Ignoring. RECV Leave message from 172.16.27.10 to 224.0.0.2 Got leave message from 172.16.27.10 to 224.0.251.133. Starting last member detection. Created timeout 3 (#1) - delay 2 secs (Id:1, Time:8) (Id:3, Time:2) (Id:2, Time:19) RECV Leave message from 172.16.27.10 to 224.0.0.2 Got leave message from 172.16.27.10 to 224.0.0.199. Starting last member detection. Created timeout 4 (#2) - delay 1 secs (Id:1, Time:7) (Id:3, Time:2) (Id:4, Time:1) (Id:2, Time:18) RECV V2 member report from 172.16.27.10 to 224.0.0.199 Should insert group 224.0.0.199 (from: 172.16.27.10) to route table. Vif Ix : 0 No existing route for 224.0.0.199. Create new. No routes in table. Insert at beginning. Inserted route table entry for 224.0.0.199 on VIF #0 Joining group 224.0.0.199 upstream on IF address 10.238.56.39 Joining group 224.0.0.199 on interface igc1.4 Current routing table (Insert Route): ----------------------------------------------------- #0: Dst: 224.0.0.199, Age:2, St: I, OutVifs: 0x00000001, dHosts: yes ----------------------------------------------------- RECV V3 member report from 10.238.56.39 to 224.0.0.22 The IGMP message was from myself. Ignoring. RECV V2 member report from 172.16.27.10 to 224.0.0.199 Should insert group 224.0.0.199 (from: 172.16.27.10) to route table. Vif Ix : 0 Updated route entry for 224.0.0.199 on VIF #0 Current routing table (Insert Route): ----------------------------------------------------- #0: Dst: 224.0.0.199, Age:2, St: I, OutVifs: 0x00000001, dHosts: yes ----------------------------------------------------- RECV V3 member report from 10.238.56.39 to 224.0.0.22 The IGMP message was from myself. Ignoring. RECV Leave message from 172.16.27.10 to 224.0.0.2 Got leave message from 172.16.27.10 to 224.0.0.199. Starting last member detection. counted 1 interfaces quickleave is enabled and this was the last downstream host, leaving group 224.0.0.199 now Leaving group 224.0.0.199 upstream on IF address 10.238.56.39 Leaving group 224.0.0.199 on interface igc1.4 Interface id 0 is in group $d SENT Membership query from 172.16.27.1 to 224.0.0.199 Sent membership query from 172.16.27.1 to 224.0.0.199. Delay: 10 Interface id 2 is in group $d Created timeout 5 (#3) - delay 1 secs (Id:1, Time:6) (Id:3, Time:2) (Id:4, Time:1) (Id:5, Time:1) (Id:2, Time:17) RECV V2 member report from 172.16.27.10 to 224.0.0.199 Should insert group 224.0.0.199 (from: 172.16.27.10) to route table. Vif Ix : 0 Updated route entry for 224.0.0.199 on VIF #0 Joining group 224.0.0.199 upstream on IF address 10.238.56.39 Joining group 224.0.0.199 on interface igc1.4 Current routing table (Insert Route): ----------------------------------------------------- #0: Dst: 224.0.0.199, Age:2, St: I, OutVifs: 0x00000001, dHosts: yes ----------------------------------------------------- The IGMP message was local multicast. Ignoring. About to call timeout 1 (#0) Aging routes in table. Current routing table (Age active routes): ----------------------------------------------------- #0: Dst: 224.0.0.199, Age:2, St: I, OutVifs: 0x00000001, dHosts: yes ----------------------------------------------------- RECV V2 member report from 172.16.27.10 to 224.0.251.133 Should insert group 224.0.251.133 (from: 172.16.27.10) to route table. Vif Ix : 0 No existing route for 224.0.251.133. Create new. Found existing routes. Find insert location. Inserting at beginning, before route 224.0.0.199 Inserted route table entry for 224.0.251.133 on VIF #0 Joining group 224.0.251.133 upstream on IF address 10.238.56.39 Joining group 224.0.251.133 on interface igc1.4 Current routing table (Insert Route): ----------------------------------------------------- #0: Dst: 224.0.251.133, Age:2, St: I, OutVifs: 0x00000001, dHosts: yes #1: Dst: 224.0.0.199, Age:2, St: I, OutVifs: 0x00000001, dHosts: yes ----------------------------------------------------- RECV V3 member report from 10.238.56.39 to 224.0.0.22 The IGMP message was from myself. Ignoring. Route activate request from 217.166.225.133 to 224.0.251.133 on VIF[1] Vif bits : 0x00000001 Setting TTL for Vif 0 to 1 Adding MFC: 217.166.225.133 -> 224.0.251.133, InpVIf: 1 Current routing table (Activate Route): ----------------------------------------------------- #0: Src0: 217.166.225.133, Dst: 224.0.251.133, Age:2, St: A, OutVifs: 0x00000001, dHosts: yes #1: Dst: 224.0.0.199, Age:2, St: I, OutVifs: 0x00000001, dHosts: yes ----------------------------------------------------- RECV V2 member report from 172.16.27.10 to 224.0.251.133 Should insert group 224.0.251.133 (from: 172.16.27.10) to route table. Vif Ix : 0 Updated route entry for 224.0.251.133 on VIF #0 Vif bits : 0x00000001 Setting TTL for Vif 0 to 1 Adding MFC: 217.166.225.133 -> 224.0.251.133, InpVIf: 1 Current routing table (Insert Route): ----------------------------------------------------- #0: Src0: 217.166.225.133, Dst: 224.0.251.133, Age:2, St: A, OutVifs: 0x00000001, dHosts: yes #1: Dst: 224.0.0.199, Age:2, St: I, OutVifs: 0x00000001, dHosts: yes ----------------------------------------------------- RECV V3 member report from 10.238.56.39 to 224.0.0.22 The IGMP message was from myself. Ignoring. RECV V2 member report from 172.16.27.10 to 224.0.251.133 Should insert group 224.0.251.133 (from: 172.16.27.10) to route table. Vif Ix : 0 Updated route entry for 224.0.251.133 on VIF #0 Vif bits : 0x00000001 Setting TTL for Vif 0 to 1 Adding MFC: 217.166.225.133 -> 224.0.251.133, InpVIf: 1 Current routing table (Insert Route): ----------------------------------------------------- #0: Src0: 217.166.225.133, Dst: 224.0.251.133, Age:2, St: A, OutVifs: 0x00000001, dHosts: yes #1: Dst: 224.0.0.199, Age:2, St: I, OutVifs: 0x00000001, dHosts: yes ----------------------------------------------------- About to call timeout 3 (#0) About to call timeout 4 (#0) About to call timeout 5 (#0) RECV V2 member report from 172.16.27.10 to 224.0.0.199 Should insert group 224.0.0.199 (from: 172.16.27.10) to route table. Vif Ix : 0 Updated route entry for 224.0.0.199 on VIF #0 Current routing table (Insert Route): ----------------------------------------------------- #0: Src0: 217.166.225.133, Dst: 224.0.251.133, Age:2, St: A, OutVifs: 0x00000001, dHosts: yes #1: Dst: 224.0.0.199, Age:2, St: I, OutVifs: 0x00000001, dHosts: yes ----------------------------------------------------- RECV V2 member report from 172.16.27.10 to 224.0.0.199 Should insert group 224.0.0.199 (from: 172.16.27.10) to route table. Vif Ix : 0 Updated route entry for 224.0.0.199 on VIF #0 Current routing table (Insert Route): ----------------------------------------------------- #0: Src0: 217.166.225.133, Dst: 224.0.251.133, Age:2, St: A, OutVifs: 0x00000001, dHosts: yes #1: Dst: 224.0.0.199, Age:2, St: I, OutVifs: 0x00000001, dHosts: yes ----------------------------------------------------- About to call timeout 2 (#0) SENT Membership query from 172.16.27.1 to 224.0.0.1 Sent membership query from 172.16.27.1 to 224.0.0.1. Delay: 10 SENT Membership query from 172.16.26.1 to 224.0.0.1 Sent membership query from 172.16.26.1 to 224.0.0.1. Delay: 10 Created timeout 6 (#0) - delay 10 secs (Id:6, Time:10) Created timeout 7 (#1) - delay 21 secs (Id:6, Time:10) (Id:7, Time:21) About to call timeout 6 (#0) Aging routes in table. Current routing table (Age active routes): ----------------------------------------------------- #0: Src0: 217.166.225.133, Dst: 224.0.251.133, Age:2, St: A, OutVifs: 0x00000001, dHosts: yes #1: Dst: 224.0.0.199, Age:2, St: I, OutVifs: 0x00000001, dHosts: yes ----------------------------------------------------- About to call timeout 7 (#0) SENT Membership query from 172.16.27.1 to 224.0.0.1 Sent membership query from 172.16.27.1 to 224.0.0.1. Delay: 10 SENT Membership query from 172.16.26.1 to 224.0.0.1 Sent membership query from 172.16.26.1 to 224.0.0.1. Delay: 10 Created timeout 8 (#0) - delay 10 secs (Id:8, Time:10) Created timeout 9 (#1) - delay 115 secs (Id:8, Time:10) (Id:9, Time:115) About to call timeout 8 (#0) Aging routes in table. Current routing table (Age active routes): ----------------------------------------------------- #0: Src0: 217.166.225.133, Dst: 224.0.251.133, Age:1, St: A, OutVifs: 0x00000001, dHosts: yes #1: Dst: 224.0.0.199, Age:1, St: I, OutVifs: 0x00000001, dHosts: yes ----------------------------------------------------- About to call timeout 9 (#0) SENT Membership query from 172.16.27.1 to 224.0.0.1 Sent membership query from 172.16.27.1 to 224.0.0.1. Delay: 10 SENT Membership query from 172.16.26.1 to 224.0.0.1 Sent membership query from 172.16.26.1 to 224.0.0.1. Delay: 10 Created timeout 10 (#0) - delay 10 secs (Id:10, Time:10) Created timeout 11 (#1) - delay 115 secs (Id:10, Time:10) (Id:11, Time:115) About to call timeout 10 (#0) Aging routes in table. Removing group 224.0.251.133. Died of old age. Removed route entry for 224.0.251.133 from table. Vif bits : 0x00000001 Setting TTL for Vif 0 to 1 Removing MFC: 217.166.225.133 -> 224.0.251.133, InpVIf: 1 Leaving group 224.0.251.133 upstream on IF address 10.238.56.39 Leaving group 224.0.251.133 on interface igc1.4 Current routing table (Remove route): ----------------------------------------------------- #0: Dst: 224.0.0.199, Age:1, St: I, OutVifs: 0x00000001, dHosts: yes ----------------------------------------------------- Removing group 224.0.0.199. Died of old age. Removed route entry for 224.0.0.199 from table. Leaving group 224.0.0.199 upstream on IF address 10.238.56.39 Leaving group 224.0.0.199 on interface igc1.4 Current routing table (Remove route): ----------------------------------------------------- No routes in table... ----------------------------------------------------- Current routing table (Age active routes): ----------------------------------------------------- No routes in table... ----------------------------------------------------- Route activate request from 217.166.225.133 to 224.0.251.133 on VIF[1] No table entry for 224.0.251.133 [From: 217.166.225.133]. Inserting route. No existing route for 224.0.251.133. Create new. No routes in table. Insert at beginning. Inserted route table entry for 224.0.251.133 on VIF #-1 No downstream listeners for group 224.0.251.133. No join sent. Current routing table (Insert Route): ----------------------------------------------------- #0: Dst: 224.0.251.133, Age:2, St: I, OutVifs: 0x00000000, dHosts: yes ----------------------------------------------------- Current routing table (Activate Route): ----------------------------------------------------- #0: Src0: 217.166.225.133, Dst: 224.0.251.133, Age:2, St: A, OutVifs: 0x00000000, dHosts: yes ----------------------------------------------------- RECV V3 member report from 10.238.56.39 to 224.0.0.22 Got leave message from 10.238.56.39 to 224.0.251.133. Starting last member detection. The found if for 10.238.56.39 was not downstream. Ignoring leave request. RECV V3 member report from 10.238.56.39 to 224.0.0.22 Got leave message from 10.238.56.39 to 224.0.251.133. Starting last member detection. The found if for 10.238.56.39 was not downstream. Ignoring leave request. About to call timeout 11 (#0) SENT Membership query from 172.16.27.1 to 224.0.0.1 Sent membership query from 172.16.27.1 to 224.0.0.1. Delay: 10 SENT Membership query from 172.16.26.1 to 224.0.0.1 Sent membership query from 172.16.26.1 to 224.0.0.1. Delay: 10 Created timeout 12 (#0) - delay 10 secs (Id:12, Time:10) Created timeout 13 (#1) - delay 115 secs (Id:12, Time:10) (Id:13, Time:115) About to call timeout 12 (#0) Aging routes in table. Current routing table (Age active routes): ----------------------------------------------------- #0: Src0: 217.166.225.133, Dst: 224.0.251.133, Age:1, St: A, OutVifs: 0x00000000, dHosts: yes ----------------------------------------------------- RECV Leave message from 172.16.27.10 to 224.0.0.2 Got leave message from 172.16.27.10 to 224.0.251.133. Starting last member detection. Interface id 0 is in group $d Interface id 2 is in group $d Created timeout 14 (#0) - delay 10 secs (Id:14, Time:10) (Id:13, Time:105) About to call timeout 14 (#0) RECV V2 member report from 172.16.27.10 to 224.0.251.133 Should insert group 224.0.251.133 (from: 172.16.27.10) to route table. Vif Ix : 0 Updated route entry for 224.0.251.133 on VIF #0 Vif bits : 0x00000001 Setting TTL for Vif 0 to 1 Adding MFC: 217.166.225.133 -> 224.0.251.133, InpVIf: 1 Joining group 224.0.251.133 upstream on IF address 10.238.56.39 Joining group 224.0.251.133 on interface igc1.4 Current routing table (Insert Route): ----------------------------------------------------- #0: Src0: 217.166.225.133, Dst: 224.0.251.133, Age:1, St: A, OutVifs: 0x00000001, dHosts: yes ----------------------------------------------------- RECV V3 member report from 10.238.56.39 to 224.0.0.22 The IGMP message was from myself. Ignoring. RECV V3 member report from 10.238.56.39 to 224.0.0.22 The IGMP message was from myself. Ignoring. RECV V2 member report from 172.16.27.10 to 224.0.251.133 Should insert group 224.0.251.133 (from: 172.16.27.10) to route table. Vif Ix : 0 Updated route entry for 224.0.251.133 on VIF #0 Vif bits : 0x00000001 Setting TTL for Vif 0 to 1 Adding MFC: 217.166.225.133 -> 224.0.251.133, InpVIf: 1 Current routing table (Insert Route): ----------------------------------------------------- #0: Src0: 217.166.225.133, Dst: 224.0.251.133, Age:1, St: A, OutVifs: 0x00000001, dHosts: yes ----------------------------------------------------- ^Cselect() failure; Errno(4): Interrupted system call Got a interrupt signal. Exiting. clean handler called Removing route entry for 224.0.251.133 Vif bits : 0x00000001 Setting TTL for Vif 0 to 1 Removing MFC: 217.166.225.133 -> 224.0.251.133, InpVIf: 1 Leaving group 224.0.251.133 upstream on IF address 10.238.56.39 Leaving group 224.0.251.133 on interface igc1.4 All routes removed. Routing table is empty. Shutdown complete.... [23.01-BETA][admin@pfSense.high.local]/root:
When looking into the original provider modem you see that the igmp member reports (router asking clients) are answered directly. With pfSense 23.01beta the router is asking but never got a reply. Due to the corrupt checksum?
Provider gear capture.
PS confirmation that with the checksum checkbox configured as shown (screenshot yesterday) the pfSense packet still shows corrupt.
pfSense corrupt packet
-
-
@thebear There are reports that the Intel i226-V has issues like the 1st revision of the Intel i225-V. From what I recall, it was only fully resolved with a hardware fix with Revision 3.
https://linustechtips.com/topic/1483003-raptor-lake-motherboards-allegedly-hit-with-ethernet-controller-flaw-intel-i226-v-25gbe-has-a-connection-drop-issue-no-fix-currently/
-
@lnguyen said in 23.01.b.20230106.0600 IGMP proxy stops TV stream:
@thebear There are reports that the Intel i226-V has issues like the 1st revision of the Intel i225-V. From what I recall, it was only fully resolved with a hardware fix with Revision 3.
https://linustechtips.com/topic/1483003-raptor-lake-motherboards-allegedly-hit-with-ethernet-controller-flaw-intel-i226-v-25gbe-has-a-connection-drop-issue-no-fix-currently/
Yeah saw that, but where is the truth and facts? All the website are copying the news and spreading rumors last week, clickbaits. My pfSense unit with 22.5 never had a single disconnect, stable as a rock.
And now only igmp joins are not received by the proxy. Which could be some kernel igmp snooping for example -> software ;-)
I'm not believing the news sites as my unicast internet is stable as a rock with 23.01 and the i-226v. Its more clickbaite news ;-)
Nevertheless, thanks for sharing, all pieces could help.
Nothing going on- > Link logs over the last uptime arround 3,5 day:
2023-01-22 08:49:16.956753+01:00 php-fpm 363 /rc.newwanip: rc.newwanip: Info: starting on igc1.4. 2023-01-22 08:49:15.952055+01:00 check_reload_status 401 rc.newwanip starting igc1.4 2023-01-22 08:49:14.525924+01:00 check_reload_status 401 Linkup starting igc1.6 2023-01-22 08:49:14.520114+01:00 check_reload_status 401 Linkup starting igc1.4 2023-01-22 08:49:14.514628+01:00 kernel - igc1.6: link state changed to UP 2023-01-22 08:49:14.514596+01:00 kernel - igc1.4: link state changed to UP 2023-01-22 08:49:14.514537+01:00 kernel - igc1: link state changed to UP 2023-01-22 08:49:14.514245+01:00 check_reload_status 401 Linkup starting igc1 2023-01-22 08:48:59.918274+01:00 check_reload_status 401 Linkup starting igc1.6 2023-01-22 08:48:59.916272+01:00 check_reload_status 401 Linkup starting igc1.4
-
Yeah this seems very unlikely to be hardware given it was working fine in 22.05.
I could believe the updated driver is doing something to mangle the igmp packets though.
Check the enabled options in the NIC with
ifconfig -vvvm igc0
. Perhaps it's not correctly disabling checksum offload. Or maybe some new option is present in 23.01 that wasn't in 22.05 at all.For example the 8200 i226 NICs:
[22.05.1-RELEASE][root@8200-2.stevew.lan]/root: pciconf -lv igc0 igc0@pci0:4:0:0: class=0x020000 card=0x00008086 chip=0x125c8086 rev=0x04 hdr=0x00 vendor = 'Intel Corporation' class = network subclass = ethernet [22.05.1-RELEASE][root@8200-2.stevew.lan]/root: ifconfig -vvvm igc0 igc0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=e120bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,WOL_MAGIC,VLAN_HWFILTER,RXCSUM_IPV6,TXCSUM_IPV6> capabilities=f53fbb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,TSO6,LRO,WOL_UCAST,WOL_MCAST,WOL_MAGIC,VLAN_HWFILTER,VLAN_HWTSO,NETMAP,RXCSUM_IPV6,TXCSUM_IPV6> ether 90:ec:77:47:5c:e8 inet6 fe80::92ec:77ff:fe47:5ce8%igc0 prefixlen 64 scopeid 0x1 inet6 fe80::1:1%igc0 prefixlen 64 scopeid 0x1 inet 192.168.92.1 netmask 0xffffff00 broadcast 192.168.92.255 media: Ethernet autoselect status: no carrier supported media: media autoselect media 2500Base-T media 1000baseT media 1000baseT mediaopt full-duplex media 100baseTX mediaopt full-duplex media 100baseTX media 10baseT/UTP mediaopt full-duplex media 10baseT/UTP nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
Steve
-
@stephenw10 said in 23.01.b.20230106.0600 IGMP proxy stops TV stream:
Yeah this seems very unlikely to be hardware given it was working fine in 22.05.
I could believe the updated driver is doing something to mangle the igmp packets though.
Check the enabled options in the NIC with
ifconfig -vvvm igc0
. Perhaps it's not correctly disabling checksum offload. Or maybe some new option is present in 23.01 that wasn't in 22.05 at all.Morning @stephenw10 below the output and some screenshots from a diff tool. They do diff, could you see some issues?
[23.01-BETA][admin@pfSense.high.local]/root: pciconf -lv igc0 igc0@pci0:2:0:0: class=0x020000 rev=0x04 hdr=0x00 vendor=0x8086 device=0x125c subvendor=0x8086 subdevice=0x0000 vendor = 'Intel Corporation' class = network subclass = ethernet [23.01-BETA][admin@pfSense.high.local]/root: ifconfig -vvvm igc0 igc0: flags=8863<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 description: Server options=48020b8<VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,WOL_MAGIC,NOMAP> capabilities=4f43fbb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,TSO6,LRO,WOL_UCAST,WOL_MCAST,WOL_MAGIC,VLAN_HWTSO,NETMAP,RXCSUM_IPV6,TXCSUM_IPV6,NOMAP> ether 7c:2b:e1:13:7a:db inet6 fe80::7e2b:e1ff:fe13:7adb%igc0 prefixlen 64 scopeid 0x1 inet6 fe80::1:1%igc0 prefixlen 64 scopeid 0x1 inet6 2a02:a<bla> prefixlen 64 inet 172.16.1.1 netmask 0xffffff00 broadcast 172.16.1.255 media: Ethernet autoselect (1000baseT <full-duplex>) status: active supported media: media autoselect media 2500Base-T media 1000baseT media 1000baseT mediaopt full-duplex media 100baseTX mediaopt full-duplex media 100baseTX media 10baseT/UTP mediaopt full-duplex media 10baseT/UTP nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL> [23.01-BETA][admin@pfSense.high.local]/root:
-
Ok, so we can see that, interestingly, the VLAN hardware filtering capability has been removed. And it was previously in use but I don't think you are using VLANs?
The NOMAP (unmapped mbufs) capability has been added and is enabled by default. I don't believe that would affect only multicast traffic. And it appears to be a transmit option.
Are you able to test using a different interface?
-
@stephenw10 said in 23.01.b.20230106.0600 IGMP proxy stops TV stream:
Ok, so we can see that, interestingly, the VLAN hardware filtering capability has been removed. And it was previously in use but I don't think you are using VLANs?
The NOMAP (unmapped mbufs) capability has been added and is enabled by default. I don't believe that would affect only multicast traffic. And it appears to be a transmit option.
Are you able to test using a different interface?
The diff had made against YOUR output let me clarify that ;-) Yes using a hand-full VLAN's on LAN and two on WAN.
Would you be able to elaborate more on the NOMAP?
Do you mean another interface on the same board, like from igc0 to igc2? Or put in another interface board, the last option is impossible as it is a fixed housing+NIC's.
-
The thing is that its not quite easy to rollback tot 22.05 to test the previous interface output or IGMP packet capture.