350 lines
9.6 KiB
C
350 lines
9.6 KiB
C
/******************************************************************************
|
|
*
|
|
* (C)Copyright 1998,1999 SysKonnect,
|
|
* a business unit of Schneider & Koch & Co. Datensysteme GmbH.
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* 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 */
|