Change inlabel outlabel/nexthop, and attr accounting. Specically
[mpls-ldp-portable.git] / ldp / ldp_entity.h
blob4132173342f7ca4712877265a8cfc3412dce18d4
2 /*
3 * Copyright (C) James R. Leu 2000
4 * jleu@mindspring.com
6 * This software is covered under the LGPL, for more
7 * info check out http://www.gnu.org/copyleft/lgpl.html
8 */
10 #ifndef _LDP_ENTITY_H_
11 #define _LDP_ENTITY_H_
13 #include "ldp_struct.h"
15 extern void ldp_entity_set_defaults(ldp_entity *e);
16 extern ldp_entity *ldp_entity_create();
17 extern void ldp_entity_delete(ldp_entity * e);
18 extern mpls_bool ldp_entity_is_active(ldp_entity * e);
19 extern mpls_bool ldp_entity_is_ready(ldp_entity * e);
20 extern int ldp_entity_label_space(ldp_entity * e);
21 extern ldp_mesg *ldp_entity_get_message(ldp_entity * e);
23 extern mpls_return_enum ldp_entity_startup(ldp_global * g, ldp_entity * e);
24 extern mpls_return_enum ldp_entity_shutdown(ldp_global * g, ldp_entity * e,
25 int flag);
27 extern void ldp_entity_register(ldp_global * g, ldp_entity * e);
28 extern void ldp_entity_unregister(ldp_global * g, ldp_entity * e);
30 extern void ldp_entity_add_if(ldp_entity * e, ldp_if * i);
31 extern void ldp_entity_del_if(ldp_global * g, ldp_entity * e);
33 extern void ldp_entity_add_peer(ldp_entity * e, ldp_peer * p);
34 extern void ldp_entity_del_peer(ldp_entity * e);
36 extern void ldp_entity_add_adj(ldp_entity * e, ldp_adj * a);
37 extern void ldp_entity_del_adj(ldp_entity * e, ldp_adj * a);
38 extern ldp_adj *ldp_entity_find_adj(ldp_entity * e, ldp_mesg * msg);
40 extern mpls_return_enum ldp_entity_set_admin_state(ldp_global * g,
41 ldp_entity * e, mpls_admin_state_enum state);
43 extern uint32_t _ldp_entity_get_next_index();
45 #endif