SAVI-MIB DEFINITIONS ::=BEGIN

IMPORTS
    MODULE-COMPLIANCE,OBJECT-GROUP
        FROM SNMPv2-CONF                    --RFC2580
    MODULE-IDENTITY,OBJECT-TYPE,Unsigned32,Counter64
        FROM SNMPv2-SMI                     --RFC2578
    MacAddress,TimeInterval,RowStatus,DateAndTime
        FROM SNMPv2-TC                      --RFC2579
    InterfaceIndex
        FROM IF-MIB                         --RFC2863
    InetVersion,InetAddressType,InetAddress
        FROM INET-ADDRESS-MIB               --RFC4001
    ip
        FROM IP-MIB                         --RFC4293
    ;

saviMIB MODULE-IDENTITY
    LAST-UPDATED "202007240000Z"
    ORGANIZATION
        "IETF SAVI Working Group"
    CONTACT-INFO
        "WG charter:
           http://datatracker.ietf.org/wg/savi/charter/
         Editor:
           Changqing An
           CERNET
           Postal:  Network Research Center, Tsinghua University
           Beijing 100084
           China
           Email: acq@cernet.edu.cn

           Jiahai Yang
           CERNET
           Postal:  Network Research Center, Tsinghua University
           Beijing 100084
           China
           Email: yang@cernet.edu.cn
        "
    DESCRIPTION
        "This MIB Module is designed to support configuration
        and monitoring of SAVI  protocol.
        "
    REVISION    "202007240000Z"
    DESCRIPTION
        "Added support for spoofing log.
         Added support for filtering entry log.
         Added support for binding table statistics.
         Added support for filter table statistics."
    REVISION    "201506150000Z"
    DESCRIPTION
        "Initial version"
    ::= {ip 40}

saviObjects OBJECT IDENTIFIER ::= { saviMIB 1 }

-- System parameters for SAVI protocol

saviObjectsSystemTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF SaviObjectsSystemEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "The table containing savi system-wide parameters."
    ::= { saviObjects 1 }

saviObjectsSystemEntry OBJECT-TYPE
    SYNTAX     SaviObjectsSystemEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry  containing savi system-wide parameters for a
            particular IP version.
           "
    INDEX { saviObjectsSystemIPVersion  }
    ::=   { saviObjectsSystemTable 1 }

SaviObjectsSystemEntry ::=
    SEQUENCE {
        saviObjectsSystemIPVersion              InetVersion,
        saviObjectsSystemMode                   INTEGER,
        saviObjectsSystemMaxDhcpResponseTime    TimeInterval,
        saviObjectsSystemDataSnoopingInterval   TimeInterval,
        saviObjectsSystemMaxLeaseQueryDelay     TimeInterval,
        saviObjectsSystemOffLinkDelay           TimeInterval,
        saviObjectsSystemDetectionTimeout       TimeInterval,
        saviObjectsSystemTentLT                 TimeInterval,
        saviObjectsSystemDefaultLT              TimeInterval,
        saviObjectsSystemTWAIT                  TimeInterval,
        saviObjectsSystemNotifySpoofing         INTEGER,
        saviObjectsSystemNotifyFilter           INTEGER,
        saviObjectsSystemNotifySpoofingInterval Unsigned32,
        saviObjectsSystemNotifySpoofingNumber   Unsigned32,
        saviObjectsSystemBindingCount           Unsigned32,
        saviObjectsSystemFilteringCount         Unsigned32
    }

saviObjectsSystemIPVersion OBJECT-TYPE
    SYNTAX     InetVersion
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "The IP version "
    ::= { saviObjectsSystemEntry 1 }

saviObjectsSystemMode OBJECT-TYPE
    SYNTAX     INTEGER {
                 savi-disable(1),
                 savi-default(2),
                 savi-dhcp-only(3),
                 savi-slaac-only(4),
                 savi-dhcp-slaac-mix(5),
                 savi-send(6)
               }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "IP Address Assignment Methods. "
    ::= { saviObjectsSystemEntry 2 }

saviObjectsSystemMaxDhcpResponseTime OBJECT-TYPE
    SYNTAX     TimeInterval
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "A constant.
            TimeInterval is defined in RFC 2579, it's a period of time,
            measured in units of 0.01 seconds,
            and the value is (0..2147483647).
           "
    ::= { saviObjectsSystemEntry 3 }

