vty_out(vty,
"IS-IS Adjacency related packets debugging is %s\n",
onoffs);
- if (flags & DEBUG_CHECKSUM_ERRORS)
- vty_out(vty, "IS-IS checksum errors debugging is %s\n", onoffs);
- if (flags & DEBUG_LOCAL_UPDATES)
- vty_out(vty, "IS-IS local updates debugging is %s\n", onoffs);
- if (flags & DEBUG_PROTOCOL_ERRORS)
- vty_out(vty, "IS-IS protocol errors debugging is %s\n", onoffs);
if (flags & DEBUG_SNP_PACKETS)
vty_out(vty, "IS-IS CSNP/PSNP packets debugging is %s\n",
onoffs);
if (flags & DEBUG_SPF_EVENTS)
vty_out(vty, "IS-IS SPF events debugging is %s\n", onoffs);
- if (flags & DEBUG_SPF_STATS)
- vty_out(vty,
- "IS-IS SPF Timing and Statistics Data debugging is %s\n",
- onoffs);
- if (flags & DEBUG_SPF_TRIGGERS)
- vty_out(vty, "IS-IS SPF triggering events debugging is %s\n",
- onoffs);
if (flags & DEBUG_UPDATE_PACKETS)
vty_out(vty, "IS-IS Update related packet debugging is %s\n",
onoffs);
vty_out(vty, "debug " PROTO_NAME " adj-packets\n");
write++;
}
- if (flags & DEBUG_CHECKSUM_ERRORS) {
- vty_out(vty, "debug " PROTO_NAME " checksum-errors\n");
- write++;
- }
- if (flags & DEBUG_LOCAL_UPDATES) {
- vty_out(vty, "debug " PROTO_NAME " local-updates\n");
- write++;
- }
- if (flags & DEBUG_PROTOCOL_ERRORS) {
- vty_out(vty, "debug " PROTO_NAME " protocol-errors\n");
- write++;
- }
if (flags & DEBUG_SNP_PACKETS) {
vty_out(vty, "debug " PROTO_NAME " snp-packets\n");
write++;
vty_out(vty, "debug " PROTO_NAME " spf-events\n");
write++;
}
- if (flags & DEBUG_SPF_STATS) {
- vty_out(vty, "debug " PROTO_NAME " spf-statistics\n");
- write++;
- }
- if (flags & DEBUG_SPF_TRIGGERS) {
- vty_out(vty, "debug " PROTO_NAME " spf-triggers\n");
- write++;
- }
if (flags & DEBUG_UPDATE_PACKETS) {
vty_out(vty, "debug " PROTO_NAME " update-packets\n");
write++;
return CMD_SUCCESS;
}
-DEFUN (debug_isis_csum,
- debug_isis_csum_cmd,
- "debug " PROTO_NAME " checksum-errors",
- DEBUG_STR
- PROTO_HELP
- "IS-IS LSP checksum errors\n")
-{
- isis->debugs |= DEBUG_CHECKSUM_ERRORS;
- print_debug(vty, DEBUG_CHECKSUM_ERRORS, 1);
-
- return CMD_SUCCESS;
-}
-
-DEFUN (no_debug_isis_csum,
- no_debug_isis_csum_cmd,
- "no debug " PROTO_NAME " checksum-errors",
- NO_STR
- UNDEBUG_STR
- PROTO_HELP
- "IS-IS LSP checksum errors\n")
-{
- isis->debugs &= ~DEBUG_CHECKSUM_ERRORS;
- print_debug(vty, DEBUG_CHECKSUM_ERRORS, 0);
-
- return CMD_SUCCESS;
-}
-
-DEFUN (debug_isis_lupd,
- debug_isis_lupd_cmd,
- "debug " PROTO_NAME " local-updates",
- DEBUG_STR
- PROTO_HELP
- "IS-IS local update packets\n")
-{
- isis->debugs |= DEBUG_LOCAL_UPDATES;
- print_debug(vty, DEBUG_LOCAL_UPDATES, 1);
-
- return CMD_SUCCESS;
-}
-
-DEFUN (no_debug_isis_lupd,
- no_debug_isis_lupd_cmd,
- "no debug " PROTO_NAME " local-updates",
- NO_STR
- UNDEBUG_STR
- PROTO_HELP
- "IS-IS local update packets\n")
-{
- isis->debugs &= ~DEBUG_LOCAL_UPDATES;
- print_debug(vty, DEBUG_LOCAL_UPDATES, 0);
-
- return CMD_SUCCESS;
-}
-
-DEFUN (debug_isis_err,
- debug_isis_err_cmd,
- "debug " PROTO_NAME " protocol-errors",
- DEBUG_STR
- PROTO_HELP
- "IS-IS LSP protocol errors\n")
-{
- isis->debugs |= DEBUG_PROTOCOL_ERRORS;
- print_debug(vty, DEBUG_PROTOCOL_ERRORS, 1);
-
- return CMD_SUCCESS;
-}
-
-DEFUN (no_debug_isis_err,
- no_debug_isis_err_cmd,
- "no debug " PROTO_NAME " protocol-errors",
- NO_STR
- UNDEBUG_STR
- PROTO_HELP
- "IS-IS LSP protocol errors\n")
-{
- isis->debugs &= ~DEBUG_PROTOCOL_ERRORS;
- print_debug(vty, DEBUG_PROTOCOL_ERRORS, 0);
-
- return CMD_SUCCESS;
-}
-
DEFUN (debug_isis_snp,
debug_isis_snp_cmd,
"debug " PROTO_NAME " snp-packets",
return CMD_SUCCESS;
}
-DEFUN (debug_isis_spfstats,
- debug_isis_spfstats_cmd,
- "debug " PROTO_NAME " spf-statistics ",
- DEBUG_STR
- PROTO_HELP
- "IS-IS SPF Timing and Statistic Data\n")
-{
- isis->debugs |= DEBUG_SPF_STATS;
- print_debug(vty, DEBUG_SPF_STATS, 1);
-
- return CMD_SUCCESS;
-}
-
-DEFUN (no_debug_isis_spfstats,
- no_debug_isis_spfstats_cmd,
- "no debug " PROTO_NAME " spf-statistics",
- NO_STR
- UNDEBUG_STR
- PROTO_HELP
- "IS-IS SPF Timing and Statistic Data\n")
-{
- isis->debugs &= ~DEBUG_SPF_STATS;
- print_debug(vty, DEBUG_SPF_STATS, 0);
-
- return CMD_SUCCESS;
-}
-
-DEFUN (debug_isis_spftrigg,
- debug_isis_spftrigg_cmd,
- "debug " PROTO_NAME " spf-triggers",
- DEBUG_STR
- PROTO_HELP
- "IS-IS SPF triggering events\n")
-{
- isis->debugs |= DEBUG_SPF_TRIGGERS;
- print_debug(vty, DEBUG_SPF_TRIGGERS, 1);
-
- return CMD_SUCCESS;
-}
-
-DEFUN (no_debug_isis_spftrigg,
- no_debug_isis_spftrigg_cmd,
- "no debug " PROTO_NAME " spf-triggers",
- NO_STR
- UNDEBUG_STR
- PROTO_HELP
- "IS-IS SPF triggering events\n")
-{
- isis->debugs &= ~DEBUG_SPF_TRIGGERS;
- print_debug(vty, DEBUG_SPF_TRIGGERS, 0);
-
- return CMD_SUCCESS;
-}
-
DEFUN (debug_isis_rtevents,
debug_isis_rtevents_cmd,
"debug " PROTO_NAME " route-events",
install_element(ENABLE_NODE, &debug_isis_adj_cmd);
install_element(ENABLE_NODE, &no_debug_isis_adj_cmd);
- install_element(ENABLE_NODE, &debug_isis_csum_cmd);
- install_element(ENABLE_NODE, &no_debug_isis_csum_cmd);
- install_element(ENABLE_NODE, &debug_isis_lupd_cmd);
- install_element(ENABLE_NODE, &no_debug_isis_lupd_cmd);
- install_element(ENABLE_NODE, &debug_isis_err_cmd);
- install_element(ENABLE_NODE, &no_debug_isis_err_cmd);
install_element(ENABLE_NODE, &debug_isis_snp_cmd);
install_element(ENABLE_NODE, &no_debug_isis_snp_cmd);
install_element(ENABLE_NODE, &debug_isis_upd_cmd);
install_element(ENABLE_NODE, &no_debug_isis_upd_cmd);
install_element(ENABLE_NODE, &debug_isis_spfevents_cmd);
install_element(ENABLE_NODE, &no_debug_isis_spfevents_cmd);
- install_element(ENABLE_NODE, &debug_isis_spfstats_cmd);
- install_element(ENABLE_NODE, &no_debug_isis_spfstats_cmd);
- install_element(ENABLE_NODE, &debug_isis_spftrigg_cmd);
- install_element(ENABLE_NODE, &no_debug_isis_spftrigg_cmd);
install_element(ENABLE_NODE, &debug_isis_rtevents_cmd);
install_element(ENABLE_NODE, &no_debug_isis_rtevents_cmd);
install_element(ENABLE_NODE, &debug_isis_events_cmd);
install_element(CONFIG_NODE, &debug_isis_adj_cmd);
install_element(CONFIG_NODE, &no_debug_isis_adj_cmd);
- install_element(CONFIG_NODE, &debug_isis_csum_cmd);
- install_element(CONFIG_NODE, &no_debug_isis_csum_cmd);
- install_element(CONFIG_NODE, &debug_isis_lupd_cmd);
- install_element(CONFIG_NODE, &no_debug_isis_lupd_cmd);
- install_element(CONFIG_NODE, &debug_isis_err_cmd);
- install_element(CONFIG_NODE, &no_debug_isis_err_cmd);
install_element(CONFIG_NODE, &debug_isis_snp_cmd);
install_element(CONFIG_NODE, &no_debug_isis_snp_cmd);
install_element(CONFIG_NODE, &debug_isis_upd_cmd);
install_element(CONFIG_NODE, &no_debug_isis_upd_cmd);
install_element(CONFIG_NODE, &debug_isis_spfevents_cmd);
install_element(CONFIG_NODE, &no_debug_isis_spfevents_cmd);
- install_element(CONFIG_NODE, &debug_isis_spfstats_cmd);
- install_element(CONFIG_NODE, &no_debug_isis_spfstats_cmd);
- install_element(CONFIG_NODE, &debug_isis_spftrigg_cmd);
- install_element(CONFIG_NODE, &no_debug_isis_spftrigg_cmd);
install_element(CONFIG_NODE, &debug_isis_rtevents_cmd);
install_element(CONFIG_NODE, &no_debug_isis_rtevents_cmd);
install_element(CONFIG_NODE, &debug_isis_events_cmd);
--- /dev/null
+#include <zebra.h>
+
+#include "isisd/isis_lsp.c"
+
+struct thread_master *master;
+
+int isis_sock_init(struct isis_circuit *circuit);
+int isis_sock_init(struct isis_circuit *circuit)
+{
+ return 0;
+}
+
+struct zebra_privs_t isisd_privs;
+
+static void test_lsp_build_list_nonzero_ht(void)
+{
+ uint8_t lsp_id1[8] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00
+ };
+ uint8_t lsp_id_end[8] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x5f, 0x00
+ };
+ uint8_t lsp_id2[8] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00
+ };
+
+ struct isis_area *area = calloc(sizeof(*area), 1);
+
+ area->lsp_mtu = 1500;
+
+ dict_t *lspdb = lsp_db_init();
+
+ struct isis_lsp *lsp1 = lsp_new(area, lsp_id1, 6000, 0, 0, 0, NULL,
+ ISIS_LEVEL2);
+
+ lsp_insert(lsp1, lspdb);
+
+ struct isis_lsp *lsp2 = lsp_new(area, lsp_id2, 6000, 0, 0, 0, NULL,
+ ISIS_LEVEL2);
+
+ lsp_insert(lsp2, lspdb);
+
+ struct list *list = list_new();
+
+ lsp_build_list_nonzero_ht(lsp_id1, lsp_id_end, list, lspdb);
+ assert(list->count == 1);
+ assert(listgetdata(listhead(list)) == lsp1);
+ list_delete_all_node(list);
+
+ lsp_id_end[5] = 0x03;
+ lsp_id_end[6] = 0x00;
+
+ lsp_build_list_nonzero_ht(lsp_id1, lsp_id_end, list, lspdb);
+ assert(list->count == 2);
+ assert(listgetdata(listhead(list)) == lsp1);
+ assert(listgetdata(listtail(list)) == lsp2);
+ list_delete_all_node(list);
+
+ memcpy(lsp_id1, lsp_id2, sizeof(lsp_id1));
+
+ lsp_build_list_nonzero_ht(lsp_id1, lsp_id_end, list, lspdb);
+ assert(list->count == 1);
+ assert(listgetdata(listhead(list)) == lsp2);
+ list_delete_all_node(list);
+
+ lsp_id1[5] = 0x03;
+ lsp_id_end[5] = 0x04;
+
+ lsp_build_list_nonzero_ht(lsp_id1, lsp_id_end, list, lspdb);
+ assert(list->count == 0);
+ list_delete_all_node(list);
+
+ lsp_id1[5] = 0x00;
+
+ lsp_build_list_nonzero_ht(lsp_id1, lsp_id_end, list, lspdb);
+ assert(list->count == 2);
+ assert(listgetdata(listhead(list)) == lsp1);
+ assert(listgetdata(listtail(list)) == lsp2);
+ list_delete_all_node(list);
+}
+
+int main(int argc, char **argv)
+{
+ isis = calloc(sizeof(*isis), 1);
+ test_lsp_build_list_nonzero_ht();
+ return 0;
+}