]> git.proxmox.com Git - mirror_frr.git/commitdiff
isisd: Provide statistics about retransmitted LSPs
authorChristian Franke <chris@opensourcerouting.org>
Fri, 23 Nov 2018 20:32:18 +0000 (21:32 +0100)
committerRodny Molina <rmolina@linkedin.com>
Fri, 7 Dec 2018 19:45:14 +0000 (19:45 +0000)
Signed-off-by: Christian Franke <chris@opensourcerouting.org>
isisd/isis_tx_queue.c
isisd/isisd.c
isisd/isisd.h

index 46d1595f0632f7cf9ed642d0c56a43288f29688c..bf5817d0084e9630f1bf1e91a33f876c40ae9bec 100644 (file)
@@ -46,6 +46,7 @@ struct isis_tx_queue {
 struct isis_tx_queue_entry {
        struct isis_lsp *lsp;
        enum isis_tx_type type;
+       bool is_retry;
        struct thread *retry;
        struct isis_tx_queue *queue;
 };
@@ -124,6 +125,11 @@ static int tx_queue_send_event(struct thread *thread)
        e->retry = NULL;
        thread_add_timer(master, tx_queue_send_event, e, 5, &e->retry);
 
+       if (e->is_retry) {
+               queue->circuit->area->lsp_rxmt_count++;
+       } else {
+               e->is_retry = true;
+       }
        queue->send_event(queue->circuit, e->lsp, e->type);
        /* Don't access e here anymore, send_event might have destroyed it */
 
@@ -164,6 +170,8 @@ void _isis_tx_queue_add(struct isis_tx_queue *queue,
        if (e->retry)
                thread_cancel(e->retry);
        thread_add_event(master, tx_queue_send_event, e, 0, &e->retry);
+
+       e->is_retry = false;
 }
 
 void _isis_tx_queue_del(struct isis_tx_queue *queue, struct isis_lsp *lsp,
index bf0ea0493a92addf2241c80a4e49868e55953bb6..79145db0256f5f623d63b1620891490c9c9363ad 100644 (file)
@@ -1260,6 +1260,8 @@ DEFUN (show_isis_summary,
 
                vty_out(vty, "  TX counters per PDU type:\n");
                pdu_counter_print(vty, "    ", area->pdu_tx_counters);
+               vty_out(vty, "   LSP RXMT: %" PRIu64 "\n",
+                       area->lsp_rxmt_count);
                vty_out(vty, "  RX counters per PDU type:\n");
                pdu_counter_print(vty, "    ", area->pdu_rx_counters);
 
index 9ab06f26c28c6e3e6f3892296320c522461b753d..e781380c7a198e0a20675c6ee225e6c3aafa01ec 100644 (file)
@@ -171,6 +171,7 @@ struct isis_area {
 
        pdu_counter_t pdu_tx_counters;
        pdu_counter_t pdu_rx_counters;
+       uint64_t lsp_rxmt_count;
 
        QOBJ_FIELDS
 };