]> git.puffer.fish Git - matthieu/frr.git/commit
pimd: PIM BSM processing, grp2rp mapping timer expiry
authorsaravanank <saravanank@vmware.com>
Fri, 3 May 2019 14:26:37 +0000 (07:26 -0700)
committersaravanank <saravanank@vmware.com>
Wed, 15 May 2019 04:40:50 +0000 (21:40 -0700)
commitc295e391c8fa854ddee9b6403e2f927de438e511
tree7e022ad1c365f0583bd2c49c288823c570aba907
parent9b68e496042b7fc8bf2f27671fbfbc6f02541a17
pimd: PIM BSM processing, grp2rp mapping timer expiry

DS Overview:
Bootstrap RP table has grp node.
scope --> rp table --> grp node1 --> rp list --> rp nodes(g2rp timer)
             |
              -------> grp node2 --> rp list --> rp nodes(g2rp timer)

When grp2rp mapping expires, following has to be done.
1. delete the rp node from the active bs-rp list in the list
2. calculate the elapsed time for other rp nodes in the list
3. delete those nodes having more elapse time than their hold time
4. If the list is not empty and current rp src is not static
   rp change with new rp(head) & start g2rp timer with value holdtime - elapse
5. If the list is empty and current rp src for the grp is not static
   delete the rp
6. If the list is not empty and current rp is static, just start the
   g2rp timer with value holdtime - elapse
7. If list is empty and pending list is empty, delete grp node.

Note: g2rp timer will be run only on elected RP node for optimization.
      when it expires, other node are update with elapse time.
      This list is sorted insuch way that elected RP is the HEAD of list

Signed-off-by: Saravanan K <saravanank@vmware.com>
pimd/pim_bsm.c