-- *****************************************************************
-- FS-FILE-MIB.mib:  FS File MIB file
--
-- March 2002, Wuzg
--
-- Copyright (c) 2002 by FS.COM Inc..
-- All rights reserved.
-- 
-- *****************************************************************
--

FS-FILE-MIB DEFINITIONS ::= BEGIN

IMPORTS
        MODULE-IDENTITY,
        OBJECT-TYPE,
        IpAddress,
        Gauge32,
        Integer32
                FROM SNMPv2-SMI
        TruthValue,
        DisplayString,
        RowStatus
                FROM SNMPv2-TC
        MODULE-COMPLIANCE,
        OBJECT-GROUP
                FROM SNMPv2-CONF
        fsMgmt
                FROM FS-SMI;

fsFileMIB MODULE-IDENTITY
        LAST-UPDATED "200203200000Z"
        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 file mibs."
        REVISION      "200203200000Z"
        DESCRIPTION
                "Initial version of this MIB module."
        ::= { fsMgmt 11}

fsFileMIBObjects OBJECT IDENTIFIER ::= { fsFileMIB 1 }

fsFileTransTable OBJECT-TYPE
        SYNTAX SEQUENCE OF FSFileTransEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "list of file transfer parameters."
        ::= { fsFileMIBObjects 1 }
        
fsFileTransEntry OBJECT-TYPE
        SYNTAX FSFileTransEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Entry of file transfer parameters."
        INDEX { fsFileTransIndex }
        ::= { fsFileTransTable 1 }
    
FSFileTransEntry ::=
        SEQUENCE {
        fsFileTransIndex Integer32,
        fsFileTransMeans    INTEGER,
        fsFileTransOperType INTEGER,
        fsFileTransSrcFileName DisplayString,
        fsFileTransDescFileName DisplayString,
        fsFileTransServerAddr IpAddress,
        fsFileTransResult INTEGER,
        fsFileTransComplete TruthValue,
        fsFileTransDataLength Gauge32,
        fsFileTransEntryStatus RowStatus,
        fsFileTransServerAddr6 OCTET STRING,
        fsFileTransUserName DisplayString,
        fsFileTransPassWord DisplayString,
        fsFileTransFailedReason DisplayString,
        fsFileTransFileType INTEGER,
        fsFileTransServerPort Integer32,
        fsFileTransPortType  INTEGER
        }
    
fsFileTransIndex OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "A value unique idenify the entry in the file transfer table.
            the index is assigned by agent random."
        ::= { fsFileTransEntry 1 }
    
fsFileTransMeans     OBJECT-TYPE
        SYNTAX     INTEGER{
                 tftp(1),
                 xmodem(2),
                 other(3)
        }
        MAX-ACCESS read-create
        STATUS     current
        DESCRIPTION
                "The way to be used for any copy. Transport file by xmodem work in 
                 only in outband.other(3) mean transfer file by a way other than tftp(1) 
                 and xmodem(2)"
        DEFVAL  { tftp }
        ::= { fsFileTransEntry 2 }
    
fsFileTransOperType OBJECT-TYPE
        SYNTAX INTEGER {
            upload(1),      -- upload a file to the board
            download(2),    -- download file frome the board
            synchronize(3)  -- synchronize file 
        }
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "This object can be used for specifying the file transfer
            operation type, upload or download. using tftp service 
            file transfer can implemente between the station and agent.
            in current agent,if synchronizing file,this object has no weight."
        ::= { fsFileTransEntry 3 }
    
fsFileTransSrcFileName OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "This object tell the tftp client to know the file name
            required to be received in tftp transfer mode;and send the file name list 
            which separate with '\t' to synchronizing server."
        ::= { fsFileTransEntry 4 }
        
fsFileTransDescFileName OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "File name the file will save as. The object has no weight to file synchronizing."
        ::= { fsFileTransEntry 5 }        
    
fsFileTransServerAddr OBJECT-TYPE
        SYNTAX IpAddress
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "This object tell the address of transfer destination
            when required for file transmittion. "
        ::= { fsFileTransEntry 6 }
    
fsFileTransResult OBJECT-TYPE
        SYNTAX INTEGER {
            success(1),
            failure(2),
            parametersIllegel(3),
            timeout(4)
        }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "While the status of this entry is completed, this field of this
            entry is valid, and carry the operation result of file transfer."
        ::= { fsFileTransEntry 7 }
        
fsFileTransComplete OBJECT-TYPE
        SYNTAX TruthValue
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "while the file transfer of use parameters stored by this entry is
            completed the value of this field will be true(1), and if not completed
            false(2)."
        ::= { fsFileTransEntry 8 }

