diff options
author | Paul Jakma <paul@quagga.net> | 2011-03-20 22:08:02 +0000 |
---|---|---|
committer | Paul Jakma <paul@quagga.net> | 2011-03-20 22:09:15 +0000 |
commit | d1de1c25962b5470f3825bc82d15e4dd29e1f842 (patch) | |
tree | 9e9b3c6ed51a0fdc78e0eb8900fad8f7e7598b98 | |
parent | 4dd87df5af8a59174362e44f83df11f12457c8b4 (diff) | |
parent | e6844aa5d23cf56dd1f31afc96e8145ab188953f (diff) |
Merge paul/ospfd/201012-review ospfd and lib/ fixes and performance improvements
-rw-r--r-- | bgpd/bgp_debug.c | 7 | ||||
-rw-r--r-- | bgpd/bgp_dump.c | 4 | ||||
-rw-r--r-- | bgpd/bgp_packet.c | 6 | ||||
-rw-r--r-- | bgpd/bgp_route.c | 9 | ||||
-rw-r--r-- | bgpd/bgp_vty.c | 6 | ||||
-rw-r--r-- | doc/main.texi | 4 | ||||
-rw-r--r-- | ospf6d/ospf6_spf.c | 22 | ||||
-rw-r--r-- | ripd/rip_debug.c | 24 | ||||
-rw-r--r-- | ripd/rip_debug.h | 1 | ||||
-rw-r--r-- | ripngd/ripng_debug.c | 26 | ||||
-rw-r--r-- | ripngd/ripng_debug.h | 2 |
11 files changed, 45 insertions, 66 deletions
diff --git a/bgpd/bgp_debug.c b/bgpd/bgp_debug.c index c2077a59..26b35dfc 100644 --- a/bgpd/bgp_debug.c +++ b/bgpd/bgp_debug.c @@ -331,7 +331,6 @@ ALIAS (no_debug_bgp_as4, undebug_bgp_as4_cmd, "undebug bgp as4", UNDEBUG_STR - DEBUG_STR BGP_STR "BGP AS4 actions\n") @@ -340,6 +339,7 @@ DEFUN (debug_bgp_as4_segment, "debug bgp as4 segment", DEBUG_STR BGP_STR + "BGP AS4 actions\n" "BGP AS4 aspath segment handling\n") { if (vty->node == CONFIG_NODE) @@ -358,6 +358,7 @@ DEFUN (no_debug_bgp_as4_segment, NO_STR DEBUG_STR BGP_STR + "BGP AS4 actions\n" "BGP AS4 aspath segment handling\n") { if (vty->node == CONFIG_NODE) @@ -374,8 +375,8 @@ ALIAS (no_debug_bgp_as4_segment, undebug_bgp_as4_segment_cmd, "undebug bgp as4 segment", UNDEBUG_STR - DEBUG_STR BGP_STR + "BGP AS4 actions\n" "BGP AS4 aspath segment handling\n") DEFUN (debug_bgp_fsm, @@ -417,7 +418,6 @@ ALIAS (no_debug_bgp_fsm, undebug_bgp_fsm_cmd, "undebug bgp fsm", UNDEBUG_STR - DEBUG_STR BGP_STR "Finite State Machine\n") @@ -715,7 +715,6 @@ ALIAS (no_debug_bgp_zebra, undebug_bgp_zebra_cmd, "undebug bgp zebra", UNDEBUG_STR - DEBUG_STR BGP_STR "BGP Zebra messages\n") diff --git a/bgpd/bgp_dump.c b/bgpd/bgp_dump.c index 8087a403..edb725a9 100644 --- a/bgpd/bgp_dump.c +++ b/bgpd/bgp_dump.c @@ -356,7 +356,11 @@ bgp_dump_routes_func (int afi, int first_run, unsigned int seq) stream_putw(obuf, info->peer->table_dump_index); /* Originated */ +#ifdef HAVE_CLOCK_MONOTONIC + stream_putl (obuf, time(NULL) - (bgp_clock() - info->uptime)); +#else stream_putl (obuf, info->uptime); +#endif /* HAVE_CLOCK_MONOTONIC */ /* Dump attribute. */ /* Skip prefix & AFI/SAFI for MP_NLRI */ diff --git a/bgpd/bgp_packet.c b/bgpd/bgp_packet.c index a5f9552c..9102add7 100644 --- a/bgpd/bgp_packet.c +++ b/bgpd/bgp_packet.c @@ -1885,12 +1885,6 @@ bgp_notify_receive (struct peer *peer, bgp_size_t size) bgp_notify.subcode == BGP_NOTIFY_OPEN_UNSUP_PARAM ) UNSET_FLAG (peer->sflags, PEER_STATUS_CAPABILITY_OPEN); - /* Also apply to Unsupported Capability until remote router support - capability. */ - if (bgp_notify.code == BGP_NOTIFY_OPEN_ERR && - bgp_notify.subcode == BGP_NOTIFY_OPEN_UNSUP_CAPBL) - UNSET_FLAG (peer->sflags, PEER_STATUS_CAPABILITY_OPEN); - BGP_EVENT_ADD (peer, Receive_NOTIFICATION_message); } diff --git a/bgpd/bgp_route.c b/bgpd/bgp_route.c index df23dda3..60e9610e 100644 --- a/bgpd/bgp_route.c +++ b/bgpd/bgp_route.c @@ -5978,6 +5978,9 @@ route_vty_out_detail (struct vty *vty, struct bgp *bgp, struct prefix *p, char buf1[BUFSIZ]; struct attr *attr; int sockunion_vty_out (struct vty *, union sockunion *); +#ifdef HAVE_CLOCK_MONOTONIC + time_t tbuf; +#endif attr = binfo->attr; @@ -6144,8 +6147,12 @@ route_vty_out_detail (struct vty *vty, struct bgp *bgp, struct prefix *p, bgp_damp_info_vty (vty, binfo); /* Line 7 display Uptime */ - time_t tbuf = time(NULL) - (bgp_clock() - binfo->uptime); +#ifdef HAVE_CLOCK_MONOTONIC + tbuf = time(NULL) - (bgp_clock() - binfo->uptime); vty_out (vty, " Last update: %s", ctime(&tbuf)); +#else + vty_out (vty, " Last update: %s", ctime(&binfo->uptime)); +#endif /* HAVE_CLOCK_MONOTONIC */ } vty_out (vty, "%s", VTY_NEWLINE); } diff --git a/bgpd/bgp_vty.c b/bgpd/bgp_vty.c index 88be52e2..ec0106a8 100644 --- a/bgpd/bgp_vty.c +++ b/bgpd/bgp_vty.c @@ -9952,7 +9952,7 @@ community_list_perror (struct vty *vty, int ret) switch (ret) { case COMMUNITY_LIST_ERR_CANT_FIND_LIST: - vty_out (vty, "%% Can't find communit-list%s", VTY_NEWLINE); + vty_out (vty, "%% Can't find community-list%s", VTY_NEWLINE); break; case COMMUNITY_LIST_ERR_MALFORMED_VAL: vty_out (vty, "%% Malformed community-list value%s", VTY_NEWLINE); @@ -10313,7 +10313,7 @@ DEFUN (show_ip_community_list_arg, list = community_list_lookup (bgp_clist, argv[0], COMMUNITY_LIST_MASTER); if (! list) { - vty_out (vty, "%% Can't find communit-list%s", VTY_NEWLINE); + vty_out (vty, "%% Can't find community-list%s", VTY_NEWLINE); return CMD_WARNING; } @@ -10663,7 +10663,7 @@ DEFUN (show_ip_extcommunity_list_arg, list = community_list_lookup (bgp_clist, argv[0], EXTCOMMUNITY_LIST_MASTER); if (! list) { - vty_out (vty, "%% Can't find extcommunit-list%s", VTY_NEWLINE); + vty_out (vty, "%% Can't find extcommunity-list%s", VTY_NEWLINE); return CMD_WARNING; } diff --git a/doc/main.texi b/doc/main.texi index 9966b356..a5759137 100644 --- a/doc/main.texi +++ b/doc/main.texi @@ -49,9 +49,9 @@ Up or down the current interface. @end deffn @deffn {Interface Command} {ip address @var{address/prefix}} {} -@deffnx {Interface Command} {ip6 address @var{address/prefix}} {} +@deffnx {Interface Command} {ipv6 address @var{address/prefix}} {} @deffnx {Interface Command} {no ip address @var{address/prefix}} {} -@deffnx {Interface Command} {no ip6 address @var{address/prefix}} {} +@deffnx {Interface Command} {no ipv6 address @var{address/prefix}} {} Set the IPv4 or IPv6 address/prefix for the interface. @end deffn diff --git a/ospf6d/ospf6_spf.c b/ospf6d/ospf6_spf.c index bfb6df2e..04367f08 100644 --- a/ospf6d/ospf6_spf.c +++ b/ospf6d/ospf6_spf.c @@ -50,7 +50,9 @@ ospf6_vertex_cmp (void *a, void *b) struct ospf6_vertex *vb = (struct ospf6_vertex *) b; /* ascending order */ - return (va->cost - vb->cost); + if (va->cost != vb->cost) + return (va->cost - vb->cost); + return (va->hops - vb->hops); } static int @@ -320,22 +322,8 @@ ospf6_spf_install (struct ospf6_vertex *v, } prev = (struct ospf6_vertex *) route->route_option; - if (prev->hops > v->hops) - { - for (ALL_LIST_ELEMENTS (prev->child_list, node, nnode, w)) - { - assert (w->parent == prev); - w->parent = v; - listnode_add_sort (v->child_list, w); - } - listnode_delete (prev->parent->child_list, prev); - listnode_add_sort (v->parent->child_list, v); - - ospf6_vertex_delete (prev); - route->route_option = v; - } - else - ospf6_vertex_delete (v); + assert (prev->hops <= v->hops); + ospf6_vertex_delete (v); return -1; } diff --git a/ripd/rip_debug.c b/ripd/rip_debug.c index 64dc27c0..662e5843 100644 --- a/ripd/rip_debug.c +++ b/ripd/rip_debug.c @@ -44,19 +44,16 @@ DEFUN (show_debugging_rip, { if (IS_RIP_DEBUG_SEND && IS_RIP_DEBUG_RECV) { - vty_out (vty, " RIP packet%s debugging is on%s", - IS_RIP_DEBUG_DETAIL ? " detail" : "", + vty_out (vty, " RIP packet debugging is on%s", VTY_NEWLINE); } else { if (IS_RIP_DEBUG_SEND) - vty_out (vty, " RIP packet send%s debugging is on%s", - IS_RIP_DEBUG_DETAIL ? " detail" : "", + vty_out (vty, " RIP packet send debugging is on%s", VTY_NEWLINE); else - vty_out (vty, " RIP packet receive%s debugging is on%s", - IS_RIP_DEBUG_DETAIL ? " detail" : "", + vty_out (vty, " RIP packet receive debugging is on%s", VTY_NEWLINE); } } @@ -105,11 +102,12 @@ DEFUN (debug_rip_packet_direct, rip_debug_packet |= RIP_DEBUG_SEND; if (strncmp ("recv", argv[0], strlen (argv[0])) == 0) rip_debug_packet |= RIP_DEBUG_RECV; - rip_debug_packet &= ~RIP_DEBUG_DETAIL; return CMD_SUCCESS; } -DEFUN (debug_rip_packet_detail, +/* N.B. the "detail" modifier is a no-op. we leave this command + for legacy compatibility. */ +DEFUN_DEPRECATED (debug_rip_packet_detail, debug_rip_packet_detail_cmd, "debug rip packet (recv|send) detail", DEBUG_STR @@ -124,7 +122,6 @@ DEFUN (debug_rip_packet_detail, rip_debug_packet |= RIP_DEBUG_SEND; if (strncmp ("recv", argv[0], strlen (argv[0])) == 0) rip_debug_packet |= RIP_DEBUG_RECV; - rip_debug_packet |= RIP_DEBUG_DETAIL; return CMD_SUCCESS; } @@ -224,20 +221,17 @@ config_write_debug (struct vty *vty) { if (IS_RIP_DEBUG_SEND && IS_RIP_DEBUG_RECV) { - vty_out (vty, "debug rip packet%s%s", - IS_RIP_DEBUG_DETAIL ? " detail" : "", + vty_out (vty, "debug rip packet%s", VTY_NEWLINE); write++; } else { if (IS_RIP_DEBUG_SEND) - vty_out (vty, "debug rip packet send%s%s", - IS_RIP_DEBUG_DETAIL ? " detail" : "", + vty_out (vty, "debug rip packet send%s", VTY_NEWLINE); else - vty_out (vty, "debug rip packet recv%s%s", - IS_RIP_DEBUG_DETAIL ? " detail" : "", + vty_out (vty, "debug rip packet recv%s", VTY_NEWLINE); write++; } diff --git a/ripd/rip_debug.h b/ripd/rip_debug.h index f3a07eea..990ec908 100644 --- a/ripd/rip_debug.h +++ b/ripd/rip_debug.h @@ -40,7 +40,6 @@ #define IS_RIP_DEBUG_PACKET (rip_debug_packet & RIP_DEBUG_PACKET) #define IS_RIP_DEBUG_SEND (rip_debug_packet & RIP_DEBUG_SEND) #define IS_RIP_DEBUG_RECV (rip_debug_packet & RIP_DEBUG_RECV) -#define IS_RIP_DEBUG_DETAIL (rip_debug_packet & RIP_DEBUG_DETAIL) #define IS_RIP_DEBUG_ZEBRA (rip_debug_zebra & RIP_DEBUG_ZEBRA) diff --git a/ripngd/ripng_debug.c b/ripngd/ripng_debug.c index 78f13a71..33a7cf69 100644 --- a/ripngd/ripng_debug.c +++ b/ripngd/ripng_debug.c @@ -45,19 +45,16 @@ DEFUN (show_debugging_ripng, { if (IS_RIPNG_DEBUG_SEND && IS_RIPNG_DEBUG_RECV) { - vty_out (vty, " RIPng packet%s debugging is on%s", - IS_RIPNG_DEBUG_DETAIL ? " detail" : "", + vty_out (vty, " RIPng packet debugging is on%s", VTY_NEWLINE); } else { if (IS_RIPNG_DEBUG_SEND) - vty_out (vty, " RIPng packet send%s debugging is on%s", - IS_RIPNG_DEBUG_DETAIL ? " detail" : "", + vty_out (vty, " RIPng packet send debugging is on%s", VTY_NEWLINE); else - vty_out (vty, " RIPng packet receive%s debugging is on%s", - IS_RIPNG_DEBUG_DETAIL ? " detail" : "", + vty_out (vty, " RIPng packet receive debugging is on%s", VTY_NEWLINE); } } @@ -106,11 +103,13 @@ DEFUN (debug_ripng_packet_direct, ripng_debug_packet |= RIPNG_DEBUG_SEND; if (strncmp ("recv", argv[0], strlen (argv[0])) == 0) ripng_debug_packet |= RIPNG_DEBUG_RECV; - ripng_debug_packet &= ~RIPNG_DEBUG_DETAIL; + return CMD_SUCCESS; } -DEFUN (debug_ripng_packet_detail, +/* N.B. the "detail" modifier is a no-op. we leave this command + for legacy compatibility. */ +DEFUN_DEPRECATED (debug_ripng_packet_detail, debug_ripng_packet_detail_cmd, "debug ripng packet (recv|send) detail", DEBUG_STR @@ -125,7 +124,7 @@ DEFUN (debug_ripng_packet_detail, ripng_debug_packet |= RIPNG_DEBUG_SEND; if (strncmp ("recv", argv[0], strlen (argv[0])) == 0) ripng_debug_packet |= RIPNG_DEBUG_RECV; - ripng_debug_packet |= RIPNG_DEBUG_DETAIL; + return CMD_SUCCESS; } @@ -225,20 +224,17 @@ config_write_debug (struct vty *vty) { if (IS_RIPNG_DEBUG_SEND && IS_RIPNG_DEBUG_RECV) { - vty_out (vty, "debug ripng packet%s%s", - IS_RIPNG_DEBUG_DETAIL ? " detail" : "", + vty_out (vty, "debug ripng packet%s", VTY_NEWLINE); write++; } else { if (IS_RIPNG_DEBUG_SEND) - vty_out (vty, "debug ripng packet send%s%s", - IS_RIPNG_DEBUG_DETAIL ? " detail" : "", + vty_out (vty, "debug ripng packet send%s", VTY_NEWLINE); else - vty_out (vty, "debug ripng packet recv%s%s", - IS_RIPNG_DEBUG_DETAIL ? " detail" : "", + vty_out (vty, "debug ripng packet recv%s", VTY_NEWLINE); write++; } diff --git a/ripngd/ripng_debug.h b/ripngd/ripng_debug.h index f5ed6eab..674345c0 100644 --- a/ripngd/ripng_debug.h +++ b/ripngd/ripng_debug.h @@ -29,7 +29,6 @@ #define RIPNG_DEBUG_PACKET 0x01 #define RIPNG_DEBUG_SEND 0x20 #define RIPNG_DEBUG_RECV 0x40 -#define RIPNG_DEBUG_DETAIL 0x80 #define RIPNG_DEBUG_ZEBRA 0x01 @@ -39,7 +38,6 @@ #define IS_RIPNG_DEBUG_PACKET (ripng_debug_packet & RIPNG_DEBUG_PACKET) #define IS_RIPNG_DEBUG_SEND (ripng_debug_packet & RIPNG_DEBUG_SEND) #define IS_RIPNG_DEBUG_RECV (ripng_debug_packet & RIPNG_DEBUG_RECV) -#define IS_RIPNG_DEBUG_DETAIL (ripng_debug_packet & RIPNG_DEBUG_DETAIL) #define IS_RIPNG_DEBUG_ZEBRA (ripng_debug_zebra & RIPNG_DEBUG_ZEBRA) |