]>
Commit | Line | Data |
---|---|---|
2874c5fd | 1 | /* SPDX-License-Identifier: GPL-2.0-or-later */ |
1da177e4 LT |
2 | /****************************************************************************** |
3 | * | |
4 | * (C)Copyright 1998,1999 SysKonnect, | |
5 | * a business unit of Schneider & Koch & Co. Datensysteme GmbH. | |
6 | * | |
1da177e4 LT |
7 | * The information in this file is provided "AS IS" without warranty. |
8 | * | |
9 | ******************************************************************************/ | |
10 | ||
11 | /* | |
9aaeded7 | 12 | * Synchronous Bandwidth Allocation (SBA) structs |
1da177e4 LT |
13 | */ |
14 | ||
15 | #ifndef _SBA_ | |
16 | #define _SBA_ | |
17 | ||
aab3ac26 JK |
18 | #include "mbuf.h" |
19 | #include "sba_def.h" | |
1da177e4 LT |
20 | |
21 | #ifdef SBA | |
22 | ||
23 | /* Timer Cell Template */ | |
24 | struct timer_cell { | |
25 | struct timer_cell *next_ptr ; | |
26 | struct timer_cell *prev_ptr ; | |
27 | u_long start_time ; | |
28 | struct s_sba_node_vars *node_var ; | |
29 | } ; | |
30 | ||
31 | /* | |
32 | * Node variables | |
33 | */ | |
34 | struct s_sba_node_vars { | |
35 | u_char change_resp_flag ; | |
36 | u_char report_resp_flag ; | |
37 | u_char change_req_flag ; | |
38 | u_char report_req_flag ; | |
39 | long change_amount ; | |
40 | long node_overhead ; | |
41 | long node_payload ; | |
42 | u_long node_status ; | |
43 | u_char deallocate_status ; | |
44 | u_char timer_state ; | |
45 | u_short report_cnt ; | |
46 | long lastrep_req_tranid ; | |
47 | struct fddi_addr mac_address ; | |
48 | struct s_sba_sessions *node_sessions ; | |
49 | struct timer_cell timer ; | |
50 | } ; | |
51 | ||
52 | /* | |
53 | * Session variables | |
54 | */ | |
55 | struct s_sba_sessions { | |
56 | u_long deallocate_status ; | |
57 | long session_overhead ; | |
58 | u_long min_segment_size ; | |
59 | long session_payload ; | |
60 | u_long session_status ; | |
61 | u_long sba_category ; | |
62 | long lastchg_req_tranid ; | |
63 | u_short session_id ; | |
64 | u_char class ; | |
65 | u_char fddi2 ; | |
66 | u_long max_t_neg ; | |
67 | struct s_sba_sessions *next_session ; | |
68 | } ; | |
69 | ||
70 | struct s_sba { | |
71 | ||
72 | struct s_sba_node_vars node[MAX_NODES] ; | |
73 | struct s_sba_sessions session[MAX_SESSIONS] ; | |
74 | ||
75 | struct s_sba_sessions *free_session ; /* points to the first */ | |
76 | /* free session */ | |
77 | ||
78 | struct timer_cell *tail_timer ; /* points to the last timer cell */ | |
79 | ||
80 | /* | |
81 | * variables for allocation actions | |
82 | */ | |
83 | long total_payload ; /* Total Payload */ | |
84 | long total_overhead ; /* Total Overhead */ | |
85 | long sba_allocatable ; /* allocatable sync bandwidth */ | |
86 | ||
87 | /* | |
88 | * RAF message receive parameters | |
89 | */ | |
90 | long msg_path_index ; /* Path Type */ | |
91 | long msg_sba_pl_req ; /* Payload Request */ | |
92 | long msg_sba_ov_req ; /* Overhead Request */ | |
93 | long msg_mib_pl ; /* Current Payload for this Path */ | |
94 | long msg_mib_ov ; /* Current Overhead for this Path*/ | |
95 | long msg_category ; /* Category of the Allocation */ | |
96 | u_long msg_max_t_neg ; /* longest T_Neg acceptable */ | |
97 | u_long msg_min_seg_siz ; /* minimum segement size */ | |
98 | struct smt_header *sm ; /* points to the rec message */ | |
99 | struct fddi_addr *msg_alloc_addr ; /* Allocation Address */ | |
100 | ||
101 | /* | |
102 | * SBA variables | |
103 | */ | |
104 | u_long sba_t_neg ; /* holds the last T_NEG */ | |
105 | long sba_max_alloc ; /* the parsed value of SBAAvailable */ | |
106 | ||
107 | /* | |
108 | * SBA state machine variables | |
109 | */ | |
110 | short sba_next_state ; /* the next state of the SBA */ | |
111 | char sba_command ; /* holds the execuded SBA cmd */ | |
112 | u_char sba_available ; /* parsed value after possible check */ | |
113 | } ; | |
114 | ||
115 | #endif /* SBA */ | |
116 | ||
117 | /* | |
118 | * variables for the End Station Support | |
119 | */ | |
120 | struct s_ess { | |
121 | ||
122 | /* | |
123 | * flags and counters | |
124 | */ | |
125 | u_char sync_bw_available ; /* is set if sync bw is allocated */ | |
126 | u_char local_sba_active ; /* set when a local sba is available */ | |
127 | char raf_act_timer_poll ; /* activate the timer to send allc req */ | |
128 | char timer_count ; /* counts every timer function call */ | |
129 | ||
130 | SMbuf *sba_reply_pend ; /* local reply for the sba is pending */ | |
131 | ||
132 | /* | |
133 | * variables for the ess bandwidth control | |
134 | */ | |
135 | long sync_bw ; /* holds the allocaed sync bw */ | |
136 | u_long alloc_trans_id ; /* trans id of the last alloc req */ | |
137 | } ; | |
138 | #endif |