linux/drivers/net/fddi/skfp/h/sba.h
<<
>>
Prefs
   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
 139