fsFileTransDataLength OBJECT-TYPE
        SYNTAX Gauge32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "the file length transferred, after the transfer is complete, this
            value is come to valid -- the valude of field fsFileTransComplete
            is true(1)."
        ::= { fsFileTransEntry 9 }
    
fsFileTransEntryStatus OBJECT-TYPE
        SYNTAX RowStatus
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "entry status of this entry. and the means in this enviraments can
            reffer to the text-convention definition of the RowStatus."
        ::= { fsFileTransEntry 10 }

fsFileTransServerAddr6 OBJECT-TYPE
        SYNTAX OCTET STRING (SIZE (16))
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "This object tell the ipv6 address of transfer destination
            when required for file transmittion. "
        ::= { fsFileTransEntry 11 }

fsFileTransUserName OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "UserName"
        ::= { fsFileTransEntry 12 }

fsFileTransPassWord OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "password"
        ::= { fsFileTransEntry 13 }

fsFileTransFailedReason OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "while upgrade failed, this fill tell the user why is failed"
        ::= { fsFileTransEntry 14 }

fsFileTransFileType OBJECT-TYPE
        SYNTAX INTEGER {
            software-version-file(1),
            config-file(2),
            log-file(3)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "FileType
             1 software-version-file,
             2 config-file
             3 log-file "
        ::= { fsFileTransEntry 15 }

fsFileTransServerPort OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "This object tell the port of transfer destination
             when required for file transmittion."
        ::= { fsFileTransEntry 16 }
        
fsFileTransPortType	OBJECT-TYPE
        SYNTAX INTEGER{
                       byInterfacePort(1), --transfer files by Interface Port.	
                       byMgmtPort(2)     --transfer files by MGMT Port.			
                      }
        MAX-ACCESS read-write
        STATUS 	   current
        DESCRIPTION
              "This object tell the port type of transfer destination
                when required for file transmittion."
        ::= { fsFileTransEntry 17 }
			  
--=========================================
-- end fsFileTransTable 
--=========================================

fsFileSystemMaxRoom OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "the max room of file system in units of MB."
        ::= { fsFileMIBObjects 2 }

fsFileSystemAvailableRoom OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "the available room of file system in units of MB."
        ::= { fsFileMIBObjects 3 }


-- traps define here
fsFileMIBTraps       OBJECT IDENTIFIER ::= { fsFileMIB 0 }

fsFileSystemUpdateFailTrap  NOTIFICATION-TYPE
        OBJECTS   {fsFileTransFailedReason}
        STATUS current
        DESCRIPTION
   	    "This trap is generated when the software update failed."
        ::= { fsFileMIBTraps 1 }


-- conformance information

fsFileMIBConformance OBJECT IDENTIFIER ::= { fsFileMIB 2 }
fsFileMIBCompliances OBJECT IDENTIFIER ::= { fsFileMIBConformance 1 }
fsFileMIBGroups      OBJECT IDENTIFIER ::= { fsFileMIBConformance 2 }


-- compliance statements

fsFileMIBCompliance MODULE-COMPLIANCE
        STATUS  current
        DESCRIPTION
                "The compliance statement for entities which implement
                the FS File MIB"
        MODULE  -- this module
                MANDATORY-GROUPS { fsFileMIBGroup }
                GROUP       fsFileTransMeansMIBGroup
                DESCRIPTION
                     "This group is mandatory only for those system which support
                     other transport protocal but tftp."   
        ::= { fsFileMIBCompliances 1 }
        
        
-- units of conformance

fsFileMIBGroup OBJECT-GROUP
        OBJECTS {
                fsFileTransIndex,
                fsFileTransOperType,
                fsFileTransSrcFileName,
                fsFileTransDescFileName,
                fsFileTransServerAddr,
                fsFileTransResult,
                fsFileTransComplete,
                fsFileTransDataLength,
                fsFileTransEntryStatus,
                fsFileTransServerAddr6,
                fsFileTransUserName,
                fsFileTransPassWord,
                fsFileTransFailedReason,
                fsFileTransFileType,
                fsFileTransServerPort,
                fsFileTransPortType,
                fsFileSystemMaxRoom,
                fsFileSystemAvailableRoom
        }
        STATUS  current
        DESCRIPTION
                "A collection of objects providing file ability to a
                FS agent."
        ::= { fsFileMIBGroups 1 }      
        
fsFileTransMeansMIBGroup OBJECT-GROUP
        OBJECTS {
            fsFileTransMeans
        }
        STATUS  current
        DESCRIPTION
                "A collection of objects providing fsFileTransMeans to a
                FS agent."
        ::= { fsFileMIBGroups 2 }            
        
END
