mirror of
				https://git.proxmox.com/git/mirror_frr
				synced 2025-11-04 11:45:06 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			183 lines
		
	
	
		
			8.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			183 lines
		
	
	
		
			8.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
C1 IGMPv3 backward compatibility with IGMPv1 and IGMPv2 is not
 | 
						|
   implemented. See RFC 3376, 7.3. Multicast Router Behavior. That's
 | 
						|
   because only Source-Specific Multicast is currently targeted.
 | 
						|
 | 
						|
C2 IGMPv3 support for forwarding any-source groups is not
 | 
						|
   implemented. Traffic for groups in mode EXCLUDE {empty} won't be
 | 
						|
   forwarded.  See RFC 3376, 6.3. Source-Specific Forwarding
 | 
						|
   Rules. That's because only Source-Specific Multicast is currently
 | 
						|
   targeted.
 | 
						|
 | 
						|
C3 Load Splitting of IP Multicast Traffic over ECMP is not supported.
 | 
						|
   See also: RFC 2991
 | 
						|
   Multipath Issues in Unicast and Multicast Next-Hop Selection
 | 
						|
   http://www.rfc-editor.org/rfc/rfc2991.txt
 | 
						|
 | 
						|
C4 IPSec AH authentication is not supported (RFC 4601:
 | 
						|
   6.3. Authentication Using IPsec).
 | 
						|
 | 
						|
C5 PIM support is limited to SSM mode as defined in section 4.8.2
 | 
						|
   (PIM-SSM-Only Routers) of RFC4601. That's because only
 | 
						|
   Source-Specific Multicast is currently targeted.
 | 
						|
 | 
						|
C6 PIM implementation currently does not support IPv6. PIM-SSM
 | 
						|
   requires IGMPv3 for IPv4 and MLDv2 for IPv6. MLDv2 is currently
 | 
						|
   missing. See also CAVEAT C9.
 | 
						|
 | 
						|
C7 FIXED (S,G) Assert state machine (RFC 4601, section 4.6.1) is not
 | 
						|
   implemented. See also TODO T6. See also CAVEAT C10.
 | 
						|
 | 
						|
C8 It is not possible to disable join suppression in order to
 | 
						|
   explicitly track the join membership of individual downstream
 | 
						|
   routers.
 | 
						|
   - IGMPv3 Explicit Membership Tracking is not supported.
 | 
						|
     When explicit tracking is enabled on a router, the router can
 | 
						|
     individually track the Internet Group Management Protocol (IGMP)
 | 
						|
     membership state of all reporting hosts. This feature allows the
 | 
						|
     router to achieve minimal leave latencies when hosts leave a
 | 
						|
     multicast group or channel. Example:
 | 
						|
       conf t
 | 
						|
        interface eth0
 | 
						|
         ip igmp explicit-tracking
 | 
						|
 | 
						|
C9 Only IPv4 Address Family (number=1) is supported in the PIM Address
 | 
						|
   Family field.
 | 
						|
   See also RFC 4601: 5.1. PIM Address Family
 | 
						|
   See also CAVEAT C6.
 | 
						|
   See also http://www.iana.org/assignments/address-family-numbers
 | 
						|
 | 
						|
C10 FIXED Assert metric depends on metric_preference and
 | 
						|
    route_metric. Those parameters should be fetched from RIB
 | 
						|
    (zebra). See also pim_rpf.c, pim_rpf_update().
 | 
						|
 | 
						|
