-- *****************************************************************
-- FS-WAN-FPM-MIB.mib:  FS Link-Detect MIB file
--
-- March 2017, meishichao
--
-- Copyright (c) 2017 by FS.COM Inc..
-- All rights reserved.
-- 
-- *****************************************************************
--

FS-WAN-FPM-MIB DEFINITIONS ::= BEGIN

IMPORTS
        MODULE-IDENTITY,
        NOTIFICATION-TYPE,
        OBJECT-TYPE,
		Unsigned32
                FROM SNMPv2-SMI   
        RowStatus, 
        DateAndTime
                FROM SNMPv2-TC
		InetAddressType, InetAddress
                FROM INET-ADDRESS-MIB
        MODULE-COMPLIANCE,
        OBJECT-GROUP
                FROM SNMPv2-CONF
        IfIndex
                FROM FS-TC
        fsMgmt
                FROM FS-SMI;
                
fsWanFpmMIB MODULE-IDENTITY
        LAST-UPDATED "201701200000Z"
        ORGANIZATION "FS.COM Inc.."
        CONTACT-INFO
                " 
                Tel: 400-865-2852 

                E-mail: https://www.fs.com/live_chat_service_mail.html"
        DESCRIPTION
                "This module defines fs wan-fpm link detect mibs."
        REVISION      "201701200000Z"
        DESCRIPTION
                "Initial version of this MIB module."
        ::= { fsMgmt 153}

