RLLAN1-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE
        FROM SNMPv2-SMI
    TruthValue, MacAddress, TEXTUAL-CONVENTION, RowStatus
        FROM SNMPv2-TC
    rnd
        FROM RADLAN-MIB
    VlanId
        FROM Q-BRIDGE-MIB;

rlLan1 MODULE-IDENTITY
    LAST-UPDATED "201506300000Z"
    ORGANIZATION "MARVELL"
    CONTACT-INFO
        "Email: gain@marvell.com"
    DESCRIPTION
        "The Lan1 MIB module for supporting Lan1 fetaure."
    REVISION     "201506300000Z"
    DESCRIPTION
         "Initial version."
    ::= { rnd 224 }

-- TEXTUAL-CONVENTION
GroupId ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "group id."
    SYNTAX  INTEGER (0..1279)

GroupIdList ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "Each octet within this value specifies a set of eight
        groups, with the first octet specifying groups 1 through
        8, the second octet specifying groups 9 through 16, etc.
        Within each octet, the most significant bit represents
        the lowest numbered group, and the least significant bit
        represents the highest numbered group.  Thus, each group
        is represented by a single bit within the value of this
        object.  If that bit has a value of '1' then that group
        is included in the set of groups; the group is not
        included if its bit has a value of '0'."
    SYNTAX      OCTET STRING


VlanIdOrNone ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "group id."
    SYNTAX  INTEGER (0..4094)

-- Scalars
rlLan1STagEtherType OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE (2))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Specifies the Ethernet type identifying the S-VLAN tag."
    DEFVAL      { '88A8'H }
    ::= { rlLan1 1 }

rlLan1CPVlanId OBJECT-TYPE
    SYNTAX      VlanIdOrNone
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Specifies the CP VLAN ID.
         0 indicateds no CP vlan."
    DEFVAL      { 0 }
    ::= { rlLan1 2 }

rlLan1CPVlanCos OBJECT-TYPE
    SYNTAX      INTEGER (0..7)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Specifies the cos assigned to ingress traffic on module ports into
        the CP VLAN."
    DEFVAL      { 0 }
    ::= { rlLan1 3 }

rlLan1x86Port OBJECT-TYPE
    SYNTAX      INTEGER (0..1000)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Specifies the interface-id of the Ethernet port connecting LAN1 to the
        x86 environment implementing  Virtual Functions (VFs).
         0 indicateds no x86 port defined."
    DEFVAL      { 0 }
    ::= { rlLan1 4 }

rlLan1CPVlanMulticastMappingVlanId OBJECT-TYPE
    SYNTAX      VlanIdOrNone
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Specifies the VF which S-VLAN-ID is assigned to multicast/broadcast
        traffic bridged into the CP VLAN from modules to x86.
        0 indicateds no vlan."
    DEFVAL      { 0 }
    ::= { rlLan1 5 }

rlLan1NonCPVlanMulticastMappingVlanId OBJECT-TYPE
    SYNTAX      VlanIdOrNone
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Specifies the VF which S-VLAN-ID is assigned to multicast/broadcast
        traffic bridged into the non-CP VLAN from modules to x86.
        0 indicateds no vlan."
    DEFVAL      { 0 }
    ::= { rlLan1 6 }

----------------------------
-- rlLan1x86VlanMappingTable
----------------------------

rlLan1x86VlanMappingTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF RlLan1x86VlanMappingEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table that contains information mapping s-tag to group id."
    ::= { rlLan1 7 }

rlLan1x86VlanMappingEntry OBJECT-TYPE
    SYNTAX      RlLan1x86VlanMappingEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A mapping of incoming s-tag to a group."
    INDEX   { rlLan1x86VlanMappingVlanId  }
    ::= { rlLan1x86VlanMappingTable 1 }

RlLan1x86VlanMappingEntry ::=
    SEQUENCE {
        rlLan1x86VlanMappingVlanId
            VlanId,
        rlLan1x86VlanMappingGroupId
            GroupId,
        rlLan1x86VlanMappingRowStatus
            RowStatus
    }

rlLan1x86VlanMappingVlanId OBJECT-TYPE
    SYNTAX      VlanId
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The s-tag to mapped to group"
    ::= { rlLan1x86VlanMappingEntry 1 }

rlLan1x86VlanMappingGroupId OBJECT-TYPE
    SYNTAX      GroupId
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "group for filtering traffic"
    ::= { rlLan1x86VlanMappingEntry 2 }