C11 SSM Mapping is not supported
 | 
						|
 | 
						|
    SSM Mapping Overview:
 | 
						|
 | 
						|
    SSM mapping introduces a means for the last hop router to discover
 | 
						|
    sources sending to groups. When SSM mapping is configured, if a
 | 
						|
    router receives an IGMPv1 or IGMPv2 membership report for a
 | 
						|
    particular group G, the router translates this report into one or
 | 
						|
    more (S, G) channel memberships for the well-known sources
 | 
						|
    associated with this group.
 | 
						|
 | 
						|
    When the router receives an IGMPv1 or IGMPv2 membership report for
 | 
						|
    a group G, the router uses SSM mapping to determine one or more
 | 
						|
    source IP addresses for the group G. SSM mapping then translates
 | 
						|
    the membership report as an IGMPv3 report INCLUDE (G, [S1, G],
 | 
						|
    [S2, G]...[Sn, G] and continues as if it had received an IGMPv3
 | 
						|
    report. The router then sends out PIM joins toward (S1, G) to (Sn,
 | 
						|
    G) and continues to be joined to these groups as long as it
 | 
						|
    continues to receive the IGMPv1 or IGMPv2 membership reports and
 | 
						|
    as long as the SSM mapping for the group remains the same. SSM
 | 
						|
    mapping, thus, enables you to leverage SSM for video delivery to
 | 
						|
    legacy STBs that do not support IGMPv3 or for applications that do
 | 
						|
    not take advantage of the IGMPv3 host stack.
 | 
						|
 | 
						|
    SSM mapping enables the last hop router to determine the source
 | 
						|
    addresses either by a statically configured table on the router or
 | 
						|
    by consulting a DNS server. When the statically configured table
 | 
						|
    is changed, or when the DNS mapping changes, the router will leave
 | 
						|
    the current sources associated with the joined groups.
 | 
						|
 | 
						|
C12 FIXED MRIB for incongruent unicast/multicast topologies is not
 | 
						|
    supported.  RPF mechanism currently just looks up the information
 | 
						|
    in the unicast routing table.
 | 
						|
 | 
						|
    See also:
 | 
						|
    RFC5110: 2.2.3.  Issue: Overlapping Unicast/Multicast Topology
 | 
						|
    
 | 
						|
    Sometimes, multicast RPF mechanisms first look up the multicast
 | 
						|
    routing table, or M-RIB ("topology database") with a longest
 | 
						|
    prefix match algorithm, and if they find any entry (including a
 | 
						|
    default route), that is used; if no match is found, the unicast
 | 
						|
    routing table is used instead.
 | 
						|
 | 
						|
C13 Can't detect change of primary address before the actual change.
 | 
						|
    Possible approach is to craft old interface address into ip source
 | 
						|
    address by using raw ip socket.
 | 
						|
 | 
						|
    See also:
 | 
						|
 | 
						|
    RFC 4601: 4.3.1.  Sending Hello Messages
 | 
						|
 | 
						|
    Before an interface goes down or changes primary IP address, a
 | 
						|
    Hello message with a zero HoldTime should be sent immediately
 | 
						|
    (with the old IP address if the IP address changed).
 | 
						|
 | 
						|
    See also pim_sock_delete().
 | 
						|
 | 
						|
C14 FIXED Detection of interface primary address changes may fail when
 | 
						|
    there are multiple addresses.
 | 
						|
    See also TODO T32.
 | 
						|
 | 
						|
C15 Changes in interface secondary address list are not immediately
 | 
						|
    detected.
 | 
						|
    See also detect_secondary_address_change
 | 
						|
    See also TODO T31.
 | 
						|
 | 
						|
C16 AMT Draft (mboned-auto-multicast) is not supported.
 | 
						|
    AMT = Automatic IP Multicast Without Explicit Tunnels
 | 
						|
 | 
						|
    See also:
 | 
						|
 | 
						|
    Draft
 | 
						|
    http://tools.ietf.org/html/draft-ietf-mboned-auto-multicast
 | 
						|
    http://tools.ietf.org/html/draft-ietf-mboned-auto-multicast-09
 | 
						|
 | 
						|
    AMT gateway implementation for Linux
 | 
						|
    http://cs.utdallas.edu/amt/
 | 
						|
 | 
						|
    AMT for Streaming (IPTV) on Global IP Multicast by Greg Shepherd (Cisco)
 | 
						|
    http://nznog.miniconf.org/nznog-2008-sysadmin-miniconf-greg-shepherd-iptv.pdf
 | 
						|
 | 
						|
C17 SNMP / RFC 5060 (PIM MIB) is not supported.
 | 
						|
 | 
						|
C18 MFC never recovers from removal of static route to source
 | 
						|
 | 
						|
    # route add -host 1.2.3.4 gw 192.168.56.10
 | 
						|
    Before removal:
 | 
						|
    quagga-pimd-router# sh ip mroute
 | 
						|
    Source          Group           Proto Input iVifI Output oVifI TTL Uptime
 | 
						|
    1.2.3.4         232.1.2.3       I     eth1      3 eth0       2   1 00:00:36
 | 
						|
 | 
						|
    # route del -host 1.2.3.4 gw 192.168.56.10
 | 
						|
    After removal: sh ip mroute --> empty output
 | 
						|
 | 
						|
    # route add -host 1.2.3.4 gw 192.168.56.10
 | 
						|
    After the route is restored: sh ip mroute --> never recovers (empty output)
 | 
						|
 | 
						|
    At this point, "no ip pim ssm" on the upstream interface (eth0) crashes pimd:
 | 
						|
 | 
						|
    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
 | 
						|
    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
 | 
						|
    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)
 | 
						|
    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
 | 
						|
    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
 | 
						|
    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)
 | 
						|
    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
 | 
						|
 | 
						|
C19 Provision to prevent group mode clash
 | 
						|
 | 
						|
    Beware group mode clash. A host/application issuing IGMPv2
 | 
						|
    any-source joins for a group will disrupt SSM multicast for that
 | 
						|
    group.
 | 
						|
 | 
						|
    For instance, support for source-specific static igmp WILL FAIL if
 | 
						|
    there is host/application issuing IGMPv2 any-source joins for the
 | 
						|
    same group.
 | 
						|
 | 
						|
    The reason is the IGMPv2 any-source join forces qpimd to switch
 | 
						|
    the group mode to ASM (any-source multicast); however, qpimd is
 | 
						|
    unable to program ASM groups into the kernel; multicast won't
 | 
						|
    flow. There could be some provision to prevent such a behavior,
 | 
						|
    but currently there is none.
 | 
						|
 | 
						|
C20 Multicast traceroute module is based on:
 | 
						|
    draft-ietf-idmr-traceroute-ipm-07
 | 
						|
    It only implements, so far, weak traceroutes. The multicast routing
 | 
						|
    state of the router is not quieried but RPF path is followed along
 | 
						|
    PIM and IGMP enabled interfaces.
 | 
						|
 | 
						|
-x-
 |