root/drivers/net/fddi/skfp/h/fddimib.h
/* SPDX-License-Identifier: GPL-2.0-or-later */
/******************************************************************************
 *
 *      (C)Copyright 1998,1999 SysKonnect,
 *      a business unit of Schneider & Koch & Co. Datensysteme GmbH.
 *
 *      The information in this file is provided "AS IS" without warranty.
 *
 ******************************************************************************/

/*
 * FDDI MIB
 */

/*
 * typedefs
 */

typedef u_long  Counter ;
typedef u_char  TimeStamp[8] ;
typedef struct fddi_addr LongAddr ;
typedef u_long  Timer_2 ;
typedef u_long  Timer ;
typedef u_short ResId ;
typedef u_short SMTEnum ;
typedef u_char  SMTFlag ;

typedef struct {
        Counter         count ;
        TimeStamp       timestamp ;
} SetCountType ;

/*
 * bits for bit string "available_path"
 */
#define MIB_PATH_P      (1<<0)
#define MIB_PATH_S      (1<<1)
#define MIB_PATH_L      (1<<2)

/*
 * bits for bit string PermittedPaths & RequestedPaths (SIZE(8))
 */
#define MIB_P_PATH_LOCAL        (1<<0)
#define MIB_P_PATH_SEC_ALTER    (1<<1)
#define MIB_P_PATH_PRIM_ALTER   (1<<2)
#define MIB_P_PATH_CON_ALTER    (1<<3)
#define MIB_P_PATH_SEC_PREFER   (1<<4)
#define MIB_P_PATH_PRIM_PREFER  (1<<5)
#define MIB_P_PATH_CON_PREFER   (1<<6)
#define MIB_P_PATH_THRU         (1<<7)

/*
 * enum current path
 */
#define MIB_PATH_ISOLATED       0
#define MIB_PATH_LOCAL          1
#define MIB_PATH_SECONDARY      2
#define MIB_PATH_PRIMARY        3
#define MIB_PATH_CONCATENATED   4
#define MIB_PATH_THRU           5

/*
 * enum PMDClass
 */
#define MIB_PMDCLASS_MULTI      0
#define MIB_PMDCLASS_SINGLE1    1
#define MIB_PMDCLASS_SINGLE2    2
#define MIB_PMDCLASS_SONET      3
#define MIB_PMDCLASS_LCF        4
#define MIB_PMDCLASS_TP         5
#define MIB_PMDCLASS_UNKNOWN    6
#define MIB_PMDCLASS_UNSPEC     7

/*
 * enum SMTStationStatus
 */
#define MIB_SMT_STASTA_CON      0
#define MIB_SMT_STASTA_SEPA     1
#define MIB_SMT_STASTA_THRU     2


struct fddi_mib {
        /*
         * private
         */
        u_char                  fddiPRPMFPasswd[8] ;
        struct smt_sid          fddiPRPMFStation ;

#ifdef  ESS
        /*
         * private variables for static allocation of the
         * End Station Support
         */
        u_long  fddiESSPayload ;        /* payload for static alloc */
        u_long  fddiESSOverhead ;       /* frame ov for static alloc */
        u_long  fddiESSMaxTNeg ;        /* maximum of T-NEG */
        u_long  fddiESSMinSegmentSize ; /* min size of the sync frames */
        u_long  fddiESSCategory ;       /* category for the Alloc req */
        short   fddiESSSynchTxMode ;    /* send all LLC frames as sync */
#endif  /* ESS */
#ifdef  SBA
        /*
         * private variables for the Synchronous Bandwidth Allocator
         */
        char    fddiSBACommand ;        /* holds the parsed SBA cmd */
        u_char  fddiSBAAvailable ;      /* SBA allocatable value */
#endif  /* SBA */

        /*
         * SMT standard mib
         */
        struct smt_sid          fddiSMTStationId ;
        u_short                 fddiSMTOpVersionId ;
        u_short                 fddiSMTHiVersionId ;
        u_short                 fddiSMTLoVersionId ;
        u_char                  fddiSMTManufacturerData[32] ;
        u_char                  fddiSMTUserData[32] ;
        u_short                 fddiSMTMIBVersionId ;

        /*
         * ConfigGrp
         */
        u_char                  fddiSMTMac_Ct ;
        u_char                  fddiSMTNonMaster_Ct ;
        u_char                  fddiSMTMaster_Ct ;
        u_char                  fddiSMTAvailablePaths ;
        u_short                 fddiSMTConfigCapabilities ;
        u_short                 fddiSMTConfigPolicy ;
        u_short                 fddiSMTConnectionPolicy ;
        u_short                 fddiSMTTT_Notify ;
        u_char                  fddiSMTStatRptPolicy ;
        u_long                  fddiSMTTrace_MaxExpiration ;
        u_short                 fddiSMTPORTIndexes[NUMPHYS] ;
        u_short                 fddiSMTMACIndexes ;
        u_char                  fddiSMTBypassPresent ;

