Project

General

Profile

TeliaIPTV » History » Revision 14

Revision 13 (matwad -, 2010-03-12 01:30) → Revision 14/18 (matwad -, 2010-03-12 02:14)

= 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
}}}

== DHCP ==

The vendor class identifier must be change, a known working identifier is "!TeliaSonera_VIP1910-9"

For dhclient this configuration line changes the vendor class
{{{
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 /proc/sys/net/ipv4/conf/eth0/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 [http://www.wlug.org.nz/ReversePathFiltering 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
}}}