home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / drafts / draft_ietf_i / draft-ietf-idmr-pim-dm-spec-05.txt < prev    next >
Text File  |  1997-05-28  |  27KB  |  717 lines

  1.  
  2. Network Working Group                             Steven Deering (CISCO)
  3. Internet Draft                                      Deborah Estrin (USC)
  4.                                                   Dino Farinacci (CISCO)
  5.                                                       Van Jacobson (LBL)
  6.                                                        Ahmed Helmy (USC)
  7.                                                       Liming Wei (CISCO)
  8.  
  9. draft-ietf-idmr-pim-dm-05.txt                               May 21, 1997
  10.                             Expires Nov 21, 1997
  11.  
  12.  
  13.  
  14.    Protocol Independent Multicast Version 2, Dense Mode Specification
  15.  
  16.  
  17.  
  18.    Status of This Memo
  19.  
  20.    This document is an Internet  Draft.   Internet  Drafts  are  working
  21.    documents  of  the Internet Engineering Task Force (IETF), its Areas,
  22.    and its Working Groups. (Note that other groups may  also  distribute
  23.    working documents as Internet Drafts).
  24.  
  25.    Internet Drafts are draft  documents  valid  for  a  maximum  of  six
  26.    months.  Internet  Drafts  may  be updated, replaced, or obsoleted by
  27.    other documents at any time.  It is not appropriate to  use  Internet
  28.    Drafts  as  reference  material  or  to  cite  them  other  than as a
  29.    ``working'' draft'' or ``work in progress.''
  30.  
  31.    Please check the I-D abstract  listing  contained  in  each  Internet
  32.    Draft  directory  to  learn  the  current status of this or any other
  33.    Internet Draft.
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53. Deering,Estrin,Farinacci,Jacobson,Helmy,Wei                   [Page 1]
  54.  
  55.  
  56.  
  57.  
  58.  
  59. Internet Draft   PIM Version 2 Dense Mode Specification         May 1997
  60.  
  61.  
  62. 1 Introduction
  63.  
  64.    This  specification  defines  a  multicast  routing   algorithm   for
  65.    multicast groups that are densely distributed across an internet. The
  66.    protocol is unicast routing protocol independent. It is based on  the
  67.    PIM  sparse-mode  [PIMSM]  and  employs the same packet formats. This
  68.    protocol is called dense-mode PIM. The foundation of this design  was
  69.    largely built on [Deering91].
  70.  
  71.  
  72. 2 PIM-DM Protocol Overview
  73.  
  74.    Dense-mode PIM uses a technique in  which  a  multicast  datagram  is
  75.    forwarded  if  the  receiving  interface  is  the one used to forward
  76.    unicast datagrams to  the  source  of  the  datagram.  The  multicast
  77.    datagram  is  then forwarded out all other interfaces. Dense-mode PIM
  78.    builds source-based acyclic trees.
  79.  
  80.    Dense-mode PIM assumes that all downstream systems  want  to  receive
  81.    multicast datagrams. For densely populated groups this is optimal. If
  82.    some areas of the network do not have group members,  dense-mode  PIM
  83.    will  prune  branches  of  the  source-based tree. When group members
  84.    leave the group, branches will also be pruned.
  85.  
  86.    Unlike DVMRP [DVMRP] packets are forwarded on all outgoing interfaces
  87.    (except  the  incoming)  until  pruning  and truncation occurs. DVMRP
  88.    makes use  of  parent-child  information  to  reduce  the  number  of
  89.    outgoing  interfaces  used  before  pruning.  In both protocols, once
  90.    truncation occurs pruning state is maintained and  packets  are  only
  91.    forwarded  onto  outgoing  interfaces  that  in fact reach downstream
  92.    members.
  93.  
  94.    We chose to accept additional overhead in favor of reduced dependency
  95.    on  the  unicast  routing  protocol.  An  assert mechanism is used to
  96.    resolve multiple forwarders.
  97.  
  98.    Dense-mode PIM differs from sparse-mode PIM in two essential  points:
  99.    1)  there  are no periodic joins transmitted, only explicit triggered
  100.    grafts/prunes, and 2) there is no Rendezvous Point (RP).
  101.  
  102.  
  103. 3 Background
  104.  
  105.    Reverse Path Broadcasting (RPB) improved on RPF because the amount of
  106.    duplicate packets is reduced. With RPF, the number of duplicates sent
  107.    on a link can be as high as the number of routers directly  connected
  108.    to that link.
  109.  
  110.  
  111.  
  112.  
  113. Deering,Estrin,Farinacci,Jacobson,Helmy,Wei                   [Page 2]
  114.  
  115.  
  116.  
  117.  
  118.  
  119. Internet Draft   PIM Version 2 Dense Mode Specification         May 1997
  120.  
  121.  
  122.    Reverse Path Multicasting (RPM)  improves  on  RPF  and  RPB  because
  123.    pruning  information  is  propagated upstream. Leaf routers must know
  124.    that they are leaf routers so that in response to no IGMP reports for
  125.    a group, those leaf routers know to initiate the prune process.
  126.  
  127.    In DVMRP there are routing protocol dependencies for  a)  building  a
  128.    parent-child database so that duplicate packets can be eliminated, b)
  129.    eliminating duplicate packets on multi-access LANs,  and  c)  sending
  130.    "split  horizon  with  poison  reverse"  information to detect that a
  131.    router is not a leaf router (if a router does not receive any  poison
  132.    reverse  messages  from other routers on a multi-access LAN then that
  133.    router acts as a leaf router for that LAN and knows to prune if there
  134.    are not IGMP reports on that LAN for a group G).
  135.  
  136.    Dense-mode PIM will accept some duplicate packets in order  to  avoid
  137.    being  routing  protocol  dependent and avoid building a child parent
  138.    database.
  139.  
  140.  
  141.    The three basic mechanisms dense-mode PIM  uses  to  build  multicast
  142.    forwarding trees are: prune, graft and leaf-network detection.
  143.  
  144. 4 Protocol Scenario
  145.  
  146.    A source host sends a multicast datagram to group G. If  a  receiving
  147.    router  has no forwarding state for the source sending to group G, it
  148.    creates  an  (S,G)  entry.  The  incoming  interface  for  (S,G)   is
  149.    determined  by  doing an RPF lookup in the unicast routing table. The
  150.    (S,G)  outgoing  interface  list   contains   dense-mode   configured
  151.    interfaces that have PIM routers present or host members for group G.
  152.  
  153.    A PIM-Prune message is triggered when an (S,G) entry is built with an
  154.    empty  outgoing  interface  list.  This  type  of  entry  is called a
  155.    negative cache entry. This can occur when a leaf router has no  local
  156.    members for group G or a prune message was received from a downstream
  157.    router which causes the outgoing interface list to become NULL.  PIM-
  158.    Prune  messages  are  never  sent  on  LANs in response to a received
  159.    multicast packet that is associated with a negative cache entry.
  160.  
  161.    PIM-Prune messages received on a point to point link are not  delayed
  162.    before  processing  as they are in the LAN procedure. If the prune is
  163.    received on an interface that is in the outgoing interface  list,  it
  164.    is deleted immediately. Otherwise the prune is ignored.
  165.  
  166.    When a multicast datagram is received on the incorrect LAN  interface
  167.    (i.e. not the RPF interface), the packet is silently discarded if the
  168.    router does not have any state about the destination group. If it  is
  169.    received on an incorrect point-to-point interface, Prunes may be sent
  170.  
  171.  
  172.  
  173. Deering,Estrin,Farinacci,Jacobson,Helmy,Wei                   [Page 3]
  174.  
  175.  
  176.  
  177.  
  178.  
  179. Internet Draft   PIM Version 2 Dense Mode Specification         May 1997
  180.  
  181.  
  182.    in a rate-limited fashion. Prunes may also be rate-limited on  point-
  183.    to-point  interfaces  when  a  multicast  datagram  is received for a
  184.    negative cache entry. On multi-access LANs, if the packet arrives  on
  185.    an  outgoing  interface  in  forwarding  state, an assert is sent, as
  186.    explained in section 5.5.
  187.  
  188. 5 Protocol Description
  189.  
  190. 5.1 Leaf network detection
  191.  
  192.    In DVMRP poison reverse information tells a router that other routers
  193.    on  the  shared  LAN  use  the  LAN as their incoming interface. As a
  194.    result, even if the first hop router for that LAN does not  hear  any
  195.    IGMP  Reports for a group, the first hop router will know to continue
  196.    to forward multicast data packets to that group, and NOT  to  send  a
  197.    prune message to its upstream neighbor.
  198.  
  199.    Since dense-mode PIM does not rely on any  unicast  routing  protocol
  200.    mechanisms,  this  problem  is  solved  by  using prune messages sent
  201.    upstream on a LAN. If a downstream router on a LAN determines that it
  202.    has  no  more downstream members for a group, then it can multicast a
  203.    prune message on the LAN.
  204.  
  205.    A leaf router detects that there are no members downstream when it is
  206.    the  only  router  on  a  network  and  there are no IGMP Host-Report
  207.    messages received from  hosts.  It  determines  there  are  no  other
  208.    routers by not receiving PIM PIM-Hello messages.
  209.  
  210.    A router that used to have  downstream  routers  may  become  a  leaf
  211.    router if all its neighbors went away. A PIM router should keep track
  212.    of its neighbors that have sent  PIM-Hello  messages,  and  time  out
  213.    those  that  are no longer doing so. When a PIM neighbor times out, a
  214.    router should check if it is the last PIM neighbor on  that  network.
  215.    When  the  last  PIM  neighbor  on an interface goes away, the router
  216.    should delete that interface from the outgoing interface lists of all
  217.    groups, if they do not have members attached on that interface.
  218.  
  219. 5.2 Pruning on a Multi-access LAN
  220.  
  221.    A router sends a prune upstream when a multicast routing entry  (S,G)
  222.    is  created  with  an  empty  outgoing  interface  list,  or when its
  223.    outgoing interface list  becomes  empty   [*]  Prune  information  is
  224.    flushed periodically. This (or a loss of state) causes the packets to
  225.    be sent in RPM mode again which in turn triggers prune messages.
  226. _________________________
  227. [*] I.e. an outgoing interface list with all interfaces in pruned state.
  228.  
  229.  
  230.  
  231.  
  232. Deering,Estrin,Farinacci,Jacobson,Helmy,Wei                   [Page 4]
  233.  
  234.  
  235.  
  236.  
  237.  
  238. Internet Draft   PIM Version 2 Dense Mode Specification         May 1997
  239.  
  240.  
  241.    When a prune message is sent on an upstream  LAN,  it  is  data  link
  242.    multicast  and  IP  addressed  to  the  all PIM routers group address
  243.    224.0.0.13. The router to process the  prune  will  be  indicated  by
  244.    inserting  its  address  in  the "Address" field of the message. This
  245.    address is the next-hop address obtained by looking up the source  in
  246.    the  unicast  routing  table. This lookup is often referred to as the
  247.    ``RPF lookup''. When the prune message is sent, the expected upstream
  248.    router  will schedule a deletion request of the LAN from its outgoing
  249.    interfaces for the (S,G) entry from the  prune  list.  The  suggested
  250.    delay time before deletion should be greater than 3 seconds.
  251.  
  252.    Other routers on the LAN will hear the prune message and respond with
  253.    a  join  if  they  still expect multicast datagrams from the expected
  254.    upstream router. The PIM-Join message is data link multicast  and  IP
  255.    addressed to the all PIM routers group address 224.0.0.13. The router
  256.    to process the join will be indicated by inserting its address in the
  257.    "Address"  field  of the message. The address is determined by an RPF
  258.    lookup from the unicast  routing  table.  When  the  expected  router
  259.    receives the join message, it will cancel the deletion request.
  260.  
  261.    Routers will randomly generate a join message delay timer. If a  join
  262.    is  heard  from another router before a router sends its own, it will
  263.    cancel sending its own join. This will reduce traffic on the LAN. The
  264.    suggested join delay timer should be from 1 to 3 seconds.
  265.  
  266.    If the  expected  upstream  router  does  not  receive  any  PIM-Join
  267.    messages  before the scheduled time for the deletion request expires,
  268.    it deletes the  outgoing  LAN  interface  from  the  (S,G)  multicast
  269.    forwarding entry.
  270.  
  271.    However, if the join message is lost, the  deletion  will  occur  and
  272.    there  will  be no data delivery for the amount of time the interface
  273.    remains in Prune state. To reduce the probability of this  occurence,
  274.    a router that has scheduled to prune the interface off is required to
  275.    immediately send a prune onto the interface. This gives other routers
  276.    another chance to hear the prune, and to respond with a join.
  277.  
  278.    Note the special case for equal-cost paths. When an  upstream  router
  279.    is chosen by an RPF lookup there may be equal-cost paths to reach the
  280.    source. The higher IP addressed  system  is  always  chosen.  If  the
  281.    unicast  routing  protocol  does  not  store all available equal-cost
  282.    paths in the routing table,  the  "Address"  field  may  contain  the
  283.    address  of  the  wrong upstream router. To avoid this situation, the
  284.    "Address" field may optionally be set to 0.0.0.0 which means that all
  285.    upstream routers (the ones that have the LAN as an outgoing interface
  286.    for the (S,G) entry) may process the packet.
  287.  
  288.  
  289.  
  290.  
  291.  
  292. Deering,Estrin,Farinacci,Jacobson,Helmy,Wei                   [Page 5]
  293.  
  294.  
  295.  
  296.  
  297.  
  298. Internet Draft   PIM Version 2 Dense Mode Specification         May 1997
  299.  
  300.  
  301. 5.3 New members joining an existing group
  302.  
  303.    If a router is directly connected to a host that wants  to  become  a
  304.    member of a group, the router may optionally send a PIM-Graft message
  305.    toward known sources. This allows join latency to  be  reduced  below
  306.    that  indicated  by  the relatively large timeout value suggested for
  307.    prune information.
  308.  
  309.    If a receiving router has state for group G, it adds the interface on
  310.    which  the  IGMP  Report  or  PIM-Graft  was  received  for all known
  311.    (S,G)'s. If the (S,G) entry was a negative cache  entry,  the  router
  312.    sends a PIM-Graft message upstream toward S. Any router receiving the
  313.    PIM-Graft message, will use the received  interface  as  an  outgoing
  314.    interface for the existing (S,G) entry.
  315.  
  316.    If routers have no group state, they do nothing since dense-mode  PIM
  317.    will  deliver  a  multicast  datagram to all interfaces when creating
  318.    state for a group.
  319.  
  320.    Any router receiving the PIM-Graft message,  will  use  the  received
  321.    interface  as  an  incoming interface for all (S,G) entries, and will
  322.    not add the interface to the outgoing interface lists.
  323.  
  324.    PIM-Graft message is the  only  PIM  message  that  uses  a  positive
  325.    acknowledgment  strategy.  Senders of PIM-Graft messages unicast them
  326.    to their upstream RPF neighbors. The neighbor  processes  each  (S,G)
  327.    and  immediately  acknowledges  each (S,G) in a PIM-GraftAck message.
  328.    This is relatively easy, since the receiver simply  changes  the  PIM
  329.    message type from Graft to Graft-Ack and unicasts the original packet
  330.    back to the source. The sender periodically retransmits the PIM-Graft
  331.    message  for  any (S,G) that has not been acknowledged. Note that the
  332.    sender need not keep a retransmission list for  each  neighbor  since
  333.    PIM-Grafts  are  only  sent to the RPF neighbor. Only the (S,G) entry
  334.    needs to be tagged for retransmission.
  335.  
  336.  
  337. 5.4 Designated Router election
  338.  
  339.    The dense-mode PIM designated router  (DR)  election  uses  the  same
  340.    procedure  as  in  sparse-mode PIM. A DR is necessary for each multi-
  341.    access LAN that runs IGMP version 1, to allow a single router to send
  342.    IGMP Host-Query messages to solicit host group membership.
  343.  
  344.    Each PIM router connected to a  multi-access  LAN  should  periodicly
  345.    transmit  PIM-Hello messages onto the LAN. The period is specified as
  346.    [Hello-Timer] in the sparse  mode  specification  (30  seconds).  The
  347.    highest  addressed  router becomes the DR. The discovered PIM routers
  348.    should be timed out after 105 seconds (the  [Neighbor-Timer]  in  the
  349.  
  350.  
  351.  
  352. Deering,Estrin,Farinacci,Jacobson,Helmy,Wei                   [Page 6]
  353.  
  354.  
  355.  
  356.  
  357.  
  358. Internet Draft   PIM Version 2 Dense Mode Specification         May 1997
  359.  
  360.  
  361.    PIM-SM specification]). If the DR goes down, a new DR is elected.
  362.  
  363.    DR election is only necessary on multi-access networks.
  364.  
  365.  
  366. 5.5 Parallel paths to a source
  367.  
  368.    Two or more routers may receive the  same multicast  datagram  that
  369.    was replicated upstream. In particular, if  two routers have equal
  370.    cost paths to a source and are connected on a common   multi-access
  371.    network,   duplicate  datagrams  will  travel  downstream onto the
  372.    LAN. Dense-mode PIM will detect such a  situation and will not let it
  373.    persist.
  374.  
  375.    If a router receives a multicast datagram on a multi-access LAN  from
  376.    a  source  whose corresponding (S,G) outgoing interface list includes
  377.    the received interface, the packet must be a duplicate. In this  case
  378.    a  single  forwarder  must  be  elected.  Using  PIM  Assert messages
  379.    addressed to 224.0.0.13 on the LAN, upstream routers can decide which
  380.    one  becomes  the forwarder. Downstream routers listen to the Asserts
  381.    so they know which one was elected (typically this is the same as the
  382.    downstream  router's  RPF  neighbor  but there are circumstances when
  383.    using different unicast protocols where this might not be the case).
  384.  
  385.    The upstream router elected is the one that has the shortest distance
  386.    to  the  source.  Therefore, when a packet is received on an outgoing
  387.    interface a router will send an Assert packet on the  LAN  indicating
  388.    what  metric  it  uses  to  reach  the source of the data packet. The
  389.    router with the smallest numerical metric will become the  forwarder.
  390.    All  other  upstream  routers  will  delete  the interface from their
  391.    outgoing  interface  list.  The  downstream  routers  also   do   the
  392.    comparison  in case the forwarder is different than the RPF neighbor.
  393.    This is important so downstream routers  send  subsequent  Prunes  or
  394.    Grafts to the correct neighbor.
  395.  
  396.    Associated with the metric is a  metric  preference  value.  This  is
  397.    provided  to  deal  with  the case where the upstream routers may run
  398.    different unicast routing protocols. The numerically  smaller  metric
  399.    preference  is  always  preferred.  The  metric  preference should be
  400.    treated as the  high-order  part  of  an  Assert  metric  comparison.
  401.    Therefore,  a  metric value can be compared with another metric value
  402.    provided both metric preferences are the same.  A  metric  preference
  403.    can  be  assigned  per  unicast  routing  protocol  and  needs  to be
  404.    consistent for all PIM routers on the LAN.
  405.  
  406.    The following Assert rules are provided:
  407.  
  408.    Multicast packet received on outgoing interface:
  409.  
  410.  
  411.  
  412.  
  413.  
  414. Deering,Estrin,Farinacci,Jacobson,Helmy,Wei                   [Page 7]
  415.  
  416.  
  417.  
  418.  
  419.  
  420. Internet Draft   PIM Version 2 Dense Mode Specification         May 1997
  421.  
  422.  
  423.         1    Do unicast routing table lookup on source IP  address  from
  424.              data packet.
  425.  
  426.         2    Send Assert on interface for source IP  address  from  data
  427.              packet,  include  metric preference of routing protocol and
  428.              metric from routing table lookup.
  429.  
  430.  
  431.         3    If route is not found, Use metric preference of  0x7fffffff
  432.              and metric 0xffffffff.
  433.  
  434.  
  435.  
  436.         Asserts received on outgoing interface:
  437.  
  438.  
  439.         1    Compare metric received in Assert with the  one  you  would
  440.              have advertised in an Assert. If the value in the Assert is
  441.              less than your value, prune the interface. If the value  is
  442.              the  same,  compare  IP  addresses, if your address is less
  443.              than the Assert sender, prune the interface.
  444.  
  445.         2    If you  have  won  the  election  and  there  are  directly
  446.              connected  members  on  the LAN, keep the interface in your
  447.              outgoing interface list. You are the forwarder for the LAN.
  448.  
  449.         3    If you have won the election  but  there  are  no  directly
  450.              connected  members  on  the  LAN,  schedule  to  prune  the
  451.              interface. The LAN might be a stub LAN with no members (and
  452.              no   downstream   routers).  If  no  subsequent  Joins  are
  453.              received, delete the interface from the outgoing  interface
  454.              list.   Otherwise  keep  the  interface  in  your  outgoing
  455.              interface. You are the forwarder for the LAN.
  456.  
  457.  
  458.  
  459.         Asserts received on incoming interface:
  460.  
  461.  
  462.         1    Downstream routers will select the upstream router with the
  463.              smallest  metric  as their RPF neighbor. If two metrics are
  464.              the same, the highest IP address is  chosen  to  break  the
  465.              tie.
  466.  
  467.         2    If the downstream routers  have  downstream  members,  they
  468.              must  schedule a join to inform the upstream router packets
  469.              should be  forwarded  on  the  LAN.  This  will  cause  the
  470.              upstream  forwarder  to  cancel  its delayed pruning of the
  471.  
  472.  
  473.  
  474. Deering,Estrin,Farinacci,Jacobson,Helmy,Wei                   [Page 8]
  475.  
  476.  
  477.  
  478.  
  479.  
  480. Internet Draft   PIM Version 2 Dense Mode Specification         May 1997
  481.  
  482.  
  483.              interface.
  484.  
  485.  
  486.  
  487.      5.6 Timing out multicast forwarding entries
  488.  
  489.         Each (S,G) entry has timers associated with it. During this time
  490.         source-based tree state is kept in the network.
  491.  
  492.         There should be multiple  timers  set.  One  for  the  multicast
  493.         routing  entry  itself  and one for each pruned interface in the
  494.         outgoing  interface  list.  The  outgoing  interface  stays   in
  495.         forwarding  state in the list as long as there is a group member
  496.         connected, or there is a downstream PIM neighbor  that  has  not
  497.         sent  a  prune to it. The interface is deleted from the outgoing
  498.         interface list if it is on  a  leaf  network  and  there  is  no
  499.         connected  member.  The  interface  timer for a pruned interface
  500.         should be started with the holdtime in the prune  message  (also
  501.         referred to as the prune timer).
  502.  
  503.         When a (S,G) entry is in forwarding state, its expiration  timer
  504.         is  set  to 3 minutes by default. This timer is restarted when a
  505.         data packet is being forwarded. The (S,G) entry  is  deleted  if
  506.         this timer expires.
  507.  
  508.  
  509.         Once all interfaces in the outgoing interface list  are  pruned,
  510.         the  (S,G)'s expiration timer should be set to the maximum prune
  511.         timer among all its outgoing interfaces. During  this  time  the
  512.         entry  is  known as a negative cache entry. Once the (S,G) entry
  513.         times out, it can be recreated when the next multicast packet or
  514.         join arrives.
  515.  
  516.         If  the  prune  timers  on  different  outgoing  interfaces  are
  517.         different,  the  pruned  interface  with  the shortest remaining
  518.         timer may expire first and turn the negative  cache  entry  into
  519.         forwarding state. When this happens, a graft should be triggered
  520.         upstream.
  521.  
  522.  
  523.  
  524.  
  525.  
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.  
  533.  
  534. Deering,Estrin,Farinacci,Jacobson,Helmy,Wei                   [Page 9]
  535.  
  536.  
  537.  
  538.  
  539.  
  540. Internet Draft   PIM Version 2 Dense Mode Specification         May 1997
  541.  
  542.  
  543.      6 Packet Formats
  544.  
  545.         This section describes the details of the packet formats for PIM
  546.         control messages.
  547.  
  548.         All PIM control messages have protocol number 103.
  549.  
  550.         Basically, PIM messages are either unicast (e.g.  Registers  and
  551.         Register-Stop),  or  multicast  hop-by-hop  to `ALL-PIM-ROUTERS'
  552.         group `224.0.0.13' (e.g. Join/Prune, Asserts, etc.).
  553.  
  554.  
  555.      0                   1                   2                   3
  556.      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  557.     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  558.     |PIM Ver| Type  |   reserved    |           Checksum            |
  559.     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  560.  
  561.  
  562.  
  563.  
  564.  
  565.         PIM Ver
  566.               PIM Version number is 2.
  567.  
  568.  
  569.         Type  Types for specific PIM messages.  PIM Types are:
  570.  
  571.  
  572.  
  573.            0 = Hello
  574.            1 = Register
  575.            2 = Register-Stop
  576.            3 = Join/Prune
  577.            4 = Bootstrap
  578.            5 = Assert
  579.            6 = Graft (used in PIM-DM only)
  580.            7 = Graft-Ack (used in PIM-DM only)
  581.            8 = Candidate-RP-Advertisement
  582.  
  583.  
  584.  
  585.         Reserved
  586.               Set to zero. Ignored upon receipt.
  587.  
  588.  
  589.         Checksum
  590.               The checksum is the 16-bit one's complement of  the  one's
  591.  
  592.  
  593.  
  594. Deering,Estrin,Farinacci,Jacobson,Helmy,Wei                  [Page 10]
  595.  
  596.  
  597.  
  598.  
  599.  
  600. Internet Draft   PIM Version 2 Dense Mode Specification         May 1997
  601.  
  602.  
  603.              complement sum of the entire PIM message, For computing the
  604.              checksum, the checksum field is zeroed.
  605.  
  606.  
  607.  
  608.         { For all the packet format details, refer to  the  PIM  sparse-
  609.         mode specification.}
  610.  
  611.      6.1 PIM-Hello Message
  612.  
  613.         It is sent periodically by PIM routers on all interfaces.
  614.  
  615.      6.2 PIM-SM-Register Message
  616.  
  617.         Used in sparse-mode. Refer to PIM sparse-mode specification.
  618.  
  619.      6.3 PIM-SM-Register-Stop Message
  620.  
  621.         Used in sparse-mode. Refer to PIM sparse-mode specification.
  622.  
  623.      6.4 Join/Prune Message
  624.  
  625.         It is sent by routers toward upstream sources.  A  join  creates
  626.         forwarding state and a prune destroys forwarding state. Refer to
  627.         PIM sparse-mode specification.
  628.  
  629.      6.5 PIM-SM-Bootstrap Message
  630.  
  631.         Used in sparse-mode. Refer to PIM sparse-mode specification.
  632.  
  633.      6.6 PIM-Assert Message
  634.  
  635.         The PIM-Assert message is sent when a multicast data  packet  is
  636.         received  on an outgoing interface corresponding to the (S,G) or
  637.         (*,G) associated with the source. This message is used  in  both
  638.         dense-mode  and sparse-mode PIM. For packet format, refer to PIM
  639.         sparse-mode specification.
  640.  
  641.  
  642.      6.7 PIM-Graft Message
  643.  
  644.         This message is sent by a downstream  router  to  a  neighboring
  645.         upstream  router  to  reinstate  a previously pruned branch of a
  646.         source tree. This is done for dense-mode groups only. The format
  647.         is  the  same  as a Join/Prune message, except that the value in
  648.         the type field is 6.
  649.  
  650.  
  651.  
  652.  
  653.  
  654. Deering,Estrin,Farinacci,Jacobson,Helmy,Wei                  [Page 11]
  655.  
  656.  
  657.  
  658.  
  659.  
  660. Internet Draft   PIM Version 2 Dense Mode Specification         May 1997
  661.  
  662.  
  663.      6.8 PIM-Graft-Ack Message
  664.  
  665.         Sent in response to a received Graft message. The  Graft-Ack  is
  666.         only  sent  if  the interface in which the Graft was received is
  667.         not the incoming interface for the  respective  (S,G).  This  is
  668.         done  for  dense-mode  groups  only.  The  format is the same as
  669.         Join/Prune message, except that the value of  the  message  type
  670.         field is 7.
  671.  
  672.      6.9 Candidate-RP-Advertisement
  673.  
  674.         Used in sparse-mode. Refer to PIM sparse-mode specification.
  675.  
  676.      7 Acknowledgement
  677.  
  678.         Thanks to Manoj Leelanivas, Dave Meyer  and  Sangeeta  Mukherjee
  679.         for their helpful comments.
  680.  
  681.      8 References
  682.  
  683.         [Deering91]  S.E.  Deering.  Multicast  Routing  in  a  Datagram
  684.         Internetwork. PhD thesis, Electrical Engineering Dept., Stanford
  685.         University, December 1991.
  686.  
  687.         [DVMRP] RFC 1075, Distance Vector  Multicast  Routing  Protocol.
  688.         Waitzman, D., Partridge, C., Deering, S.E, November 1988
  689.  
  690.         [PIMSM] Protocol  Independent  Multicast  Sparse-Mode  (PIM-SM):
  691.         Protocol  Specification. S. Deering, D. Estrin, D. Farinacci, V.
  692.         Jacobson, G. Liu, L. Wei, P. Sharma, A. Helmy, March 1997
  693.  
  694.         [PIMARCH] An Architecture for Wide-Area  Multicast  Routing,  S.
  695.         Deering,  D.  Estrin,  D. Farinacci, V. Jacobson, G. Liu,L. Wei,
  696.         USC Technical Report, available from authors, Nov 1996.
  697.  
  698.         [RFC1112] Host Extensions for IP Multicasting,  Network  Working
  699.         Group, RFC 1112, S. Deering, August 1989
  700.  
  701.  
  702.  
  703.  
  704.  
  705.  
  706.  
  707.  
  708.  
  709.  
  710.  
  711.  
  712.  
  713.  
  714. Deering,Estrin,Farinacci,Jacobson,Helmy,Wei                  [Page 12]
  715.  
  716.  
  717.