/* * Copyright (C) James R. Leu 2000 * jleu@mindspring.com * * This software is covered under the LGPL, for more * info check out http://www.gnu.org/copyleft/lgpl.html */ #ifndef _LDP_ATTR_H_ #define _LDP_ATTR_H_ #include "ldp_struct.h" #define LDP_ATTR_LABEL 0x01 #define LDP_ATTR_HOPCOUNT 0x02 #define LDP_ATTR_PATH 0x04 #define LDP_ATTR_FEC 0x08 #define LDP_ATTR_MSGID 0x10 #define LDP_ATTR_LSPID 0x20 #define LDP_ATTR_TRAFFIC 0x40 #define LDP_ATTR_ALL 0xFF extern ldp_attr* ldp_attr_create(ldp_fec* fec); extern void ldp_attr_delete(ldp_attr* a); extern void ldp_attr2ldp_attr(ldp_attr* a,ldp_attr* b,uint32_t flag); extern void ldp_attr_remove_complete(ldp_global* g,ldp_attr* attr); extern ldp_attr* ldp_attr_find_downstream_state(ldp_global* g,ldp_session* s, ldp_fec* f,ldp_lsp_state state); extern ldp_attr* ldp_attr_find_upstream_state(ldp_global* g,ldp_session* s, ldp_fec* f,ldp_lsp_state state); extern ldp_return_enum ldp_attr_del_outlabel(ldp_attr* a); extern ldp_return_enum ldp_attr_add_outlabel(ldp_attr* a,ldp_outlabel* o); extern ldp_return_enum ldp_attr_add_inlabel(ldp_attr* a,ldp_inlabel* i); extern ldp_return_enum ldp_attr_del_inlabel(ldp_attr* a); extern ldp_return_enum ldp_attr_add_session(ldp_attr* a,ldp_session* s); extern ldp_return_enum ldp_attr_del_session(ldp_attr* a); extern ldp_bool ldp_attr_is_equal(ldp_attr* a,ldp_attr* b,uint32_t flag); extern ldp_attr* ldp_attr_find_upstream(ldp_global*,ldp_session*,ldp_fec*); extern ldp_attr_list* ldp_attr_find_upstream_all(ldp_global* g, ldp_session* s,ldp_fec* f); extern ldp_attr_list* ldp_attr_find_downstream_all(ldp_global* g, ldp_session* s,ldp_fec* f); extern ldp_attr* ldp_attr_find_downstream(ldp_global*,ldp_session*,ldp_fec*); extern void ldp_attr_delete_upstream(ldp_global*,ldp_session*,ldp_attr*); extern void ldp_attr_delete_downstream(ldp_global*,ldp_session*,ldp_attr*); extern ldp_return_enum ldp_attr_insert_upstream(ldp_global* g,ldp_session* s, ldp_attr* a); extern ldp_return_enum ldp_attr_insert_downstream(ldp_global* g,ldp_session* s, ldp_attr* a); extern void ldp_label2ldp_attr(ldp_label* l,ldp_attr* a); extern void ldp_attr2ldp_label(ldp_attr* a,ldp_label* l); #endif