Version 16 (modified by matwad, 6 months ago)

vendor option in interfaces does not work with dhclient

Tvheadend with Telia IPTV

This page will describe how to configure Tvheadend to receive multicast TV streams via your Telia broadband connection, note that you must be subscribed to the TV service or else the service is not provisioned to your customer port.

TODO: Not using Telia switch, VLAN ID 825?

Tvheadend

TODO: Add groups 239.16.16.1-255, link to file with channel names etc

Ubuntu and Debian

Example configuration for /etc/network/interfaces

iface eth1 inet dhcp
        vendor "TeliaSonera_VIP1910-9"
        post-up echo 2 > /proc/sys/net/ipv4/conf/eth1/force_igmp_version
        # rp_filter change is only needed if you have multiple network interfaces
        # and the default route is not routed out on the multicast interface
        post-up echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter
        post-up echo 0 > /proc/sys/net/ipv4/conf/eth1/rp_filter

Lines added to /etc/dhcp3/dhclient.conf

interface "eth1" {
        vendor-class-identifier "TeliaSonera_VIP1910-9";
}

DHCP

A vendor class identifier used by the Telia  STB must be present in the  DHCP request, a known working identifier is "TeliaSonera_VIP1910-9".

For dhclient this configuration line changes the vendor class identifier.

vendor-class-identifier "TeliaSonera_VIP1910-9";

IGMP

Telia seams to only support  IGMP version 2 and default Linux tries to use version 3 with some fallback heuristics that seams to not work that well with Telia. You can force IGMP version 2 by changing the force_igmp_version file in the proc filesystem.

echo 2 > /proc/sys/net/ipv4/conf/eth1/force_igmp_version

Setup with multiple network interfaces

If the default route is not routed out on the interface used to receive the multicast stream you must disable  RPF or add a route to the source IP used in the received stream otherwise the packets will be dropped by the kernel because of RPF and will not be passed on to Tvheadend.

You can disable RPF in Linux by changing the rp_filter file in the proc filesystem.

echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter
echo 0 > /proc/sys/net/ipv4/conf/$INTERFACE/rp_filter

It is imported to change both of them, if all/rp_filter is 1 the interface specific configuration is ignored.

If you instead want to have RPF enabled you can add a route to the source of the multicast stream.

route add -host $STREAM_SOURCE_IP gw $INTERFACE_GW dev $INTERFACE