root/drivers/net/fddi/skfp/h/sba.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   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 */
  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

/* [<][>][^][v][top][bottom][index][help] */