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

FS-AP-MIB DEFINITIONS ::= BEGIN

IMPORTS
        MODULE-IDENTITY,
        OBJECT-TYPE,
        Integer32
                FROM SNMPv2-SMI
        PortList
                FROM Q-BRIDGE-MIB
        DisplayString,
        TruthValue
                FROM SNMPv2-TC
        MODULE-COMPLIANCE,
        OBJECT-GROUP
                FROM SNMPv2-CONF
--        ConfigStatus,
        MemberMap,
        IfIndex
                FROM FS-TC
        fsMgmt
                FROM FS-SMI;

fsApMIB 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 aggregate port(AP) mibs."
        REVISION      "200203200000Z"
        DESCRIPTION
                "Initial version of this MIB module."
        ::= { fsMgmt 7}

fsApMIBObjects OBJECT IDENTIFIER ::= { fsApMIB 1 }


fsApMaxNumber OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Number of MAX aggregate ports this system supported."
        ::= { fsApMIBObjects 1 }

fsApCurrentNumber OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Number of current aggregate ports this system have."
        ::= { fsApMIBObjects 2 }
    
    
fsApPortConfigTable OBJECT-TYPE
        SYNTAX SEQUENCE OF FSApPortConfigEntry
        MAX-ACCESS not-accessible
        STATUS obsolete
        DESCRIPTION
            "aggregate port table."
        ::= { fsApMIBObjects 3 }
    
fsApPortConfigEntry OBJECT-TYPE
        SYNTAX FSApPortConfigEntry
        MAX-ACCESS not-accessible
        STATUS obsolete
        DESCRIPTION
            "list of aggregate port and it's port group table."
        INDEX { fsApPortConfigPortIndex }
        ::= { fsApPortConfigTable 1 }
    
FSApPortConfigEntry ::=
        SEQUENCE {
        fsApPortConfigPortIndex IfIndex,
        fsApPortConfigApIndex IfIndex
        }    
    
fsApPortConfigPortIndex OBJECT-TYPE
        SYNTAX IfIndex
        MAX-ACCESS not-accessible
        STATUS obsolete
        DESCRIPTION
            " "
        ::= { fsApPortConfigEntry 1 }  
        
fsApPortConfigApIndex OBJECT-TYPE
        SYNTAX IfIndex
        MAX-ACCESS read-write
        STATUS obsolete
        DESCRIPTION
            "Set this value to 1  fsApMaxNumber indicate that add this value
            to that aggregate port which this aggregate port must be valid. 
            It separates this port from aggregate port to set this value to 0 "
        ::= { fsApPortConfigEntry 2 }          
    
    
fsApTable OBJECT-TYPE
        SYNTAX SEQUENCE OF FSApEntry
        MAX-ACCESS not-accessible
        STATUS obsolete
        DESCRIPTION
            "Aggregate ports table."
        ::= { fsApMIBObjects 4 }
    
fsApEntry OBJECT-TYPE
        SYNTAX FSApEntry
        MAX-ACCESS not-accessible
        STATUS obsolete
        DESCRIPTION
            "list of aggregate ports and it's distribution table."
        INDEX { fsApIndex }
        ::= { fsApTable 1 }
    
FSApEntry ::=
        SEQUENCE {
        fsApIndex IfIndex,
        fsApMemberAction MemberMap,
        fsApPossibleMember MemberMap, 
        fsApMaxPtNumber Integer32
--        fsApEntryStatus ConfigStatus
        }
    
fsApIndex OBJECT-TYPE
        SYNTAX IfIndex
        MAX-ACCESS read-only
        STATUS obsolete
        DESCRIPTION
            "Aggregate ports index."
        ::= { fsApEntry 1 }
 
fsApMemberAction OBJECT-TYPE
        SYNTAX MemberMap
        MAX-ACCESS read-only
        STATUS obsolete
        DESCRIPTION
            "Each octet in this member action map assigned to a port,
            when the octet's value is 1 indicates the port of this octect
            is in the aggregate port. and 0 indicates the port is not in the aggregate port.
            this object can be modified only when the status of this entry 
            is invalid."
        ::= { fsApEntry 2 }