saviObjectsSystemDataSnoopingInterval OBJECT-TYPE
    SYNTAX     TimeInterval
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "A constant.
            TimeInterval is defined in RFC 2579, it's a period of time,
            measured in units of 0.01 seconds,
            and the value is (0..2147483647).
           "
    ::= { saviObjectsSystemEntry 4 }

saviObjectsSystemMaxLeaseQueryDelay OBJECT-TYPE
    SYNTAX     TimeInterval
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "A constant.
            TimeInterval is defined in RFC 2579, it's a period of time,
            measured in units of 0.01 seconds,
            and the value is (0..2147483647).
           "
    ::= { saviObjectsSystemEntry 5 }

saviObjectsSystemOffLinkDelay OBJECT-TYPE
    SYNTAX     TimeInterval
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "A constant.
            TimeInterval is defined in RFC 2579, it's a period of time,
            measured in units of 0.01 seconds,
            and the value is (0..2147483647).
           "
    ::= { saviObjectsSystemEntry 6 }

saviObjectsSystemDetectionTimeout OBJECT-TYPE
    SYNTAX     TimeInterval
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "A constant.
            TimeInterval is defined in RFC 2579, it's a period of time,
            measured in units of 0.01 seconds,
            and the value is (0..2147483647).
           "
    ::= { saviObjectsSystemEntry 7 }

saviObjectsSystemTentLT OBJECT-TYPE
    SYNTAX     TimeInterval
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "A constant.
            TimeInterval is defined in RFC 2579, it's a period of time,
            measured in units of 0.01 seconds,
            and the value is (0..2147483647).
           "
    ::= { saviObjectsSystemEntry 8 }

saviObjectsSystemDefaultLT OBJECT-TYPE
    SYNTAX     TimeInterval
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "A constant.
            TimeInterval is defined in RFC 2579, it's a period of time,
            measured in units of 0.01 seconds,
            and the value is (0..2147483647).
           "
    ::= { saviObjectsSystemEntry 9 }

saviObjectsSystemTWAIT OBJECT-TYPE
    SYNTAX     TimeInterval
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "A constant.
            TimeInterval is defined in RFC 2579, it's a period of time,
            measured in units of 0.01 seconds,
            and the value is (0..2147483647).
           "
    ::= { saviObjectsSystemEntry 10 }


saviObjectsSystemNotifySpoofing OBJECT-TYPE
    SYNTAX     INTEGER  {
                 enable(1),
                 disable(2)
               }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
          "Spoofing log status.
            enable indicates that spoofing log is enabled.
            disable indicates that spoofing log is disabled.
          "
    ::= { saviObjectsSystemEntry 11 }


saviObjectsSystemNotifyFilter OBJECT-TYPE
    SYNTAX     INTEGER  {
                 enable(1),
                 disable(2)
               }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
          "Filtering entry log status.
            enable indicates that filtering log is enabled.
            disable indicates that filtering log is disabled.
          "
    ::= { saviObjectsSystemEntry 12 }


saviObjectsSystemNotifySpoofingInterval OBJECT-TYPE
    SYNTAX     Unsigned32 (0|5..3600)
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
          "Interval for spoofing log. 0, 5 to 3600s.
          "
    ::= { saviObjectsSystemEntry 13 }


saviObjectsSystemNotifySpoofingNumber OBJECT-TYPE
    SYNTAX     Unsigned32 (1..128)
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
          "Number of spoofing log entries. 1 to 128.
          "
    ::= { saviObjectsSystemEntry 14 }


saviObjectsSystemBindingCount OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
          "Current binding entry count.
          "
    ::= { saviObjectsSystemEntry 15 }


saviObjectsSystemFilteringCount OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
          "Current filtering entry count.
          "
    ::= { saviObjectsSystemEntry 16 }

-- Port parameters for SAVI protocol

saviObjectsPortTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF SaviObjectsPortEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "The table containing SAVI parameters of each anchor."
    ::= { saviObjects 2 }

saviObjectsPortEntry OBJECT-TYPE
    SYNTAX     SaviObjectsPortEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing SAVI running parameters of an anchor."
    INDEX {
            saviObjectsPortIPVersion,
            saviObjectsPortIfIndex
          }
    ::= { saviObjectsPortTable 1 }


