]> git.puffer.fish Git - mirror/frr.git/commitdiff
pimd: Create some infrastructure code for RST(S,G) and KAT(S,G)
authorDonald Sharp <sharpd@cumulusnetworks.com>
Fri, 16 Oct 2015 14:01:47 +0000 (07:01 -0700)
committerDonald Sharp <sharpd@cumulusnetwroks.com>
Thu, 26 May 2016 00:38:34 +0000 (20:38 -0400)
These two timers have some default values.  Create the
default defines to be used and start setting up the data
structures for them.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
pimd/pim_upstream.c
pimd/pim_upstream.h
pimd/pimd.c
pimd/pimd.h

index 0cc3ff98e29fe0d4bfc1ee307a73d6ac099605b4..d22362fc074027a5a84f755e09727a59af06cbdc 100644 (file)
@@ -116,7 +116,7 @@ static int on_join_timer(struct thread *t)
 
   send_join(up);
 
-  up->t_join_timer = 0;
+  up->t_join_timer = NULL;
   join_timer_start(up);
 
   return 0;
@@ -373,10 +373,11 @@ static struct pim_upstream *pim_upstream_new(struct in_addr source_addr,
   up->group_addr                 = group_addr;
   up->flags                      = 0;
   up->ref_count                  = 1;
-  up->t_join_timer               = 0;
+  up->t_join_timer               = NULL;
+  up->t_ka_timer                 = NULL;
   up->join_state                 = 0;
   up->state_transition           = pim_time_monotonic_sec();
-  up->channel_oil                = 0;
+  up->channel_oil                = NULL;
   up->sptbit                     = PIM_UPSTREAM_SPTBIT_TRUE;
 
   up->rpf.source_nexthop.interface                = 0;
index d6b4ed360fee029d810d29d534294294d80a9ed6..6ffe1659545d4232c575b3217bd1fd859f9e6464 100644 (file)
@@ -99,6 +99,14 @@ struct pim_upstream {
   struct pim_rpf           rpf;
 
   struct thread           *t_join_timer;
+
+  /*
+   * KAT(S,G)
+   */
+  struct thread           *t_ka_timer;
+#define PIM_KEEPALIVE_PERIOD  (210)
+#define PIM_RP_KEEPALIVE_PERIOD ( 3 * qpim_register_suppress_time + qpim_register_probe_time )
+
   int64_t                  state_transition; /* Record current state uptime */
 };
 
index 8de469e7fdade4baf0f2a7159a04fd2df8feb98b..8ed110dc5cbb60000a831efd401a8e225d126e3f 100644 (file)
@@ -71,6 +71,9 @@ int64_t                   qpim_mroute_del_last = 0;
 struct list              *qpim_static_route_list = 0;
 struct in_addr            qpim_rp;
 
+int32_t qpim_register_suppress_time = PIM_REGISTER_SUPPRESSION_TIME_DEFAULT;
+int32_t qpim_register_probe_time = PIM_REGISTER_PROBE_TIME_DEFAULT;
+
 static void pim_free()
 {
   pim_ssmpingd_destroy();
index b763b2760db6185b2886c30b531450d3860786c4..239c61843840d17302337cfbddd9821602325753 100644 (file)
@@ -108,6 +108,15 @@ extern struct in_addr     qpim_rp;
 #define PIM_MROUTE_IS_ENABLED  (qpim_mroute_socket_fd >= 0)
 #define PIM_MROUTE_IS_DISABLED (qpim_mroute_socket_fd < 0)
 
+/*
+ * Register-Stop Timer (RST(S,G))
+ * Default values
+ */
+extern int32_t qpim_register_suppress_time;
+extern int32_t qpim_register_probe_time;
+#define PIM_REGISTER_SUPPRESSION_TIME_DEFAULT      (60)
+#define PIM_REGISTER_PROBE_TIME_DEFAULT            (5)
+
 #define PIM_DEBUG_PIM_EVENTS          (qpim_debugs & PIM_MASK_PIM_EVENTS)
 #define PIM_DEBUG_PIM_PACKETS         (qpim_debugs & PIM_MASK_PIM_PACKETS)
 #define PIM_DEBUG_PIM_PACKETDUMP_SEND (qpim_debugs & PIM_MASK_PIM_PACKETDUMP_SEND)