Merge paul/ospfd/201012-review ospfd and lib/ fixes and performance improvements

This commit is contained in:
Paul Jakma 2011-03-20 22:08:02 +00:00
commit d1de1c2596
11 changed files with 45 additions and 66 deletions

View File

@ -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")

View File

@ -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 */

View File

@ -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);
}

View File

@ -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);
}

View File

@ -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;
}

View File

@ -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

View File

@ -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;
}

View File

@ -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++;
}

View File

@ -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)

View File

@ -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++;
}

View File

@ -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)