SaviObjectsPortEntry ::=
    SEQUENCE {
        saviObjectsPortIPVersion          InetVersion,
        saviObjectsPortIfIndex            InterfaceIndex,
        saviObjectsPortValidatingAttr     INTEGER,
        saviObjectsPortDhcpTrustAttr      INTEGER,
        saviObjectsPortTrustAttr          INTEGER,
        saviObjectsPortDhcpSnoopingAttr   INTEGER,
        saviObjectsPortDataSnoopingAttr   INTEGER,
        saviObjectsPortFilteringNum       Unsigned32
    }

saviObjectsPortIPVersion      OBJECT-TYPE
    SYNTAX     InetVersion
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "The IP version "
    ::= { saviObjectsPortEntry 1 }

saviObjectsPortIfIndex  OBJECT-TYPE
    SYNTAX     InterfaceIndex
    MAX-ACCESS not-accessible
    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.
           "
    ::= { saviObjectsPortEntry 2 }

saviObjectsPortValidatingAttr OBJECT-TYPE
    SYNTAX     INTEGER {
                 enable(1),
                 disable(2)
               }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "An attribute defined in SAVI protocol.
            enable(1), the attribute is set.
            disable(2), the attribute is not set.
           "
    ::= { saviObjectsPortEntry 3 }

saviObjectsPortDhcpTrustAttr OBJECT-TYPE
    SYNTAX     INTEGER  {
                 enable(1),
                 disable(2)
               }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
          "An attribute defined in SAVI protocol.
            enable(1), the attribute is set.
            disable(2), the attribute is not set.
          "
    ::= { saviObjectsPortEntry 4 }

saviObjectsPortTrustAttr OBJECT-TYPE
    SYNTAX     INTEGER  {
                 enable(1),
                 disable(2)
               }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
          "An attribute defined in SAVI protocol.
            enable(1), the attribute is set.
            disable(2), the attribute is not set.
          "
    ::= { saviObjectsPortEntry 5 }

saviObjectsPortDhcpSnoopingAttr OBJECT-TYPE
    SYNTAX     INTEGER  {
                 enable(1),
                 disable(2)
               }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
          "An attribute defined in SAVI protocol.
            enable(1), the attribute is set.
            disable(2), the attribute is not set.
          "
    ::= { saviObjectsPortEntry 6 }

saviObjectsPortDataSnoopingAttr OBJECT-TYPE
    SYNTAX     INTEGER  {
                 enable(1),
                 disable(2)
               }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
          "An attribute defined in SAVI protocol.
            enable(1), the attribute is set.
            disable(2), the attribute is not set.
          "
    ::= { saviObjectsPortEntry 7 }

saviObjectsPortFilteringNum OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The max filtering number of the Port."
    ::= { saviObjectsPortEntry 8 }


-- Binding Status Table for SAVI protocol

saviObjectsBindingTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF SaviObjectsBindingEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "The table containing the state of binding
            between source address and anchor.
           "
    ::= { saviObjects 3 }

saviObjectsBindingEntry OBJECT-TYPE
    SYNTAX     SaviObjectsBindingEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing the state of binding between source
            address and anchor.
            Entries are keyed on the source IP address type,
            binding type, anchor, and source IP address.
           "
    INDEX {
            saviObjectsBindingIpAddressType,
            saviObjectsBindingType,
            saviObjectsBindingIfIndex,
            saviObjectsBindingIpAddress
          }
    ::= { saviObjectsBindingTable 1 }

SaviObjectsBindingEntry ::=
    SEQUENCE {
        saviObjectsBindingIpAddressType  InetAddressType,
        saviObjectsBindingType           INTEGER,
        saviObjectsBindingIfIndex        InterfaceIndex,
        saviObjectsBindingIpAddress      InetAddress,
        saviObjectsBindingMacAddr        MacAddress,
        saviObjectsBindingState          INTEGER,
        saviObjectsBindingLifetime       TimeInterval,
        saviObjectsBindingCreationtime   DateAndTime,
        saviObjectsBindingTID            INTEGER,
        saviObjectsBindingRowStatus      RowStatus
     }

saviObjectsBindingIpAddressType OBJECT-TYPE
    SYNTAX     InetAddressType
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "IP address type of the  binding source IP."
    ::= { saviObjectsBindingEntry 1 }

saviObjectsBindingType OBJECT-TYPE
    SYNTAX     INTEGER {
                 manual(1),
                 slaac(2),
                 dhcp(3),
                 send(4)
               }
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "IP address assignment methods."
    ::= { saviObjectsBindingEntry 2 }

