+++ /dev/null
-# GDB macros for use with Quagga.
-#
-# Macros in this file are specific to ospfd/. Definitions here depend on the
-# lib.txt macros file, which must also be loaed.
-#
-# The macro file can be loaded with 'source <filename>'. They can then be
-# called by the user. Macros that explore more complicated structs generally
-# take pointer arguments.
-
-define dump_ospf_lsa_flags
- set $flags = $arg0
-
- printf "%u: ", $flags
-
- if $flags & 0x1
- echo Self,
- end
- if $flags & 0x2
- echo Self-checked,
- end
- if $flags & 0x4
- echo Recvd,
- end
- if $flags & 0x8
- echo Apprvd,
- end
- if $flags & 0x10
- echo Discard,
- end
- if $flags & 0x20
- echo Local-Xlt,
- end
- if $flags & 0x40
- echo Premature-Aged,
- end
- if $flags & 0x40
- echo In-Maxage,
- end
- echo \n
-end
-
-define dump_ospf_lsa_data
- set $lsad = (struct lsa_header *)$arg0
-
- echo ID / AdvRtr: \t\t
- dump_s_addr &$lsad->id.s_addr
- echo \ : \
- dump_s_addr &$lsad->adv_router.s_addr
- echo \n
-
- def_ntohs &$lsad->ls_age
- printf "Type: %2u Age: %4u,", $lsad->type, $_
-
- def_ntohs &$lsad->length
- printf " length: %2u", $_
-
- def_ntohl &$lsad->ls_seqnum
- printf " Seqnum: 0x%08x", $_
-
- def_ntohs &$lsad->checksum
- printf " csum: 0x%04x\n", $_
-
- # return the age
- def_ntohs &$lsad->ls_age
-end
-
-define dump_ospf_lsa
- set $lsa = (struct ospf_lsa *)$arg0
-
- #print/x *$lsa
-
- dump_ospf_lsa_data $lsa->data
-
- set $relage = $_ + (relative_time.tv_sec - $lsa->tv_recv.tv_sec)
- printf "Relative age: %4u\n", $relage
-
- dump_ospf_lsa_flags $lsa->flags
-
- echo tv_recv: \
- dump_timeval &$lsa->tv_recv
- echo \ tv_orig: \
- dump_timeval &$lsa->tv_orig
- echo \n
-
- printf "lock %2u", $lsa->lock
- printf " stat %2d", $lsa->stat
- printf " rtx count: %u", $lsa->retransmit_counter
- printf " rfsh list: %d", $lsa->refresh_list
- printf "\n\n"
-end
-
-define walk_ospf_lsdb
- set $node = (struct route_node *)$arg0
- set $top = (struct route_node *)$arg0
- set $visited = 0
-
- while ($node != 0)
- set $prevl = $node
-
- if ($node->info != 0)
- dump_ospf_lsa $node->info
- set $visited = $visited + 1
- end
-
- walk_route_table_next $top $node
- set $node = $_
-
- # we've gotten back to the top, finish
- if ($node == $top)
- set $node = 0
- end
- end
- printf "Visited: %u\n", $visited
-end
-
-document walk_ospf_lsdb
-Walk through an OSPF LSDB (or subset thereof) and dump all the LSAs
-contained there-in.
-
-Argument: A (struct route_node *) pointing to the top of the
-LSDB route-table which should be dumped.
-end
-
-define ospf_backbone_lsdb_top
- set $type = $arg0
-
- set $ospf = ospf_master->ospf->head->data
-
- output/x ((struct ospf *)$ospf)->backbone->lsdb->type[$type]->db->top
- echo \n
-end
-document ospf_backbone_lsdb_top
-Dump location of the LSDB in the backbone area for the given LSA type
-
-Argument: Integer LSA type
-end
-