brintos

brintos / linux-shallow public Read only

0
0
Text · 3.5 KiB · f30301f Raw
139 lines · c
1/* SPDX-License-Identifier: GPL-2.0-or-later */2/******************************************************************************3 *4 *	(C)Copyright 1998,1999 SysKonnect,5 *	a business unit of Schneider & Koch & Co. Datensysteme GmbH.6 *7 *	The information in this file is provided "AS IS" without warranty.8 *9 ******************************************************************************/10 11/*12 * Synchronous Bandwidth Allocation (SBA) structs13 */14 15#ifndef _SBA_16#define _SBA_17 18#include "mbuf.h"19#include "sba_def.h"20 21#ifdef	SBA22 23/* Timer Cell Template */24struct 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 variables33 */34struct 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 variables54 */55struct 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 70struct 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 actions82	 */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 parameters89	 */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 variables103	 */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 variables109	 */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 Support119	 */120struct s_ess {121 122	/*123	 * flags and counters124	 */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 control134	 */135	long	sync_bw ;		/* holds the allocaed sync bw */136	u_long	alloc_trans_id ;	/* trans id of the last alloc req */137} ;138#endif139