saviObjectsBindingIfIndex OBJECT-TYPE
    SYNTAX     InterfaceIndex
    MAX-ACCESS not-accessible
    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.
           "
    ::= { saviObjectsBindingEntry 3 }

saviObjectsBindingIpAddress OBJECT-TYPE
    SYNTAX     InetAddress
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "The binding source IP address"
    ::= { saviObjectsBindingEntry 4 }

saviObjectsBindingMacAddr OBJECT-TYPE
    SYNTAX     MacAddress
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
           "The binding source mac address."
    ::= { saviObjectsBindingEntry 5 }

saviObjectsBindingState OBJECT-TYPE
    SYNTAX     INTEGER  {
                   nO-BIND(1),
                   iNIT-BIND(2),
                   bOUND(3),
                   dETECTION(4),
                   rECOVERY(5),
                   vERIFY(6),
                   tENTATIVE(7),
                   vALID(8),
                   tESTING-TP-LT(9),
                   tESTING-VP(10),
                   tESTING-VPP(11),
                   tENTATIVE-NUD(12),
                   tENTATIVE-DAD(13)
              }
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
           "The state of the binding entry. "
    ::= { saviObjectsBindingEntry 6 }

saviObjectsBindingLifetime OBJECT-TYPE
    SYNTAX     TimeInterval
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
           "The remaining lifetime of the entry.
            TimeInterval is defined in RFC 2579, it's a period of time,
            measured in units of 0.01 seconds,
            and the value is (0..2147483647).
            If saviObjectsBindingType=manual, a value of 2147483647
            represents infinity.
           "
    ::= { saviObjectsBindingEntry 7 }

saviObjectsBindingCreationtime OBJECT-TYPE
    SYNTAX     DateAndTime
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
           "The value of the local clock when the entry was firstly created.
           "
    ::= { saviObjectsBindingEntry 8 }


saviObjectsBindingTID OBJECT-TYPE
    SYNTAX     INTEGER
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
           "The Transaction ID (TID) (refer to RFC2131 and RFC3315) of  the corresponding DHCP transaction.
           "
    ::= { saviObjectsBindingEntry 9 }

saviObjectsBindingRowStatus OBJECT-TYPE
       SYNTAX     RowStatus
       MAX-ACCESS read-create
       STATUS     current
       DESCRIPTION
             "The status of this row, by which new entries may be
              created, or old entries deleted from this table.
              An Entry can be created or deleted only when
              saviObjectsBindingType=manual.
             "
    ::= { saviObjectsBindingEntry 10 }


-- Filtering Table for SAVI protocol

saviObjectsFilteringTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF SaviObjectsFilteringEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "The table containing the filtering entries."
    ::= { saviObjects 4 }

saviObjectsFilteringEntry OBJECT-TYPE
    SYNTAX     SaviObjectsFilteringEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing the filtering parameters.
            Entries are keyed on the source IP address type,
            anchor, and source IP address.
           "
    INDEX { saviObjectsFilteringIpAddressType,
            saviObjectsFilteringIfIndex,
            saviObjectsFilteringIpAddress
          }
    ::= { saviObjectsFilteringTable 1 }

SaviObjectsFilteringEntry ::=
    SEQUENCE {
        saviObjectsFilteringIpAddressType  InetAddressType,
        saviObjectsFilteringIfIndex        InterfaceIndex,
        saviObjectsFilteringIpAddress      InetAddress,
        saviObjectsFilteringMacAddr        MacAddress
    }

saviObjectsFilteringIpAddressType OBJECT-TYPE
    SYNTAX     InetAddressType
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "IP address type of the  filtering source IP"
    ::= { saviObjectsFilteringEntry 1 }

saviObjectsFilteringIfIndex OBJECT-TYPE
    SYNTAX     InterfaceIndex
    MAX-ACCESS not-accessible
    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.
           "
    ::= { saviObjectsFilteringEntry 2 }

saviObjectsFilteringIpAddress OBJECT-TYPE
    SYNTAX     InetAddress
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "The filtering source IP address."
    ::= { saviObjectsFilteringEntry 3 }

saviObjectsFilteringMacAddr OBJECT-TYPE
    SYNTAX     MacAddress
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The filtering source mac address."
    ::= { saviObjectsFilteringEntry 4 }


