 --
 -- WWP-FILE-TRANSFER-MIB.my
 --

 --  This module provides authoritative definitions for WWP's
 --  enterprise-specific SNMP API to transfer the files 
 --  and system images. This MIB uses TFTP to transfer the
 --  file.
 --  This module will be extended, as required.
 
 WWP-FILE-TRANSFER-MIB DEFINITIONS ::= BEGIN

 IMPORTS 		
   NOTIFICATION-TYPE, IpAddress, Integer32, Unsigned32, OBJECT-TYPE, MODULE-IDENTITY			
	    FROM SNMPv2-SMI			
   DisplayString, MacAddress, DateAndTime, RowStatus, TruthValue, TEXTUAL-CONVENTION			
	    FROM SNMPv2-TC						
   wwpModules			
	    FROM WWP-SMI;
	
	
 wwpFileTransferMIB MODULE-IDENTITY
	    LAST-UPDATED "200104031700Z"
	    ORGANIZATION "World Wide Packets, Inc"
	    CONTACT-INFO
		    "   Mib Meister
		  	Postal: World Wide Packets
		        P.O. Box 950
		        Veradale, WA 99037
		        USA
		 	Phone:  +1 509 242 9000
			Email:  mib.meister@worldwidepackets.com"
	    DESCRIPTION
		    "The MIB module for the WWP TFTP Operation to download a file."
	    REVISION    "200104031700Z"
	    DESCRIPTION
		    "Initial creation."
	    ::= { wwpModules 7 }
						
 --
 -- Node definitions
 --
	
 wwpFileTransferMIBObjects OBJECT IDENTIFIER ::= { wwpFileTransferMIB 1 }
 
 --
 -- System Atributes
 --
 wwpFileTransfer OBJECT IDENTIFIER ::= { wwpFileTransferMIBObjects 1 }
 
 
 -- Notifications 
  
 wwpFileTransferMIBNotificationPrefix  OBJECT IDENTIFIER ::= { wwpFileTransferMIB 2 } 
 wwpFiletransferMIBNotifications       OBJECT IDENTIFIER ::=  
                       { wwpFileTransferMIBNotificationPrefix 0 }

 -- Conformance information 
 
 wwpFileTransferMIBConformance OBJECT IDENTIFIER ::= { wwpFileTransferMIB 3 } 
 wwpFileTransferMIBCompliances OBJECT IDENTIFIER ::= { wwpFileTransferMIBConformance 1 } 		
 wwpFileTransferMIBGroups      OBJECT IDENTIFIER ::= { wwpFileTransferMIBConformance 2 }

 FileTransferState ::= TEXTUAL-CONVENTION
	STATUS current
	DESCRIPTION
		"The state of a File transfer operation. 
		 The description of each state is given below:

		 idle: 	              No file transfer operation is in place.

		 sending:	      this state signifies that the file is being
				      sent to the tftp server.

 		 receiving: 	      this state signifies that the file is being
				      received from the tftp server.

		 transferComplete:    the state when a file transfer request is
				      successfully completed.

		 failed:	      the file transfer request was unsuccesful.
		"
	SYNTAX	INTEGER {
		idle(1),
		sending(2),
                receiving(3), 
		transferComplete(4),
		failed(5)
	}

 FileTransferFailCause ::= TEXTUAL-CONVENTION
	STATUS current
	DESCRIPTION
		"The reason a File transfer request failed."
	SYNTAX INTEGER {
                      noStatus(1),
                      timeout(2),
                      networkError(3),
                      noSpace(4),
		      invalidFileName(5),
                      commandCompleted(6),
	              internalError(7),
                      commandFileParseError(8)
                }
	
 wwpFTransferOp OBJECT-TYPE
     SYNTAX       INTEGER {
		       none(0),
		       sendFile(1),
		       getFile(2),
		       getCmdFile(3)
		  }
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
	     "Used to transfer file(s) between a TFTP server (remote)
	     and the device(local).  All transfers are binary. 				
	     There are three types of file transfers:
		
	          sendFile sends a file to the host TFTP server.
				
		  getFile receives a file from the host server.
				
		  getCmdFile gets the specified file from the host
		  and parses that file for additional operations to be performed.
                  This is the mechanism used to upgrade the device with new software."
      DEFVAL { none }
      ::= { wwpFileTransfer 1 } 
	
 wwpFTransferServerAddr OBJECT-TYPE
     SYNTAX       IpAddress
     MAX-ACCESS   read-write
     STATUS       current
     DESCRIPTION
	     "The ip address of the tftp server from (or to) which 
             to transfer the file.Address must be a unicast address that 
             is reachable from the agent and no firewalls/acls preventing 
             tftp datagrams from being transferred."
     DEFVAL { 0 }
     ::= { wwpFileTransfer 2 }

 wwpFTransferRemoteFilename OBJECT-TYPE
     SYNTAX      DisplayString
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
	     "The file name (including the path, if applicable) to be retrieved from the 
             tftp server. If the switch/device is downloading a file , then this should be 
             name of the file on the remote server. Length of filename string must 
             not exceed 255 alpha-numeric characters, no spaces in filenames."
     DEFVAL { "" }        
     ::= { wwpFileTransfer 3 }

 wwpFTransferLocalFilename OBJECT-TYPE
     SYNTAX      DisplayString
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
	     "The file name (including the path, if applicable) to be written to.
             If the switch/device is downloading a file ,then this should be 
             name of the file on the switch/device. Length of filename string must 
             not exceed 255 alpha-numeric characters, no spaces in filenames. By default
             it will have the same value as of wwpFTransferRemoteFilename."
     ::= { wwpFileTransfer 4 }
 

 wwpFTransferActivate  OBJECT-TYPE
     SYNTAX          TruthValue
     MAX-ACCESS      read-write
     STATUS          current
     DESCRIPTION
    	     "Activate the file transfer operation with a value of True(1). 
             The object will return to 'false' once the file transfer is completed.
             Poll wwpFTransferStatus for current status. 
	     Default value is False. wwpFTransferRemoteFileName, wwpFTransferServerAddress
             and wwpFTransferOp must be valid prior to setting this object to True."
       DEFVAL { false }                
       ::= { wwpFileTransfer 5 }		

 wwpFTransferNotifOnCompletion OBJECT-TYPE
     SYNTAX      TruthValue
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
             "Specifies whether or not a wwpFTransferCompletion
             notification should be issued on completion of the tftp
             transfer. If such a notification is desired, it is the
             responsibility of the management entity to ensure that the
             SNMP administrative model is configured in such a way as to
             allow the notification to be delivered."
     DEFVAL { true }
     ::= { wwpFileTransfer 6 }

 wwpFTransferStatus OBJECT-TYPE
     SYNTAX        FileTransferState
     MAX-ACCESS    read-only
     STATUS        current
     DESCRIPTION
             "Specifies the state of this file transfer request. If no file
             transfer request is being processed , then the wwpFTransferStatus
             should be 'idle'."
    ::= { wwpFileTransfer 7 }

 wwpFTransferFailCause OBJECT-TYPE
     SYNTAX       FileTransferFailCause
     MAX-ACCESS   read-only
     STATUS       current
     DESCRIPTION
             "The reason why the file transfer operation failed. If no file
             transfer request is being processed , then the wwpFTransferFileCause
             should be 'noStatus'."           
    ::= { wwpFileTransfer 8 }

 
 wwpFTransferNotificationStatus OBJECT-TYPE
     SYNTAX       INTEGER  {
                     downloadSuccess(0),
                     tftpServerNotFound(1),
                     couldNotGetFile(2),
                     cmdFileParseError(3),
                     internalFilesystemError(4),
                     inValidFileContents(5),
                     flashOffline(6),
                     noStatus(7),
                     putSuccessful(8),
                     couldNotPutFile(9),                    
                     badFileCrc(10),
                     allFilesSkipped(11)
                  }
     --MAX-ACCESS   accessible-for-notify
     MAX-ACCESS     read-only
     STATUS       current
     DESCRIPTION
             "The status of the file transfer which is to be reported 
             via the FileTransfer Notification."           
    ::= { wwpFileTransfer 9 }

 wwpFTransferNotificationInfo OBJECT-TYPE
     SYNTAX         DisplayString (SIZE (0..127))
     MAX-ACCESS     read-only
     STATUS       current
     DESCRIPTION
             "The string explaining the error code in detail or the additional
             info for the file transfer completion."           
    ::= { wwpFileTransfer 10 }

 wwpFTransferCompletion NOTIFICATION-TYPE
	OBJECTS	   {	wwpFTransferRemoteFilename,
                        wwpFTransferLocalFilename,
			wwpFTransferNotificationStatus,
			wwpFTransferNotificationInfo
		   }
	STATUS	   current
	DESCRIPTION
		"A wwpFTransferCompletion notification is sent at the completion
		of a file transfer request."
	::= { wwpFiletransferMIBNotifications 1 }

 wwpFTransferCmdParseError NOTIFICATION-TYPE
	OBJECTS	   {	wwpFTransferRemoteFilename
		   }
	STATUS	   deprecated
	DESCRIPTION
		"A wwpFTransferCmdParseError notification is sent if the parsing
		of the cmd file returns an error."
	::= { wwpFiletransferMIBNotifications 2 }

 END
 
 -- 
 -- WWP-TFTP-MIB
 --