rlLan1x86VlanMappingRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object indicates the status of this entry."
    ::= { rlLan1x86VlanMappingEntry 3 }

----------------------------
-- rlLan1x86MacMappingTable
----------------------------

rlLan1x86MacMappingTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF RlLan1x86MacMappingEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table that contains information mapping Mac to s-tag."
    ::= { rlLan1 8 }

rlLan1x86MacMappingEntry OBJECT-TYPE
    SYNTAX      RlLan1x86MacMappingEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A mapping of incoming s-tag to a group."
    INDEX   { rlLan1x86MacMappingDstMacAddress  }
    ::= { rlLan1x86MacMappingTable 1 }

RlLan1x86MacMappingEntry ::=
    SEQUENCE {
        rlLan1x86MacMappingDstMacAddress
            MacAddress,
        rlLan1x86MacMappingVlanId
            VlanId,
        rlLan1x86MacMappingRowStatus
            RowStatus
    }

rlLan1x86MacMappingDstMacAddress OBJECT-TYPE
    SYNTAX      MacAddress
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "destination mac address"
    ::= { rlLan1x86MacMappingEntry 1 }

rlLan1x86MacMappingVlanId OBJECT-TYPE
    SYNTAX      VlanId
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The s-tag"
    ::= { rlLan1x86MacMappingEntry 2 }

rlLan1x86MacMappingRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object indicates the status of this entry."
    ::= { rlLan1x86MacMappingEntry 3 }

----------------------------
-- rlLan1x86ModulePortTable
----------------------------

rlLan1x86ModulePortTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF RlLan1x86ModulePortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table that contains information on a LAN1 module port."
    ::= { rlLan1 9 }

rlLan1x86ModulePortEntry OBJECT-TYPE
    SYNTAX      RlLan1x86ModulePortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A mapping of incoming s-tag to a group."
    INDEX   { rlLan1x86ModulePortIfIndex  }
    ::= { rlLan1x86ModulePortTable 1 }

RlLan1x86ModulePortEntry ::=
    SEQUENCE {
        rlLan1x86ModulePortIfIndex
            INTEGER,
        rlLan1x86ModulePortCPAllowed
             TruthValue,
        rlLan1x86ModulePortCPUntaggedAllowed
             TruthValue,
        rlLan1x86ModulePortMulticastBroadcastAllowedVlan
             INTEGER,
        rlLan1x86ModulePortIngressGroupId
            GroupId,
        rlLan1x86ModulePortEgressGroupIdList
            GroupIdList
    }

rlLan1x86ModulePortIfIndex OBJECT-TYPE
    SYNTAX      INTEGER (0..1000)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Specifies the interface-id."
    DEFVAL      { 0 }
    ::= { rlLan1x86ModulePortEntry 1 }

rlLan1x86ModulePortCPAllowed OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Specifies that CP traffic is allowed on the port, it is used to
        allow CP multicast/broadcast traffic."
    DEFVAL      { false }
    ::= { rlLan1x86ModulePortEntry 2 }

rlLan1x86ModulePortCPUntaggedAllowed OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Specifies that untagged traffic belongs to the CP VLAN, it is used to
        allow ingress untagged multicast/broadcast traffic."
    DEFVAL      { false }
    ::= { rlLan1x86ModulePortEntry 3 }

rlLan1x86ModulePortMulticastBroadcastAllowedVlan OBJECT-TYPE
    SYNTAX INTEGER {
               none(1),
               cp(2),
               noncp(3)
           }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Specifies that multicast/broadcast traffic is allowed on the CP VLAN
        or on non-CP VLAN.
        If the parameter is not configured then only unicast traffic is allowed."
    DEFVAL      { none }
    ::= { rlLan1x86ModulePortEntry 4 }


rlLan1x86ModulePortIngressGroupId OBJECT-TYPE
    SYNTAX      GroupId
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Specifies the group number assigned to the input frame on the interface"
    DEFVAL      { 0 }
    ::= { rlLan1x86ModulePortEntry 5 }

rlLan1x86ModulePortEgressGroupIdList OBJECT-TYPE
    SYNTAX      GroupIdList
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Specifies the list of egress group numbers"
    DEFVAL      { ''H }
    ::= { rlLan1x86ModulePortEntry 6 }

END

