2 * Copyright (C) James R. Leu 2002
5 * This software is covered under the LGPL, for more
6 * info check out http://www.gnu.org/copyleft/lgpl.html
10 #define _LSR_STRUCT_H_
12 #include "mpls_list.h"
13 #include "mpls_refcnt.h"
14 #include "mpls_struct.h"
16 MPLS_LIST_ROOT(lsr_outsegment_list
, lsr_outsegment
);
17 MPLS_LIST_ROOT(lsr_insegment_list
, lsr_insegment
);
18 MPLS_LIST_ROOT(lsr_xconnect_list
, lsr_xconnect
);
19 MPLS_LIST_ROOT(lsr_ftn_list
, lsr_ftn
);
20 MPLS_LIST_ROOT(lsr_if_list
, lsr_if
);
23 LSR_TRACE_FLAG_INSEGMENT
= 0x00000001,
24 LSR_TRACE_FLAG_OUTSEGMENT
= 0x00000002,
25 LSR_TRACE_FLAG_XCONNECT
= 0x00000003,
26 LSR_TRACE_FLAG_DEBUG
= 0x00000004,
29 #include "lsr_defaults.h"
30 #include "mpls_handle_type.h"
32 typedef struct lsr_insegment
{
34 MPLS_LIST_ELEM(lsr_outsegment
) _outsegment
;
35 MPLS_LIST_ELEM(lsr_insegment
) _global
;
36 struct lsr_xconnect_list xconnect_root
;
39 struct mpls_insegment info
;
43 typedef struct lsr_outsegment
{
45 MPLS_LIST_ELEM(lsr_outsegment
) _global
;
46 MPLS_LIST_ELEM(lsr_outsegment
) _if
;
47 struct lsr_xconnect_list xconnect_root
;
48 struct lsr_ftn_list ftn_root
;
51 struct mpls_outsegment info
;
54 /* only valid in sets and gets */
58 typedef struct lsr_xconnect
{
60 MPLS_LIST_ELEM(lsr_xconnect
) _outsegment
;
61 MPLS_LIST_ELEM(lsr_xconnect
) _insegment
;
62 MPLS_LIST_ELEM(lsr_xconnect
) _global
;
65 struct mpls_xconnect info
;
66 struct lsr_outsegment
*outsegment
;
67 struct lsr_insegment
*insegment
;
69 /* only valid in sets and gets */
70 uint32_t outsegment_index
;
71 uint32_t insegment_index
;
74 typedef struct lsr_ftn
{
76 MPLS_LIST_ELEM(lsr_ftn
) _outsegment
;
77 MPLS_LIST_ELEM(lsr_ftn
) _global
;
81 struct lsr_outsegment
*outsegment
;
83 /* only valid in sets and gets */
84 uint32_t outsegment_index
;
87 typedef struct lsr_if
{
89 MPLS_LIST_ELEM(lsr_if
) _global
;
90 struct lsr_outsegment_list outsegment_root
;
93 mpls_oper_state_enum oper_state
;
94 mpls_if_handle handle
;
98 typedef struct lsr_global
{
99 struct lsr_outsegment_list outsegment
;
100 struct lsr_insegment_list insegment
;
101 struct lsr_xconnect_list xconnect
;
102 struct lsr_ftn_list ftn
;
103 struct lsr_if_list iff
;
105 mpls_lock_handle global_lock
;
106 mpls_instance_handle user_data
;
108 mpls_ifmgr_handle ifmgr_handle
;
109 mpls_mpls_handle mpls_handle
;
111 mpls_admin_state_enum admin_state
;