fsWanFpmMIBObjects OBJECT IDENTIFIER ::= { fsWanFpmMIB 1 }
fsWanFpmMonitor OBJECT IDENTIFIER ::= { fsWanFpmMIB 2 }
-- ===============================================
-- Results Table
-- ===============================================
    fsWanFpmResultsTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF FSWanFpmResultsEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "The results of these operations are stored in the fsWanFpmResultsTable."
        ::= { fsWanFpmMIBObjects 1 }

    fsWanFpmResultsEntry OBJECT-TYPE
        SYNTAX      FSWanFpmResultsEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "Defines an entry in the fsWanFpmResultsTable.  The
            fsWanFpmResultsTable has the same indexing as the
            fsWanFpmCtlTable so that a fsWanFpmResultsEntry
            corresponds to the fsWanFpmCtlEntry that caused it to
            be created."
        INDEX { fsWanFpmResultsIfIndex }
        ::= { fsWanFpmResultsTable 1 }

    FSWanFpmResultsEntry ::=
        SEQUENCE { 
		   fsWanFpmResultsIfIndex             IfIndex,
		   fsWanFpmResultsMode                INTEGER,
		   fsWanFpmResultsPeerIp              InetAddress,
           fsWanFpmResultsNetworkAF           InetAddressType,
		   fsWanFpmResultsSessStatus          INTEGER,
		   fsWanFpmResultsLinkQuality         INTEGER,
		   fsWanFpmResultsWorseAction         INTEGER,
		   fsWanFpmResultsRTT                 Unsigned32,
		   fsWanFpmResultsJitter              Unsigned32,
		   fsWanFpmResultsUpDroprate          Unsigned32,
		   fsWanFpmResultsDownDroprate        Unsigned32,
		   fsWanFpmResultsByteTxSpeed         Unsigned32,
		   fsWanFpmResultsByteRxSpeed         Unsigned32,
		   fsWanFpmResultsPktsTxSpeed         Unsigned32,
		   fsWanFpmResultsPktsRxSpeed         Unsigned32,
           fsWanFpmResultsCresteTime          DateAndTime,
		   fsWanFpmResultsTrapType            INTEGER,
		   fsWanFpmResultsSessId              Unsigned32
        }
 
    fsWanFpmResultsIfIndex OBJECT-TYPE
        SYNTAX      IfIndex 
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The current interface index which is detected."
        ::= { fsWanFpmResultsEntry 1 }
 
    fsWanFpmResultsMode OBJECT-TYPE
        SYNTAX      INTEGER {
                             passive(1),   -- detect is working in active mode
                             active(2)  -- detect is working in passive mode
                           }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Reflects the Link-Detect mode of a interface:
                active(1),   -- detect is working in active mode
                passive(2)  -- detect is working in passive mode."
        ::= { fsWanFpmResultsEntry 2 }

    fsWanFpmResultsPeerIp OBJECT-TYPE
        SYNTAX      InetAddress
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "This object reports the IP address which belongs to the other side of the detected link."
        ::= { fsWanFpmResultsEntry 3 }

    fsWanFpmResultsNetworkAF OBJECT-TYPE
        SYNTAX      InetAddressType
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Reflects the type of the Link-Detect protocal."
        ::= { fsWanFpmResultsEntry 4 }
		
    fsWanFpmResultsSessStatus OBJECT-TYPE
        SYNTAX      INTEGER {
                             up(1),    -- detect protocal is UP
                             down(2),  -- detect protocal is DOWN
							 reserved(3)
                           }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Reflects the state of the Link-Detect protocal:
                UP(1),   -- detect session is UP
                DOWN(2)  -- detect session is DOWN."
        ::= { fsWanFpmResultsEntry 5 }
		
    fsWanFpmResultsLinkQuality OBJECT-TYPE
        SYNTAX      INTEGER {
                             well(1),   -- Link quality is good
                             worse(2),  -- Link quality is worse
							 reserved(3)
                           }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Reflects the quality of a Link:
                well(1),   -- Link quality is good
                worse(2)  -- Link quality is worse."
        ::= { fsWanFpmResultsEntry 6 }
		
		
    fsWanFpmResultsWorseAction OBJECT-TYPE
        SYNTAX      INTEGER {
                             forward(1),    -- forward the packets deal when the Link quality is getting worse
                             unforward(2)  -- drop the packets deal when the Link quality is getting worse
                           }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The action which will be taken when the Link quality is getting worse:
                forward(1),    -- forward the packets deal when the Link quality is getting worse
                unforward(2)  -- drop the packets deal when the Link quality is getting worse."
        ::= { fsWanFpmResultsEntry 7 }
		
    fsWanFpmResultsRTT OBJECT-TYPE
        SYNTAX      Unsigned32 
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The RTT of the link,us."
        ::= { fsWanFpmResultsEntry 8 }
		
    fsWanFpmResultsJitter OBJECT-TYPE
        SYNTAX      Unsigned32 
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The jitter of the link,us."
        ::= { fsWanFpmResultsEntry 9 }
		
    fsWanFpmResultsUpDroprate OBJECT-TYPE
        SYNTAX      Unsigned32 
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The droprate in send direction of the link."
        ::= { fsWanFpmResultsEntry 10 }
		
    fsWanFpmResultsDownDroprate OBJECT-TYPE
        SYNTAX      Unsigned32 
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The droprate in receive direction of the link."
        ::= { fsWanFpmResultsEntry 11 }
		
    fsWanFpmResultsByteTxSpeed OBJECT-TYPE
        SYNTAX      Unsigned32 
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The byte speed in send direction of the link."
        ::= { fsWanFpmResultsEntry 12 }
		
    fsWanFpmResultsByteRxSpeed OBJECT-TYPE
        SYNTAX      Unsigned32 
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The byte speed in receive direction of the link."
        ::= { fsWanFpmResultsEntry 13 }
		
    fsWanFpmResultsPktsTxSpeed OBJECT-TYPE
        SYNTAX      Unsigned32 
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The packets speed in send direction of the link."
        ::= { fsWanFpmResultsEntry 14 }
		
    fsWanFpmResultsPktsRxSpeed OBJECT-TYPE
        SYNTAX      Unsigned32 
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The packets speed in receive direction of the link."
        ::= { fsWanFpmResultsEntry 15 }
		
    fsWanFpmResultsCresteTime OBJECT-TYPE
        SYNTAX      DateAndTime
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "This object reports when the detect results was created."
        ::= { fsWanFpmResultsEntry 16 }
		
    fsWanFpmResultsTrapType OBJECT-TYPE
        SYNTAX      INTEGER {
                             getPeriodResult(1),   -- get the newest period detect result
                             getTickResult(2),     -- get the newest single tick detect result
							 reserved(3)
                           }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "This object reports the IP address which belongs to the other side of the detected link
			    getPeriodResult(1),   -- get the newest period detect result
                getTickResult(2)      -- get the newest single tick detect result."
        ::= { fsWanFpmResultsEntry 17 }
    fsWanFpmResultsSessId OBJECT-TYPE
        SYNTAX      Unsigned32 
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The detect session id of the link."
        ::= { fsWanFpmResultsEntry 18 }
		
-- ===============================================
-- definition of traps.
-- ===============================================
    fsWanFpmMonitorTRAP OBJECT IDENTIFIER ::= { fsWanFpmMonitor 1 }
    fsWanFpmNotifications OBJECT IDENTIFIER ::= { fsWanFpmMonitorTRAP 1 }

    fsWanFpmLqWell NOTIFICATION-TYPE
        OBJECTS { 
                  fsWanFpmResultsIfIndex, 
                  fsWanFpmResultsSessStatus,   
                  fsWanFpmResultsLinkQuality
                }
        STATUS     current
        DESCRIPTION
            "This notification is generated when an interface link quality is getting well."
        ::= { fsWanFpmNotifications 1 } 
        
    fsWanFpmLqBad NOTIFICATION-TYPE
        OBJECTS { 
                  fsWanFpmResultsIfIndex, 
                  fsWanFpmResultsSessStatus,   
                  fsWanFpmResultsLinkQuality
                }
        STATUS     current
        DESCRIPTION
            "This notification is generated when an interface link quality is getting bad."
        ::= { fsWanFpmNotifications 2 }
		
   END