fsApPossibleMember OBJECT-TYPE
        SYNTAX MemberMap
        MAX-ACCESS read-only
        STATUS obsolete
        DESCRIPTION
           "Each octet in this member action map assigned to a port,
            when the octet's value is 1 indicates the port of this octect
            can be set in the aggregate port. and 0 indicates the port is not 
            possible be set in the aggregate port."
        ::= { fsApEntry 3 }
                
fsApMaxPtNumber OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-only
        STATUS obsolete
        DESCRIPTION
            "Max number of ports this aggregate port can include."
        ::= { fsApEntry 4 }
                     
--fsApEntryStatus OBJECT-TYPE
--        SYNTAX ConfigStatus
--        MAX-ACCESS read-create
--        STATUS obsolete
--        DESCRIPTION
--            "Status of this entry, set this object to valid will create a aggregate port, 
--             and set its value to invalid will delete the aggregate port of this entry."
--        ::= { fsApEntry 5 }
        

fsApFlowBalance OBJECT-TYPE
        SYNTAX INTEGER {
          unknown(0),
          source-mac(1),
          destination-mac(2),
          src-dest-mac(3),
          source-ip(4),
          destination-ip(5),
          src-dest-ip(6),
          src-dest-port(7),
          src-dst-ip-l4port(8),
          enhanced-profile(9),
          src-l4port(10),
          dest-l4port(11),
          src-dest-l4port(12),
          src-ip-l4port(13),
          dest-ip-l4port(14),
          src-ip-dest-l4port(15),
          dest-ip-src-l4port(16),
	  src-dest-ip-src-l4port(17),
          src-dest-ip-dest-l4port(18),
          src-ip-src-dest-l4port(19),
          dest-ip-src-dest-l4port(20)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Set the AP traffic balancing algorithm.You can choose enhanced-profile after create a Enhanced 
             mode profile"
        ::= { fsApMIBObjects 5 }
       
-- fsApConfigTable from the 10.3(5) was started to support.       
fsApConfigTable OBJECT-TYPE
        SYNTAX SEQUENCE OF FSApConfigEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Aggregate ports table."
        ::= { fsApMIBObjects 6 }
        
fsApConfigEntry OBJECT-TYPE
        SYNTAX FSApConfigEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "list of aggregate ports and it's distribution table."
        INDEX { fsApConfigNumber }
        ::= { fsApConfigTable 1 }
            
FSApConfigEntry ::=
        SEQUENCE {
        fsApConfigNumber Integer32,
        fsApConfigIndex IfIndex,
        fsApConfigMaxPtNumber Integer32,
        fsApConfigCurrentPtNumber Integer32,
        fsApConfigPortMember PortList,
        fsApConfigAction Integer32
        }

fsApConfigNumber OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Aggregate ports number.Set this value to 1  fsApMaxNumber."
        ::= { fsApConfigEntry 1 }
 
fsApConfigIndex OBJECT-TYPE
        SYNTAX IfIndex
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Aggregate ports index."
        ::= { fsApConfigEntry 2 }

fsApConfigMaxPtNumber OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Number of MAX aggregate ports this system supported."
        ::= { fsApConfigEntry 3 }
        
fsApConfigCurrentPtNumber OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Number of current ports this aggregate port have."
        ::= { fsApConfigEntry 4 }        
 
fsApConfigPortMember OBJECT-TYPE
        SYNTAX PortList
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Each octet in this member action map assigned to a port,
            when the octet's value is 1 indicates the port of this octect
            is in the aggregate port. and 0 indicates the port is not in the aggregate port.
            this object can be modified only when the status of this entry 
            is invalid."
        ::= { fsApConfigEntry 5 }
       
fsApConfigAction OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The value 1 to add an aggregate port, 0 to delete an aggregate port."
        ::= { fsApConfigEntry 6 }

-- fsApPortMemberTable from the 10.3(5) was started to support.   
fsApPortMemberTable OBJECT-TYPE
        SYNTAX SEQUENCE OF FSApPortMemberEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Aggregate port table."
        ::= { fsApMIBObjects 7 }
    
fsApPortMemberEntry OBJECT-TYPE
        SYNTAX FSApPortMemberEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "list of aggregate port and it's port group table."
        INDEX { fsApPortMemberPortIndex }
        ::= { fsApPortMemberTable 1 }
    
FSApPortMemberEntry ::=
        SEQUENCE {
        fsApPortMemberPortIndex IfIndex,
        fsApPortMemberApNumber Integer32,
        fsApPortMemberAction Integer32,
        fsApPortMemberLacpStatus Integer32
        }    
  
fsApPortMemberPortIndex OBJECT-TYPE
        SYNTAX IfIndex
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            " a switch port index. "
        ::= { fsApPortMemberEntry 1 }  
      
fsApPortMemberApNumber OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Set this value to 1  fsApMaxNumber indicate that add this value
            to that aggregate port."
        ::= { fsApPortMemberEntry 2 }   
       
fsApPortMemberAction OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The value 1 indcate add to an aggregate port, 0 to delete from an aggregate port."
        ::= { fsApPortMemberEntry 3 }        

fsApPortMemberLacpStatus OBJECT-TYPE
        SYNTAX INTEGER {
          not-lacp-member(0),
          down(1),
          bndl(2),
          susp(3),
          individual(4)
        }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The value indicates lacp status of aggregateport member."
        ::= { fsApPortMemberEntry 4 }  
        
-- fsApBalcProfName from the 10.4(3b17) was started to support.
fsApBalcProfName OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Enhanced mode profile name."
        ::= { fsApMIBObjects 8 }

-- fsApProfTable from the 10.4(3b17) was started to support. 
fsApProfTable OBJECT-TYPE
        SYNTAX SEQUENCE OF FSApProfEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Configure the enhanced mode profile."
        ::= { fsApMIBObjects 9 }

fsApProfEntry OBJECT-TYPE
        SYNTAX FSApProfEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Enhanced mode profile configuration entry."
        INDEX { fsApProfIdx }
        ::= { fsApProfTable 1 }

FSApProfEntry ::=
        SEQUENCE {
        fsApProfIdx Integer32,
        fsApProfName DisplayString,
-- L2 field
        fsApProfL2SrcMac TruthValue,
        fsApProfL2DestMac TruthValue,
        fsApProfL2Pro TruthValue,
        fsApProfL2Vlan TruthValue,
        fsApProfL2SrcPort TruthValue,
-- Ipv4 field
        fsApProfIpv4SrcIp TruthValue,
        fsApProfIpv4DestIp TruthValue,
        fsApProfIpv4Pro TruthValue,
        fsApProfIpv4L4SrcPort TruthValue,
        fsApProfIpv4L4DestPort TruthValue,
        fsApProfIpv4Vlan TruthValue,
    	fsApProfIpv4SrcPort TruthValue,
-- Ipv6 field
        fsApProfIpv6SrcIp TruthValue,
        fsApProfIpv6DestIp TruthValue,
        fsApProfIpv6Pro TruthValue,
        fsApProfIpv6L4SrcPort TruthValue,
        fsApProfIpv6L4DestPort TruthValue,
        fsApProfIpv6Vlan TruthValue,
        fsApProfIpv6SrcPort TruthValue,
-- mpls field
        fsApProfMplsTopLabel TruthValue,
        fsApProfMpls2ndLabel TruthValue,
        fsApProfMplsSrcIp TruthValue,
        fsApProfMplsDestIp TruthValue,
        fsApProfMplsVlan TruthValue,
        fsApProfMplsSrcPort TruthValue
        }         

fsApProfIdx OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Enhanced mode profile index."
        ::= { fsApProfEntry 1 }  
        
fsApProfName OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Enhanced mode profile name."
        ::= { fsApProfEntry 2 }
        
-- L2 field
fsApProfL2SrcMac OBJECT-TYPE
        SYNTAX TruthValue
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Perform traffic balancing distribution according to the source MAC address 
             of incoming layer2 packet."
        ::= { fsApProfEntry 3 }  

fsApProfL2DestMac OBJECT-TYPE
        SYNTAX TruthValue
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Perform traffic balancing distribution according to the destination MAC address 
             of incoming layer2 packet."
        ::= { fsApProfEntry 4 }  

fsApProfL2Pro OBJECT-TYPE
        SYNTAX TruthValue
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Perform traffic balancing distribution according to the Ethernet type
             of the incoming layer2 packet."
        ::= { fsApProfEntry 5 }  

fsApProfL2Vlan OBJECT-TYPE
        SYNTAX TruthValue
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Perform traffic balancing distribution according to the VLAN ID
             of the incoming layer2 packet."
        ::= { fsApProfEntry 6 }  

fsApProfL2SrcPort OBJECT-TYPE
        SYNTAX TruthValue
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Perform traffic balancing distribution according to the source port 
             of incoming layer2 packet."
        ::= { fsApProfEntry 7 }  

-- Ipv4 field
fsApProfIpv4SrcIp OBJECT-TYPE
        SYNTAX TruthValue
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Perform traffic balancing distribution according to the source 
             IP address of incoming IPv4 packet."
        ::= { fsApProfEntry 8 }

fsApProfIpv4DestIp OBJECT-TYPE
        SYNTAX TruthValue
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Perform traffic balancing distribution according to the destination IP 
             address of incoming IPv4 packet."
    ::= { fsApProfEntry 9 }

fsApProfIpv4Pro OBJECT-TYPE
        SYNTAX TruthValue
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Perform traffic balancing distribution according to protocol type
             of the incoming IPv4 packet."
        ::= { fsApProfEntry 10 }  

fsApProfIpv4L4SrcPort OBJECT-TYPE
        SYNTAX TruthValue
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Perform traffic balancing distribution according to the L4 layer source 
             port of incoming IPv4 packet."
        ::= { fsApProfEntry 11 } 
        
fsApProfIpv4L4DestPort OBJECT-TYPE
        SYNTAX TruthValue
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Perform traffic balancing distribution according to the L4 layer destination 
             port of incoming IPv4 packet."
        ::= { fsApProfEntry 12 }

fsApProfIpv4Vlan OBJECT-TYPE
        SYNTAX TruthValue
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Perform traffic balancing distribution according to the VLAN ID of the 
             incoming IPv4 packet."
        ::= { fsApProfEntry 13 } 

fsApProfIpv4SrcPort OBJECT-TYPE
        SYNTAX TruthValue
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Perform traffic balancing distribution according to the source port
             of incoming IPv4 packet."
        ::= { fsApProfEntry 14 } 

-- IPv6 field
fsApProfIpv6SrcIp OBJECT-TYPE
        SYNTAX TruthValue
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Perform traffic balancing distribution according to the source IP 
             address of incoming IPv6 packet."
        ::= { fsApProfEntry 15 }

fsApProfIpv6DestIp OBJECT-TYPE
        SYNTAX TruthValue
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Perform traffic balancing distribution according to the destination 
             IP address of incoming IPv6 packet."
        ::= { fsApProfEntry 16 }

fsApProfIpv6Pro OBJECT-TYPE
        SYNTAX TruthValue
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Perform traffic balancing distribution according to protocol type of 
             the incoming IPv6 packet."
        ::= { fsApProfEntry 17 }  

fsApProfIpv6L4SrcPort OBJECT-TYPE
        SYNTAX TruthValue
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Perform traffic balancing distribution according to the L4 layer source 
             port of incoming IPv6 packet."
        ::= { fsApProfEntry 18 } 
        
fsApProfIpv6L4DestPort OBJECT-TYPE
        SYNTAX TruthValue
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Perform traffic balancing distribution according to the L4 layer destination 
             port of incoming IPv6 packet."
        ::= { fsApProfEntry 19 } 

fsApProfIpv6Vlan OBJECT-TYPE
        SYNTAX TruthValue
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Perform traffic balancing distribution according to the VLAN ID of the 
             incoming IPv6 packet."
        ::= { fsApProfEntry 20 } 

fsApProfIpv6SrcPort OBJECT-TYPE
        SYNTAX TruthValue
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Perform traffic balancing distribution according to the source port of 
             incoming IPv6 packet."
        ::= { fsApProfEntry 21 } 

-- mpls field
fsApProfMplsTopLabel OBJECT-TYPE
        SYNTAX TruthValue
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Perform traffic balancing distribution according to the top-label of the 
             incoming mpls packet."
        ::= { fsApProfEntry 22 } 

fsApProfMpls2ndLabel OBJECT-TYPE
        SYNTAX TruthValue
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Perform traffic balancing distribution according to the 2nd-label of the 
             incoming mpls packet."
        ::= { fsApProfEntry 23 } 

fsApProfMplsSrcIp OBJECT-TYPE
        SYNTAX TruthValue
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Perform traffic balancing distribution according to the source IP address 
             of incoming mpls packet."
        ::= { fsApProfEntry 24 } 

fsApProfMplsDestIp OBJECT-TYPE
        SYNTAX TruthValue
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Perform traffic balancing distribution according to the destination IP address 
             of incoming mpls packet."
        ::= { fsApProfEntry 25 } 

fsApProfMplsVlan OBJECT-TYPE
        SYNTAX TruthValue
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Perform traffic balancing distribution according to the VLAN ID of the incoming mpls packet."
        ::= { fsApProfEntry 26 } 

fsApProfMplsSrcPort OBJECT-TYPE
        SYNTAX TruthValue
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Perform traffic balancing distribution according to the source port of incoming mpls packet."
        ::= { fsApProfEntry 27 }
        
fsApMIBConformance OBJECT IDENTIFIER ::= { fsApMIB 2 }
fsApMIBCompliances OBJECT IDENTIFIER ::= { fsApMIBConformance 1 }
fsApMIBGroups      OBJECT IDENTIFIER ::= { fsApMIBConformance 2 }


-- compliance statements

fsApMIBCompliance MODULE-COMPLIANCE
        STATUS  current
        DESCRIPTION
                "The compliance statement for entities which implement
                the FS Ap MIB"
        MODULE  -- this module
                MANDATORY-GROUPS { fsApMIBGroup
                 }
        ::= { fsApMIBCompliances 1 }
                
-- units of conformance

fsApMIBGroup OBJECT-GROUP
        OBJECTS {
           fsApMaxNumber,
           fsApCurrentNumber,
           fsApPortConfigApIndex,
           fsApIndex,
           fsApMemberAction,
           fsApMaxPtNumber,
           fsApFlowBalance,          
--           fsApEntryStatus,
           fsApConfigNumber,
           fsApConfigIndex,
           fsApConfigMaxPtNumber,           
           fsApConfigCurrentPtNumber,
           fsApConfigPortMember,
           fsApConfigAction, 
           fsApPortMemberPortIndex,
           fsApPortMemberApNumber,
           fsApPortMemberAction,
           fsApPortMemberLacpStatus,
           fsApProfL2SrcMac,
           fsApProfL2DestMac,
           fsApProfL2Pro,
           fsApProfL2Vlan,
           fsApProfL2SrcPort,
           fsApProfIpv4SrcIp,
           fsApProfIpv4DestIp,
           fsApProfIpv4Pro,
           fsApProfIpv4L4SrcPort,
           fsApProfIpv4L4DestPort,
           fsApProfIpv4Vlan,
           fsApProfIpv4SrcPort,	
           fsApProfIpv6SrcIp,
           fsApProfIpv6DestIp,
           fsApProfIpv6Pro,
           fsApProfIpv6L4SrcPort,
           fsApProfIpv6L4DestPort,
           fsApProfIpv6Vlan,
           fsApProfIpv6SrcPort,	
           fsApProfMplsTopLabel,
           fsApProfMpls2ndLabel,
           fsApProfMplsSrcIp,
           fsApProfMplsDestIp,
           fsApProfMplsVlan,
           fsApProfMplsSrcPort
        }
        STATUS  current
        DESCRIPTION
                "A collection of objects providing aggregate port configure."
        ::= { fsApMIBGroups 1 }                
        
END
