]> git.proxmox.com Git - mirror_frr.git/blame - pimd/CAVEATS
pimd: merge pimd as of 2015-01-19
[mirror_frr.git] / pimd / CAVEATS
CommitLineData
12e41d03
DL
1# $QuaggaId: $Format:%an, %ai, %h$ $
2
3C1 IGMPv3 backward compatibility with IGMPv1 and IGMPv2 is not
4 implemented. See RFC 3376, 7.3. Multicast Router Behavior. That's
5 because only Source-Specific Multicast is currently targeted.
6
7C2 IGMPv3 support for forwarding any-source groups is not
8 implemented. Traffic for groups in mode EXCLUDE {empty} won't be
9 forwarded. See RFC 3376, 6.3. Source-Specific Forwarding
10 Rules. That's because only Source-Specific Multicast is currently
11 targeted.
12
13C3 Load Splitting of IP Multicast Traffic over ECMP is not supported.
14 See also: RFC 2991
15 Multipath Issues in Unicast and Multicast Next-Hop Selection
16 http://www.rfc-editor.org/rfc/rfc2991.txt
17
18C4 IPSec AH authentication is not supported (RFC 4601:
19 6.3. Authentication Using IPsec).
20
21C5 PIM support is limited to SSM mode as defined in section 4.8.2
22 (PIM-SSM-Only Routers) of RFC4601. That's because only
23 Source-Specific Multicast is currently targeted.
24
25C6 PIM implementation currently does not support IPv6. PIM-SSM
26 requires IGMPv3 for IPv4 and MLDv2 for IPv6. MLDv2 is currently
27 missing. See also CAVEAT C9.
28
29C7 FIXED (S,G) Assert state machine (RFC 4601, section 4.6.1) is not
30 implemented. See also TODO T6. See also CAVEAT C10.
31
32C8 It is not possible to disable join suppression in order to
33 explicitly track the join membership of individual downstream
34 routers.
35 - IGMPv3 Explicit Membership Tracking is not supported.
36 When explicit tracking is enabled on a router, the router can
37 individually track the Internet Group Management Protocol (IGMP)
38 membership state of all reporting hosts. This feature allows the
39 router to achieve minimal leave latencies when hosts leave a
40 multicast group or channel. Example:
41 conf t
42 interface eth0
43 ip igmp explicit-tracking
44
45C9 Only IPv4 Address Family (number=1) is supported in the PIM Address
46 Family field.
47 See also RFC 4601: 5.1. PIM Address Family
48 See also CAVEAT C6.
49 See also http://www.iana.org/assignments/address-family-numbers
50
51C10 FIXED Assert metric depends on metric_preference and
52 route_metric. Those parameters should be fetched from RIB
53 (zebra). See also pim_rpf.c, pim_rpf_update().
54
55C11 SSM Mapping is not supported
56
57 SSM Mapping Overview:
58
59 SSM mapping introduces a means for the last hop router to discover
60 sources sending to groups. When SSM mapping is configured, if a
61 router receives an IGMPv1 or IGMPv2 membership report for a
62 particular group G, the router translates this report into one or
63 more (S, G) channel memberships for the well-known sources
64 associated with this group.
65
66 When the router receives an IGMPv1 or IGMPv2 membership report for
67 a group G, the router uses SSM mapping to determine one or more
68 source IP addresses for the group G. SSM mapping then translates
69 the membership report as an IGMPv3 report INCLUDE (G, [S1, G],
70 [S2, G]...[Sn, G] and continues as if it had received an IGMPv3
71 report. The router then sends out PIM joins toward (S1, G) to (Sn,
72 G) and continues to be joined to these groups as long as it
73 continues to receive the IGMPv1 or IGMPv2 membership reports and
74 as long as the SSM mapping for the group remains the same. SSM
75 mapping, thus, enables you to leverage SSM for video delivery to
76 legacy STBs that do not support IGMPv3 or for applications that do
77 not take advantage of the IGMPv3 host stack.
78
79 SSM mapping enables the last hop router to determine the source
80 addresses either by a statically configured table on the router or
81 by consulting a DNS server. When the statically configured table
82 is changed, or when the DNS mapping changes, the router will leave
83 the current sources associated with the joined groups.
84
85C12 FIXED MRIB for incongruent unicast/multicast topologies is not
86 supported. RPF mechanism currently just looks up the information
87 in the unicast routing table.
88
89 See also:
90 RFC5110: 2.2.3. Issue: Overlapping Unicast/Multicast Topology
91
92 Sometimes, multicast RPF mechanisms first look up the multicast
93 routing table, or M-RIB ("topology database") with a longest
94 prefix match algorithm, and if they find any entry (including a
95 default route), that is used; if no match is found, the unicast
96 routing table is used instead.
97
98C13 Can't detect change of primary address before the actual change.
99 Possible approach is to craft old interface address into ip source
100 address by using raw ip socket.
101
102 See also:
103
104 RFC 4601: 4.3.1. Sending Hello Messages
105
106 Before an interface goes down or changes primary IP address, a
107 Hello message with a zero HoldTime should be sent immediately
108 (with the old IP address if the IP address changed).
109
110 See also pim_sock_delete().
111
112C14 FIXED Detection of interface primary address changes may fail when
113 there are multiple addresses.
114 See also TODO T32.
115
116C15 Changes in interface secondary address list are not immediately
117 detected.
118 See also detect_secondary_address_change
119 See also TODO T31.
120
121C16 AMT Draft (mboned-auto-multicast) is not supported.
122 AMT = Automatic IP Multicast Without Explicit Tunnels
123
124 See also:
125
126 Draft
127 http://tools.ietf.org/html/draft-ietf-mboned-auto-multicast
128 http://tools.ietf.org/html/draft-ietf-mboned-auto-multicast-09
129
130 AMT gateway implementation for Linux
131 http://cs.utdallas.edu/amt/
132
133 AMT for Streaming (IPTV) on Global IP Multicast by Greg Shepherd (Cisco)
134 http://nznog.miniconf.org/nznog-2008-sysadmin-miniconf-greg-shepherd-iptv.pdf
135
136C17 SNMP / RFC 5060 (PIM MIB) is not supported.
137
138C18 MFC never recovers from removal of static route to source
139
140 # route add -host 1.2.3.4 gw 192.168.56.10
141 Before removal:
142 quagga-pimd-router# sh ip mroute
143 Source Group Proto Input iVifI Output oVifI TTL Uptime
144 1.2.3.4 232.1.2.3 I eth1 3 eth0 2 1 00:00:36
145
146 # route del -host 1.2.3.4 gw 192.168.56.10
147 After removal: sh ip mroute --> empty output
148
149 # route add -host 1.2.3.4 gw 192.168.56.10
150 After the route is restored: sh ip mroute --> never recovers (empty output)
151
152 At this point, "no ip pim ssm" on the upstream interface (eth0) crashes pimd:
153
154 2014/02/14 16:30:14 PIM: ifmembership_set: (S,G)=(1.2.3.4,232.1.2.3) membership now is NOINFO on interface eth0
155 2014/02/14 16:30:14 PIM: pim_ifchannel_update_assert_tracking_desired: AssertTrackingDesired(1.2.3.4,232.1.2.3,eth0) changed from 1 to 0
156 2014/02/14 16:30:14 PIM: pim_zebra.c del_oif: nonexistent protocol mask 2 removed OIF eth0 (vif_index=2, min_ttl=0) from channel (S,G)=(1.2.3.4,232.1.2.3)
157 2014/02/14 16:30:14 PIM: pim_ifchannel_update_could_assert: CouldAssert(1.2.3.4,232.1.2.3,eth0) changed from 1 to 0
158 2014/02/14 16:30:14 PIM: pim_ifchannel_update_my_assert_metric: my_assert_metric(1.2.3.4,232.1.2.3,eth0) changed from 0,0,0,10.0.2.15 to 1,4294967295,4294967295,0.0.0.0
159 2014/02/14 16:30:14 PIM: pim_zebra.c del_oif: nonexistent protocol mask 1 removed OIF eth0 (vif_index=2, min_ttl=0) from channel (S,G)=(1.2.3.4,232.1.2.3)
160 2014/02/14 16:30:14 PIM: Assertion `!IGMP_SOURCE_TEST_FORWARDING(source->source_flags)' failed in file pim_igmpv3.c, line 412, function igmp_source_delete
161
162C19 Provision to prevent group mode clash
163
164 Beware group mode clash. A host/application issuing IGMPv2
165 any-source joins for a group will disrupt SSM multicast for that
166 group.
167
168 For instance, support for source-specific static igmp WILL FAIL if
169 there is host/application issuing IGMPv2 any-source joins for the
170 same group.
171
172 The reason is the IGMPv2 any-source join forces qpimd to switch
173 the group mode to ASM (any-source multicast); however, qpimd is
174 unable to program ASM groups into the kernel; multicast won't
175 flow. There could be some provision to prevent such a behavior,
176 but currently there is none.
177
178-x-