version 1.1.1.1, 2012/02/21 17:26:12
|
version 1.1.1.2, 2016/11/02 10:09:11
|
Line 67 ospf6_area_lsdb_hook_add (struct ospf6_lsa *lsa)
|
Line 67 ospf6_area_lsdb_hook_add (struct ospf6_lsa *lsa)
|
zlog_debug ("Schedule SPF Calculation for %s", |
zlog_debug ("Schedule SPF Calculation for %s", |
OSPF6_AREA (lsa->lsdb->data)->name); |
OSPF6_AREA (lsa->lsdb->data)->name); |
} |
} |
ospf6_spf_schedule (OSPF6_AREA (lsa->lsdb->data)); | ospf6_spf_schedule (OSPF6_PROCESS(OSPF6_AREA (lsa->lsdb->data)->ospf6), |
| ospf6_lsadd_to_spf_reason(lsa)); |
break; |
break; |
|
|
case OSPF6_LSTYPE_INTRA_PREFIX: |
case OSPF6_LSTYPE_INTRA_PREFIX: |
Line 97 ospf6_area_lsdb_hook_remove (struct ospf6_lsa *lsa)
|
Line 98 ospf6_area_lsdb_hook_remove (struct ospf6_lsa *lsa)
|
zlog_debug ("Schedule SPF Calculation for %s", |
zlog_debug ("Schedule SPF Calculation for %s", |
OSPF6_AREA (lsa->lsdb->data)->name); |
OSPF6_AREA (lsa->lsdb->data)->name); |
} |
} |
ospf6_spf_schedule (OSPF6_AREA (lsa->lsdb->data)); | ospf6_spf_schedule (OSPF6_PROCESS(OSPF6_AREA (lsa->lsdb->data)->ospf6), |
| ospf6_lsremove_to_spf_reason(lsa)); |
break; |
break; |
|
|
case OSPF6_LSTYPE_INTRA_PREFIX: |
case OSPF6_LSTYPE_INTRA_PREFIX: |
Line 164 ospf6_area_create (u_int32_t area_id, struct ospf6 *o)
|
Line 166 ospf6_area_create (u_int32_t area_id, struct ospf6 *o)
|
oa->summary_router->scope = oa; |
oa->summary_router->scope = oa; |
|
|
/* set default options */ |
/* set default options */ |
OSPF6_OPT_SET (oa->options, OSPF6_OPT_V6); | if (CHECK_FLAG (o->flag, OSPF6_STUB_ROUTER)) |
| { |
| OSPF6_OPT_CLEAR (oa->options, OSPF6_OPT_V6); |
| OSPF6_OPT_CLEAR (oa->options, OSPF6_OPT_R); |
| } |
| else |
| { |
| OSPF6_OPT_SET (oa->options, OSPF6_OPT_V6); |
| OSPF6_OPT_SET (oa->options, OSPF6_OPT_R); |
| } |
| |
OSPF6_OPT_SET (oa->options, OSPF6_OPT_E); |
OSPF6_OPT_SET (oa->options, OSPF6_OPT_E); |
OSPF6_OPT_SET (oa->options, OSPF6_OPT_R); |
|
|
|
oa->ospf6 = o; |
oa->ospf6 = o; |
listnode_add_sort (o->area_list, oa); |
listnode_add_sort (o->area_list, oa); |
Line 182 ospf6_area_create (u_int32_t area_id, struct ospf6 *o)
|
Line 193 ospf6_area_create (u_int32_t area_id, struct ospf6 *o)
|
void |
void |
ospf6_area_delete (struct ospf6_area *oa) |
ospf6_area_delete (struct ospf6_area *oa) |
{ |
{ |
struct listnode *n, *nnode; | struct listnode *n; |
struct ospf6_interface *oi; |
struct ospf6_interface *oi; |
|
|
ospf6_route_table_delete (oa->range_table); |
ospf6_route_table_delete (oa->range_table); |
ospf6_route_table_delete (oa->summary_prefix); |
ospf6_route_table_delete (oa->summary_prefix); |
ospf6_route_table_delete (oa->summary_router); |
ospf6_route_table_delete (oa->summary_router); |
|
|
/* ospf6 interface list */ | /* The ospf6_interface structs store configuration |
for (ALL_LIST_ELEMENTS (oa->if_list, n, nnode, oi)) | * information which should not be lost/reset when |
{ | * deleting an area. |
ospf6_interface_delete (oi); | * So just detach the interface from the area and |
} | * keep it around. */ |
| for (ALL_LIST_ELEMENTS_RO (oa->if_list, n, oi)) |
| oi->area = NULL; |
| |
list_delete (oa->if_list); |
list_delete (oa->if_list); |
|
|
ospf6_lsdb_delete (oa->lsdb); |
ospf6_lsdb_delete (oa->lsdb); |
Line 246 ospf6_area_enable (struct ospf6_area *oa)
|
Line 260 ospf6_area_enable (struct ospf6_area *oa)
|
|
|
for (ALL_LIST_ELEMENTS (oa->if_list, node, nnode, oi)) |
for (ALL_LIST_ELEMENTS (oa->if_list, node, nnode, oi)) |
ospf6_interface_enable (oi); |
ospf6_interface_enable (oi); |
|
ospf6_abr_enable_area (oa); |
} |
} |
|
|
void |
void |
Line 258 ospf6_area_disable (struct ospf6_area *oa)
|
Line 273 ospf6_area_disable (struct ospf6_area *oa)
|
|
|
for (ALL_LIST_ELEMENTS (oa->if_list, node, nnode, oi)) |
for (ALL_LIST_ELEMENTS (oa->if_list, node, nnode, oi)) |
ospf6_interface_disable (oi); |
ospf6_interface_disable (oi); |
|
|
|
ospf6_abr_disable_area (oa); |
|
ospf6_lsdb_remove_all (oa->lsdb); |
|
ospf6_lsdb_remove_all (oa->lsdb_self); |
|
|
|
ospf6_spf_table_finish(oa->spf_table); |
|
ospf6_route_remove_all(oa->route_table); |
|
|
|
THREAD_OFF (oa->thread_spf_calculation); |
|
THREAD_OFF (oa->thread_route_calculation); |
|
|
|
THREAD_OFF (oa->thread_router_lsa); |
|
THREAD_OFF (oa->thread_intra_prefix_lsa); |
} |
} |
|
|
| |
void |
void |
ospf6_area_show (struct vty *vty, struct ospf6_area *oa) |
ospf6_area_show (struct vty *vty, struct ospf6_area *oa) |
{ |
{ |
Line 401 DEFUN (no_area_range,
|
Line 429 DEFUN (no_area_range,
|
} |
} |
|
|
ospf6_route_remove (range, oa->range_table); |
ospf6_route_remove (range, oa->range_table); |
|
|
return CMD_SUCCESS; |
return CMD_SUCCESS; |
} |
} |
|
|
Line 489 DEFUN (no_area_filter_list,
|
Line 518 DEFUN (no_area_filter_list,
|
"Filter networks sent from this area\n") |
"Filter networks sent from this area\n") |
{ |
{ |
struct ospf6_area *area; |
struct ospf6_area *area; |
struct prefix_list *plist; |
|
|
|
OSPF6_CMD_AREA_GET (argv[0], area); |
OSPF6_CMD_AREA_GET (argv[0], area); |
argc--; |
argc--; |
argv++; |
argv++; |
|
|
plist = prefix_list_lookup (AFI_IP6, argv[0]); |
|
if (strncmp (argv[1], "in", 2) == 0) |
if (strncmp (argv[1], "in", 2) == 0) |
{ |
{ |
if (PREFIX_NAME_IN (area)) |
if (PREFIX_NAME_IN (area)) |