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-04.txt < prev    next >
Text File  |  1996-09-16  |  27KB  |  727 lines

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