        /*
         * StatusGrp
         */
        SMTEnum                 fddiSMTECMState ;
        SMTEnum                 fddiSMTCF_State ;
        SMTEnum                 fddiSMTStationStatus ;
        u_char                  fddiSMTRemoteDisconnectFlag ;
        u_char                  fddiSMTPeerWrapFlag ;

        /*
         * MIBOperationGrp
         */
        TimeStamp               fddiSMTTimeStamp ;
        TimeStamp               fddiSMTTransitionTimeStamp ;
        SetCountType            fddiSMTSetCount ;
        struct smt_sid          fddiSMTLastSetStationId ;

        struct fddi_mib_m {
                u_short         fddiMACFrameStatusFunctions ;
                Timer_2         fddiMACT_MaxCapabilitiy ;
                Timer_2         fddiMACTVXCapabilitiy ;

                /* ConfigGrp */
                u_char          fddiMACMultiple_N ;     /* private */
                u_char          fddiMACMultiple_P ;     /* private */
                u_char          fddiMACDuplicateAddressCond ;/* private */
                u_char          fddiMACAvailablePaths ;
                u_short         fddiMACCurrentPath ;
                LongAddr        fddiMACUpstreamNbr ;
                LongAddr        fddiMACDownstreamNbr ;
                LongAddr        fddiMACOldUpstreamNbr ;
                LongAddr        fddiMACOldDownstreamNbr ;
                SMTEnum         fddiMACDupAddressTest ;
                u_short         fddiMACRequestedPaths ;
                SMTEnum         fddiMACDownstreamPORTType ;
                ResId           fddiMACIndex ;

                /* AddressGrp */
                LongAddr        fddiMACSMTAddress ;

                /* OperationGrp */
                Timer_2         fddiMACT_Min ;  /* private */
                Timer_2         fddiMACT_ReqMIB ;
                Timer_2         fddiMACT_Req ;  /* private */
                Timer_2         fddiMACT_Neg ;
                Timer_2         fddiMACT_MaxMIB ;
                Timer_2         fddiMACT_Max ;  /* private */
                Timer_2         fddiMACTvxValueMIB ;
                Timer_2         fddiMACTvxValue ; /* private */
                Timer_2         fddiMACT_Pri0 ;
                Timer_2         fddiMACT_Pri1 ;
                Timer_2         fddiMACT_Pri2 ;
                Timer_2         fddiMACT_Pri3 ;
                Timer_2         fddiMACT_Pri4 ;
                Timer_2         fddiMACT_Pri5 ;
                Timer_2         fddiMACT_Pri6 ;

                /* CountersGrp */
                Counter         fddiMACFrame_Ct ;
                Counter         fddiMACCopied_Ct ;
                Counter         fddiMACTransmit_Ct ;
                Counter         fddiMACToken_Ct ;
                Counter         fddiMACError_Ct ;
                Counter         fddiMACLost_Ct ;
                Counter         fddiMACTvxExpired_Ct ;
                Counter         fddiMACNotCopied_Ct ;
                Counter         fddiMACRingOp_Ct ;

                Counter         fddiMACSMTCopied_Ct ;           /* private */
                Counter         fddiMACSMTTransmit_Ct ;         /* private */

                /* private for delta ratio */
                Counter         fddiMACOld_Frame_Ct ;
                Counter         fddiMACOld_Copied_Ct ;
                Counter         fddiMACOld_Error_Ct ;
                Counter         fddiMACOld_Lost_Ct ;
                Counter         fddiMACOld_NotCopied_Ct ;

                /* FrameErrorConditionGrp */
                u_short         fddiMACFrameErrorThreshold ;
                u_short         fddiMACFrameErrorRatio ;

                /* NotCopiedConditionGrp */
                u_short         fddiMACNotCopiedThreshold ;
                u_short         fddiMACNotCopiedRatio ;

                /* StatusGrp */
                SMTEnum         fddiMACRMTState ;
                SMTFlag         fddiMACDA_Flag ;
                SMTFlag         fddiMACUNDA_Flag ;
                SMTFlag         fddiMACFrameErrorFlag ;
                SMTFlag         fddiMACNotCopiedFlag ;
                SMTFlag         fddiMACMA_UnitdataAvailable ;
                SMTFlag         fddiMACHardwarePresent ;
                SMTFlag         fddiMACMA_UnitdataEnable ;

        } m[NUMMACS] ;
#define MAC0    0

        struct fddi_mib_a {
                ResId           fddiPATHIndex ;
                u_long          fddiPATHSbaPayload ;
                u_long          fddiPATHSbaOverhead ;
                /* fddiPATHConfiguration is built on demand */
                /* u_long               fddiPATHConfiguration ; */
                Timer           fddiPATHT_Rmode ;
                u_long          fddiPATHSbaAvailable ;
                Timer_2         fddiPATHTVXLowerBound ;
                Timer_2         fddiPATHT_MaxLowerBound ;
                Timer_2         fddiPATHMaxT_Req ;
        } a[NUMPATHS] ;
#define PATH0   0

