cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

sba.h (3565B)


      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) structs
     13 */
     14 
     15#ifndef _SBA_
     16#define _SBA_
     17
     18#include "mbuf.h"
     19#include "sba_def.h"
     20
     21#ifdef	SBA
     22
     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 variables
     33 */
     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 variables
     54 */
     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 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	 */
    120struct 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