tree f73ac5adc1856f4492eb352aa4d7aff774062248
parent dc684eb9976f8a1170312be42d142effce26b568
author Paul Jakma <paul@opensourcerouting.org> 1414578797 +0000
committer Paul Jakma <paul@quagga.net> 1430068050 +0100

gdb: Add a directory of files with gdb macros

* gdb/: Directory to contain files with GDB macros. Organised by topic into
  separate files.
* gdb/lib.txt: General OS API and Quagga lib macros:
  (def_ntohs) convert big-endian short to host order.
  (def_ntohl) convert big-endian long to host order.
  (walk_route_table_next) Walk to next route_node in a table, according
  to given top and current node arguments.
  (walk_route_table) walk the given route table dumping non-null info pointers,
  from the given root node.
  (dump_timeval) timeval to human readable output
  (dump_s_addr) Print IP address of given pointer to a (struct in_addr).s_addr
  (dump_s6_addr) Ditto for IPv6.
  (dump_prefix4) Dump a Quagga (struct prefix_ipv4 *)
  (dump_prefix6) Dump (struct prefix_ipv6 *)
  (dump_prefix) Dump a (struct prefix *).
  (rn_next_{down,up}) left-down and up-and-right walks of a route_table
  from a given route_node.
* gdb/ospfd.txt: ospfd specific gdb macros, depends on gdb/lib.txt
  (dump_ospf_lsa_flags) LSA flags to text.
  (dump_ospf_lsa_data) dump the data of a (struct lsa_header *) argument.
  (dump_ospf_lsa) Dump the details of a (struct ospf_lsa *)
  (walk_ospf_lsdb) Go through an LSDB, rooted at the
  given (struct route_node *), and dump LSA details.
  (ospf_backbone_lsdb_top) Get the LSDB top pointer for the given LSA type.