-- Count of packets dropped because of validation failure for each interface.

saviObjectsCountTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF SaviObjectsCountEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "The table containing count of packets dropped because of validation failure."
    ::= { saviObjects 5 }

saviObjectsCountEntry OBJECT-TYPE
    SYNTAX     SaviObjectsCountEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing count of packets dropped because of validation failure for each interface."
    INDEX { saviObjectsCountIPVersion,
            saviObjectsCountIfIndex
          }
    ::= { saviObjectsCountTable 1 }

SaviObjectsCountEntry ::=
    SEQUENCE {
        saviObjectsCountIPVersion          InetVersion,
        saviObjectsCountIfIndex            InterfaceIndex,
        saviObjectsCountFilterPkts         Counter64,
        saviObjectsCountFilterOctets       Counter64
    }

saviObjectsCountIPVersion      OBJECT-TYPE
    SYNTAX     InetVersion
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "The IP version "
    ::= { saviObjectsCountEntry 1 }

saviObjectsCountIfIndex            OBJECT-TYPE
    SYNTAX      InterfaceIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
           "The Interface."
    ::= { saviObjectsCountEntry 2 }


saviObjectsCountFilterPkts OBJECT-TYPE
    SYNTAX     Counter64
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "Dropped packet count."
    ::= { saviObjectsCountEntry 3 }


saviObjectsCountFilterOctets OBJECT-TYPE
    SYNTAX     Counter64
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "Dropped octet count."
    ::= { saviObjectsCountEntry 4 }

-- Conformance information
saviConformance OBJECT IDENTIFIER ::= { saviMIB 2 }
saviCompliances OBJECT IDENTIFIER ::= { saviConformance 1 }

-- Compliance statements
saviCompliance MODULE-COMPLIANCE
    STATUS current
    DESCRIPTION
           "The compliance statement for entities which implement SAVI
            protocol.
           "
    MODULE
    MANDATORY-GROUPS {
        systemGroup,
        portGroup,
        bindingGroup,
        filteringGroup
    }
    ::= { saviCompliances 1}

saviGroups OBJECT IDENTIFIER ::= { saviConformance 2 }

-- Units of conformance

systemGroup OBJECT-GROUP
    OBJECTS {
        saviObjectsSystemMode,
        saviObjectsSystemMaxDhcpResponseTime,
        saviObjectsSystemDataSnoopingInterval,
        saviObjectsSystemMaxLeaseQueryDelay,
        saviObjectsSystemOffLinkDelay,
        saviObjectsSystemDetectionTimeout,
        saviObjectsSystemTentLT,
        saviObjectsSystemDefaultLT,
        saviObjectsSystemTWAIT,
        saviObjectsSystemNotifySpoofing,
        saviObjectsSystemNotifyFilter,
        saviObjectsSystemNotifySpoofingInterval,
        saviObjectsSystemNotifySpoofingNumber,
        saviObjectsSystemBindingCount,
        saviObjectsSystemFilteringCount
    }
    STATUS current
    DESCRIPTION
           "The system group contains objects corrsponding to savi system
            parameters.
           "
    ::= {saviGroups 1}

portGroup OBJECT-GROUP
    OBJECTS {
        saviObjectsPortValidatingAttr,
        saviObjectsPortDhcpTrustAttr,
        saviObjectsPortTrustAttr,
        saviObjectsPortDhcpSnoopingAttr,
        saviObjectsPortDataSnoopingAttr,
        saviObjectsPortFilteringNum
    }
    STATUS current
    DESCRIPTION
           "The if group contains objects corresponding to the savi running
            parameters of each anchor.
           "
    ::= {saviGroups 2}

bindingGroup OBJECT-GROUP
    OBJECTS {
        saviObjectsBindingMacAddr,
        saviObjectsBindingState,
        saviObjectsBindingLifetime,
        saviObjectsBindingCreationtime,
        saviObjectsBindingTID,
        saviObjectsBindingRowStatus
    }
    STATUS current
    DESCRIPTION
           "The binding group contains the binding
            information of anchor and soure ip address.
           "
    ::= {saviGroups 3}

filteringGroup OBJECT-GROUP
    OBJECTS {
          saviObjectsFilteringMacAddr
    }
    STATUS current
    DESCRIPTION
           "The filtering group contains the filtering
            information of anchor and soure ip address.
           "
    ::= {saviGroups 4}
END
