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
28 #include "lsr_defaults.h"
29 #include "mpls_handle_type.h"
31 typedef struct lsr_insegment
{
33 MPLS_LIST_ELEM(lsr_outsegment
) _outsegment
;
34 MPLS_LIST_ELEM(lsr_insegment
) _global
;
35 struct lsr_xconnect_list xconnect_root
;
38 struct mpls_insegment info
;
42 typedef struct lsr_outsegment
{
44 MPLS_LIST_ELEM(lsr_outsegment
) _global
;
45 MPLS_LIST_ELEM(lsr_outsegment
) _if
;
46 struct lsr_xconnect_list xconnect_root
;
47 struct lsr_ftn_list ftn_root
;
50 struct mpls_outsegment info
;
53 /* only valid in sets and gets */
57 typedef struct lsr_xconnect
{
59 MPLS_LIST_ELEM(lsr_xconnect
) _outsegment
;
60 MPLS_LIST_ELEM(lsr_xconnect
) _insegment
;
61 MPLS_LIST_ELEM(lsr_xconnect
) _global
;
64 struct mpls_xconnect info
;
65 struct lsr_outsegment
*outsegment
;
66 struct lsr_insegment
*insegment
;
68 /* only valid in sets and gets */
69 uint32_t outsegment_index
;
70 uint32_t insegment_index
;
73 typedef struct lsr_ftn
{
75 MPLS_LIST_ELEM(lsr_ftn
) _outsegment
;
76 MPLS_LIST_ELEM(lsr_ftn
) _global
;
80 struct lsr_outsegment
*outsegment
;
82 /* only valid in sets and gets */
83 uint32_t outsegment_index
;
86 typedef struct lsr_if
{
88 MPLS_LIST_ELEM(lsr_if
) _global
;
89 struct lsr_outsegment_list outsegment_root
;
92 char name
[MPLS_MAX_IF_NAME
];
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
;