        struct fddi_mib_p {
                /* ConfigGrp */
                SMTEnum         fddiPORTMy_Type ;
                SMTEnum         fddiPORTNeighborType ;
                u_char          fddiPORTConnectionPolicies ;
                struct {
                        u_char  T_val ;
                        u_char  R_val ;
                } fddiPORTMacIndicated ;
                SMTEnum         fddiPORTCurrentPath ;
                /* must be 4: is 32 bit in SMT format
                 * indices :
                 *      1       none
                 *      2       tree
                 *      3       peer
                 */
                u_char          fddiPORTRequestedPaths[4] ;
                u_short         fddiPORTMACPlacement ;
                u_char          fddiPORTAvailablePaths ;
                u_char          fddiPORTConnectionCapabilities ;
                SMTEnum         fddiPORTPMDClass ;
                ResId           fddiPORTIndex ;

                /* OperationGrp */
                SMTEnum         fddiPORTMaint_LS ;
                SMTEnum         fddiPORTPC_LS ;
                u_char          fddiPORTBS_Flag ;

                /* ErrorCtrsGrp */
                Counter         fddiPORTLCTFail_Ct ;
                Counter         fddiPORTEBError_Ct ;
                Counter         fddiPORTOldEBError_Ct ;

                /* LerGrp */
                Counter         fddiPORTLem_Reject_Ct ;
                Counter         fddiPORTLem_Ct ;
                u_char          fddiPORTLer_Estimate ;
                u_char          fddiPORTLer_Cutoff ;
                u_char          fddiPORTLer_Alarm ;

                /* StatusGrp */
                SMTEnum         fddiPORTConnectState ;
                SMTEnum         fddiPORTPCMState ;      /* real value */
                SMTEnum         fddiPORTPCMStateX ;     /* value for MIB */
                SMTEnum         fddiPORTPC_Withhold ;
                SMTFlag         fddiPORTHardwarePresent ;
                u_char          fddiPORTLerFlag ;

                u_char          fddiPORTMultiple_U ;    /* private */
                u_char          fddiPORTMultiple_P ;    /* private */
                u_char          fddiPORTEB_Condition ;  /* private */
        } p[NUMPHYS] ;
        struct {
                Counter         fddiPRIVECF_Req_Rx ;    /* ECF req received */
                Counter         fddiPRIVECF_Reply_Rx ;  /* ECF repl received */
                Counter         fddiPRIVECF_Req_Tx ;    /* ECF req transm */
                Counter         fddiPRIVECF_Reply_Tx ;  /* ECF repl transm */
                Counter         fddiPRIVPMF_Get_Rx ;    /* PMF Get rec */
                Counter         fddiPRIVPMF_Set_Rx ;    /* PMF Set rec */
                Counter         fddiPRIVRDF_Rx ;        /* RDF received */
                Counter         fddiPRIVRDF_Tx ;        /* RDF transmitted */
        } priv ;
} ;

/*
 * OIDs for statistics
 */
#define SMT_OID_CF_STATE        1       /* fddiSMTCF_State */
#define SMT_OID_PCM_STATE_A     2       /* fddiPORTPCMState port A */
#define SMT_OID_PCM_STATE_B     17      /* fddiPORTPCMState port B */
#define SMT_OID_RMT_STATE       3       /* fddiMACRMTState */
#define SMT_OID_UNA             4       /* fddiMACUpstreamNbr */
#define SMT_OID_DNA             5       /* fddiMACOldDownstreamNbr */
#define SMT_OID_ERROR_CT        6       /* fddiMACError_Ct */
#define SMT_OID_LOST_CT         7       /* fddiMACLost_Ct */
#define SMT_OID_LEM_CT          8       /* fddiPORTLem_Ct */
#define SMT_OID_LEM_CT_A        11      /* fddiPORTLem_Ct port A */
#define SMT_OID_LEM_CT_B        12      /* fddiPORTLem_Ct port B */
#define SMT_OID_LCT_FAIL_CT     9       /* fddiPORTLCTFail_Ct */
#define SMT_OID_LCT_FAIL_CT_A   13      /* fddiPORTLCTFail_Ct port A */
#define SMT_OID_LCT_FAIL_CT_B   14      /* fddiPORTLCTFail_Ct port B */
#define SMT_OID_LEM_REJECT_CT   10      /* fddiPORTLem_Reject_Ct */
#define SMT_OID_LEM_REJECT_CT_A 15      /* fddiPORTLem_Reject_Ct port A */
#define SMT_OID_LEM_REJECT_CT_B 16      /* fddiPORTLem_Reject_Ct port B */

/*
 * SK MIB
 */
#define SMT_OID_ECF_REQ_RX      20      /* ECF requests received */
#define SMT_OID_ECF_REPLY_RX    21      /* ECF replies received */
#define SMT_OID_ECF_REQ_TX      22      /* ECF requests transmitted */
#define SMT_OID_ECF_REPLY_TX    23      /* ECF replies transmitted */
#define SMT_OID_PMF_GET_RX      24      /* PMF get requests received */
#define SMT_OID_PMF_SET_RX      25      /* PMF set requests received */
#define SMT_OID_RDF_RX          26      /* RDF received */
#define SMT_OID_RDF_TX          27      /* RDF transmitted */