Beispiel #1
0
	struct lisp_db *
ms_init_db()
{
	struct prefix p;
	struct db_node *dn;
	struct lisp_db *db;
	db = calloc(1, sizeof(struct lisp_db));

	//make new tree
	db->lisp_db4 = db_table_init(&ms_free_node);
	db->lisp_db6 = db_table_init(&ms_free_node);

	//assign 0.0.0.0/0 as root of ipv4 tree
	str2prefix("0.0.0.0/0",&p);
	apply_mask(&p);
	dn = db_node_get(db->lisp_db4,&p);
	assert(dn == (db->lisp_db4->top));
	dn->flags = ms_new_node_ex(_ROOT);

	//and 0::/0 as root of ipv6 tree
	str2prefix("0::/0",&p);
	apply_mask(&p);
	dn = db_node_get(db->lisp_db6,&p);
	assert(dn == (db->lisp_db6->top));
	dn->flags = ms_new_node_ex(_ROOT);

	return db;
}
Beispiel #2
0
void * generic_mapping_new(struct prefix * eid){
	struct db_node * rn;
	struct list_t * locs;
	struct db_table * table;
	
	table = ms_get_db_table(ms_db,eid);
	if(!table)
		return NULL;
		
	rn = db_node_get(table, eid);
	if(!rn){
		return (NULL);
	}

	locs = list_init();
	db_node_set_info(rn, locs);

	return ((void *)rn);
}