version 1.1.1.2, 2012/10/09 09:22:28
|
version 1.1.1.3, 2013/07/21 23:54:38
|
Line 365 spftree_area_del (struct isis_area *area)
|
Line 365 spftree_area_del (struct isis_area *area)
|
area->spftree[1] = NULL; |
area->spftree[1] = NULL; |
} |
} |
#ifdef HAVE_IPV6 |
#ifdef HAVE_IPV6 |
if (area->spftree[1] != NULL) | if (area->spftree6[1] != NULL) |
{ |
{ |
isis_spftree_del (area->spftree6[1]); |
isis_spftree_del (area->spftree6[1]); |
area->spftree6[1] = NULL; |
area->spftree6[1] = NULL; |
Line 813 lspfragloop:
|
Line 813 lspfragloop:
|
for (ALL_LIST_ELEMENTS_RO (lsp->tlv_data.te_ipv4_reachs, |
for (ALL_LIST_ELEMENTS_RO (lsp->tlv_data.te_ipv4_reachs, |
node, te_ipv4_reach)) |
node, te_ipv4_reach)) |
{ |
{ |
|
assert ((te_ipv4_reach->control & 0x3F) <= IPV4_MAX_BITLEN); |
|
|
dist = cost + ntohl (te_ipv4_reach->te_metric); |
dist = cost + ntohl (te_ipv4_reach->te_metric); |
vtype = VTYPE_IPREACH_TE; |
vtype = VTYPE_IPREACH_TE; |
prefix.u.prefix4 = newprefix2inaddr (&te_ipv4_reach->prefix_start, |
prefix.u.prefix4 = newprefix2inaddr (&te_ipv4_reach->prefix_start, |
Line 829 lspfragloop:
|
Line 831 lspfragloop:
|
prefix.family = AF_INET6; |
prefix.family = AF_INET6; |
for (ALL_LIST_ELEMENTS_RO (lsp->tlv_data.ipv6_reachs, node, ip6reach)) |
for (ALL_LIST_ELEMENTS_RO (lsp->tlv_data.ipv6_reachs, node, ip6reach)) |
{ |
{ |
dist = cost + ip6reach->metric; | assert (ip6reach->prefix_len <= IPV6_MAX_BITLEN); |
| |
| dist = cost + ntohl(ip6reach->metric); |
vtype = (ip6reach->control_info & CTRL_INFO_DISTRIBUTION) ? |
vtype = (ip6reach->control_info & CTRL_INFO_DISTRIBUTION) ? |
VTYPE_IP6REACH_EXTERNAL : VTYPE_IP6REACH_INTERNAL; |
VTYPE_IP6REACH_EXTERNAL : VTYPE_IP6REACH_INTERNAL; |
prefix.prefixlen = ip6reach->prefix_len; |
prefix.prefixlen = ip6reach->prefix_len; |
Line 1176 isis_run_spf (struct isis_area *area, int level, int f
|
Line 1180 isis_run_spf (struct isis_area *area, int level, int f
|
u_char lsp_id[ISIS_SYS_ID_LEN + 2]; |
u_char lsp_id[ISIS_SYS_ID_LEN + 2]; |
struct isis_lsp *lsp; |
struct isis_lsp *lsp; |
struct route_table *table = NULL; |
struct route_table *table = NULL; |
struct timespec time_now; | struct timeval time_now; |
unsigned long long start_time, end_time; |
unsigned long long start_time, end_time; |
|
|
/* Get time that can't roll backwards. */ |
/* Get time that can't roll backwards. */ |
clock_gettime(CLOCK_MONOTONIC, &time_now); | quagga_gettime(QUAGGA_CLK_MONOTONIC, &time_now); |
start_time = time_now.tv_sec; |
start_time = time_now.tv_sec; |
start_time = (start_time * 1000000) + (time_now.tv_nsec / 1000); | start_time = (start_time * 1000000) + time_now.tv_usec; |
|
|
if (family == AF_INET) |
if (family == AF_INET) |
spftree = area->spftree[level - 1]; |
spftree = area->spftree[level - 1]; |
Line 1278 out:
|
Line 1282 out:
|
spftree->pending = 0; |
spftree->pending = 0; |
spftree->runcount++; |
spftree->runcount++; |
spftree->last_run_timestamp = time (NULL); |
spftree->last_run_timestamp = time (NULL); |
clock_gettime(CLOCK_MONOTONIC, &time_now); | quagga_gettime(QUAGGA_CLK_MONOTONIC, &time_now); |
end_time = time_now.tv_sec; |
end_time = time_now.tv_sec; |
end_time = (end_time * 1000000) + (time_now.tv_nsec / 1000); | end_time = (end_time * 1000000) + time_now.tv_usec; |
spftree->last_run_duration = end_time - start_time; |
spftree->last_run_duration = end_time - start_time; |
|
|
|
|
Line 1488 isis_print_paths (struct vty *vty, struct list *paths,
|
Line 1492 isis_print_paths (struct vty *vty, struct list *paths,
|
struct listnode *anode; |
struct listnode *anode; |
struct isis_vertex *vertex; |
struct isis_vertex *vertex; |
struct isis_adjacency *adj; |
struct isis_adjacency *adj; |
u_char buff[255]; | u_char buff[BUFSIZ]; |
|
|
vty_out (vty, "Vertex Type Metric " |
vty_out (vty, "Vertex Type Metric " |
"Next-Hop Interface Parent%s", VTY_NEWLINE); |
"Next-Hop Interface Parent%s", VTY_NEWLINE); |