-- *****************************************************************
-- FS-IP-SET-MIB.mib:  FS IP SET MIB file
--
-- February 15 2012, LiJincong
--
-- Copyright (c) 2012 by FS.COM Inc..
-- All rights reserved.
-- 
-- *****************************************************************

FS-IP-SET-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE,
    Integer32, IpAddress 
                     FROM SNMPv2-SMI
    MODULE-COMPLIANCE,
    OBJECT-GROUP
                     FROM SNMPv2-CONF
    InetAddress,
    InetAddressType
                     FROM INET-ADDRESS-MIB
    InterfaceIndex
                     FROM IF-MIB
    fsMgmt
                     FROM FS-SMI;
                
fsIPSetMgmt MODULE-IDENTITY
    LAST-UPDATED "201202150000Z"
    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 ac management mibs."
    REVISION      "201202150000Z"
    DESCRIPTION
        "Initial version of this MIB module."
    ::= { fsMgmt 111}

-- ******** define the IP set nodes *************
fsIPSetMIBObjects OBJECT IDENTIFIER ::= { fsIPSetMgmt 1 }

fsIPSetipAddressTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF FSIPSetIpAddressEntry
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "This table is fs private mib imitate ip-4293's 
            ipAddrTable, because that mib no mask field can not set the 
            address mask.This table contains addressing information 
            relevant to the entity's interfaces.

            This table does not contain multicast address information.
            Tables for such information should be contained in multicast
            specific MIBs, such as RFC 3019.

            While this table is writable.  The intention in allowing a 
            user to write to this table is to allow them to add or 
            remove any entry that isn't

            permanent.  The user should be allowed to modify objects
            and entries when that would not cause inconsistencies
            within the table.  Allowing write access to objects, such
            as ipAddressOrigin, could allow a user to insert an entry
            and then label it incorrectly.

            Note well: When including IPv6 link-local addresses in this
            table, the entry must use an InetAddressType of 'ipv6z' in
            order to differentiate between the possible interfaces."
    ::= { fsIPSetMIBObjects 1 }

fsIPSetIpAddressEntry OBJECT-TYPE
    SYNTAX     FSIPSetIpAddressEntry
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "An address mapping for a particular interface."
    INDEX { fsIPSetipAddressIfIndex }
    ::= { fsIPSetipAddressTable 1 }

FSIPSetIpAddressEntry ::= SEQUENCE {
        fsIPSetipAddressIfIndex      InterfaceIndex,
        fsIPSetipAddressAddr         IpAddress,
        fsIPSetipAddressMask         IpAddress,
        fsIPSetipAddressStatus       INTEGER,
        fsIPSetipAddressType         INTEGER
    }

fsIPSetipAddressIfIndex OBJECT-TYPE
    SYNTAX     InterfaceIndex
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The index value that uniquely identifies the interface to
            which this entry is applicable.  The interface identified by
            a particular value of this index is the same interface as
            identified by the same value of the IF-MIB's ifIndex."
    ::= { fsIPSetIpAddressEntry 1 }

fsIPSetipAddressAddr OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The IP address to which this entry's addressing information

            pertains.  The address type of this object is specified in
            fsIPSetipAddressAddrType.

            Implementors need to be aware that if the size of
            fsIPSetipAddressAddr exceeds 116 octets, then OIDS 
            of instances of columns in this row will have more than 128 
            sub-identifiers and cannot be accessed using SNMPv1, 
            SNMPv2c, or SNMPv3."
    ::= { fsIPSetIpAddressEntry 2 }

fsIPSetipAddressMask OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The IP address mask to which this entry's addressing information

            pertains.  The address type of this object is specified in
            fsIPSetipAddressAddrType.

            Implementors need to be aware that if the size of
            fsIPSetipAddressMask exceeds 116 octets, then OIDS 
            of instances of columns in this row will have more than 128 
            sub-identifiers and cannot be accessed using SNMPv1, SNMPv2c, 
            or SNMPv3."
    ::= { fsIPSetIpAddressEntry 3 }
    
fsIPSetipAddressStatus OBJECT-TYPE
    SYNTAX     INTEGER {
                 delete(0),
                 add(1)
    }
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
           "The IP address to add or to delete, value 1 is add, and value 0
            is delete"
    ::= { fsIPSetIpAddressEntry 4 }

fsIPSetipAddressType OBJECT-TYPE
    SYNTAX     INTEGER {
                 unicast(1),
                 anycast(2),
                 broadcast(3)
    }
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
           "The type of address.  broadcast(3) is not a valid value for
            IPv6 addresses (RFC 3513)."
    DEFVAL { unicast }
    ::= { fsIPSetIpAddressEntry 5 }
    
-- conformance information

fsIpSetMIBConformance OBJECT IDENTIFIER ::= { fsIPSetMgmt 2 }

fsIpSetMIBCompliances OBJECT IDENTIFIER ::= { fsIpSetMIBConformance 1 }
fsIpSetMIBGroups      OBJECT IDENTIFIER ::= { fsIpSetMIBConformance 2 }

-- compliance statements

fsIcmpMIBCompliance MODULE-COMPLIANCE
        STATUS  current
        DESCRIPTION
                "The compliance statement for entities which implement
                the FS IP Set MIB"
        MODULE  -- this module
                MANDATORY-GROUPS { fsIpSetMIBGroup
                 }
        ::= { fsIpSetMIBCompliances 1 }

-- units of conformance

fsIpSetMIBGroup OBJECT-GROUP
    OBJECTS   { fsIPSetipAddressIfIndex, 
                fsIPSetipAddressAddr,
                fsIPSetipAddressMask,
                fsIPSetipAddressStatus,
                fsIPSetipAddressType
              }
        STATUS  current
        DESCRIPTION
                "A collection of objects providing icmp management and
                opertion to a FS agent."
        ::= { fsIpSetMIBGroups 1 } 

END
