1 // SPDX-License-Identifier: GPL-2.0-or-later
4 * Copyright (C) 2018 Cumulus Networks, Inc.
12 static struct route_node
*agg_node_create(route_table_delegate_t
*delegate
,
13 struct route_table
*table
)
15 struct agg_node
*node
;
17 node
= XCALLOC(MTYPE_TMP
, sizeof(struct agg_node
));
19 return agg_node_to_rnode(node
);
22 static void agg_node_destroy(route_table_delegate_t
*delegate
,
23 struct route_table
*table
, struct route_node
*node
)
26 struct agg_node
*anode
= agg_node_from_rnode(node
);
28 XFREE(MTYPE_TMP
, anode
);
31 static route_table_delegate_t agg_table_delegate
= {
32 .create_node
= agg_node_create
,
33 .destroy_node
= agg_node_destroy
,
36 struct agg_table
*agg_table_init(void)
40 at
= XCALLOC(MTYPE_TMP
, sizeof(struct agg_table
));
42 at
->route_table
= route_table_init_with_delegate(&agg_table_delegate
);
43 route_table_set_info(at
->route_table
, at
);