Skip to content

SNMP lldpLocManAddrTable and lldpRemManAddrTable design

AndriiS edited this page Feb 7, 2018 · 22 revisions

The SNMP lldpLocManAddrTable and lldpRemManAddrTable MIB design

High Level Design Document

Rev 0.1

Table of Contents

List of Tables

Revision
Rev Date Author Change Description
0.1 Andrii Savka Initial version

About this Manual

This document provides general information about the design of lldpLocManAddrTable and lldpRemManAddrTable in SONiC.

Scope

This document describes the high level design of the design of MIB for lldpLocManAddrTable and lldpRemManAddrTable.

Definitions/Abbreviation

Table 2: Abbreviations
Definitions/Abbreviation Description
SNMP Simple Network Management Protocol
LLDP Link Layer Discovery Protocol
API Application Programmable Interface
SAI Switch Abstraction Interface

1 Overview

1.1 System Chart

Following diagram describes a top level overview of the SONiC SNMP architecture:

1.2 Modules description

1.2.1 SNMP agent

Stores the information from Counter DB in the local cash and handles the SNMP requests.

1.2.2 Counter DB

Located in the Redis DB instance #2 running inside the container "database". Redis DB works with the data in format of key-value tuples, needs no predefined schema and holds various counters like port counters, ACL counters, etc.

1.2.3 Orchestration Agent

This component is running in the "orchagent" docker container and is responsible for processing updates of the APP DB and do corresponding changes in the SAI DB via SAI Redis.

1.2.4 SAI Redis

SAI Redis is an implementation of the SAI API which translates API calls into SAI objects which are stored in the SAI DB.

1.2.5 SAI DB

Redis DB instance #1. Holds serialized SAI objects.

1.2.6 syncd

Reads SAI DB data (SAI objects) and performs appropriate calls to Switch SAI.

1.2.7 SAI (Redis and Switch)

An unified API which represent the switch state as a set of objects. In SONiC represented in two implementations - SAI DB frontend and ASIC SDK wrapper.

2 Requirements

The following OIDs should be supported in the SNMP agent:

2.1 The lldpLocPortTable requirements

OID SNMP counter Description
1.0.8802.1.1.2.1.3.7 lldpLocPortTable
1.0.8802.1.1.2.1.3.7.1 lldpLocPortEntry
1.0.8802.1.1.2.1.3.7.1.1 lldpLocPortNum lldpLocPortTable
1.0.8802.1.1.2.1.3.7.1.2 lldpLocPortIdSubtype The type of port identifier encoding used in the associated 'lldpLocPortId' object
1.0.8802.1.1.2.1.3.7.1.4 lldpLocPortDesc The string value used to identify the 802 LAN station's port description associated with the local system. If the local agent supports IETF RFC 2863, lldpLocPortDesc object should have the same value of ifDescr object

2.2 The lldpLocManAddrTable requirements

OID SNMP counter Description
1.0.8802.1.1.2.1.3.8 lldpLocManAddrTable
1.0.8802.1.1.2.1.3.8.1 lldpLocManAddrEntry
1.0.8802.1.1.2.1.3.8.1.1 lldpLocManAddrSubtype The type of management address identifier encoding used in the associated 'lldpLocManagmentAddr' object
1.0.8802.1.1.2.1.3.8.1.2 lldpLocManAddr The string value used to identify the management address component associated with the local system. The purpose of this address is to contact the management entity.
1.0.8802.1.1.2.1.3.8.1.3 lldpLocManAddrLen The total length of the management address subtype and the management address fields in LLDPDUs transmitted by the local LLDP agent.
1.0.8802.1.1.2.1.3.8.1.4 lldpLocManAddrIfSubtype The enumeration value that identifies the interface numbering method used for defining the interface number, associated with the local system
1.0.8802.1.1.2.1.3.8.1.5 lldpLocManAddrIfId The integer value used to identify the interface number regarding the management address component associated with the local system.
1.0.8802.1.1.2.1.3.8.1.6 lldpLocManAddrOID The OID value used to identify the type of hardware component or protocol entity associated with the management address advertised by the local system agent.

2.3 The lldpRemTable requirements

OID SNMP counter Description
1.0.8802.1.1.2.1.4.1 lldpRemTable
1.0.8802.1.1.2.1.4.1.1 lldpRemEntry
1.0.8802.1.1.2.1.4.1.1.2 lldpRemLocalPortNum The index value used to identify the port component associated with this entry. The lldpRemLocalPortNum identifies the port on which the remote system information is received
1.0.8802.1.1.2.1.4.1.1.3 lldpRemIndex This object represents an arbitrary local integer value used by this agent to identify a particular connection instance, unique only for the indicated remote system
1.0.8802.1.1.2.1.4.1.1.11 lldpRemSysCapSupported The bitmap value used to identify which system capabilities are supported on the remote system
1.0.8802.1.1.2.1.4.1.1.12 lldpRemSysCapEnabled The bitmap value used to identify which system capabilities are enabled on the remote system

2.4 The lldpRemManAddrTable requirements

OID SNMP counter Description
1.0.8802.1.1.2.1.4.2 lldpRemManAddrTable
1.0.8802.1.1.2.1.4.2.1 lldpRemManAddrTable
1.0.8802.1.1.2.1.4.2.1.1 lldpRemManAddrSubtype The type of management address identifier encoding used in the associated 'lldpRemManagmentAddr' object
1.0.8802.1.1.2.1.4.2.1.2 lldpRemManAddr The string value used to identify the management address component associated with the remote system. The purpose of this address is to contact the management entity
1.0.8802.1.1.2.1.4.2.1.3 lldpRemManAddrIfSubtype The enumeration value that identifies the interface numbering method used for defining the interface number, associated with the remote system
1.0.8802.1.1.2.1.4.2.1.4 lldpRemManAddrIfId The integer value used to identify the interface number regarding the management address component associated with the remote system
1.0.8802.1.1.2.1.4.2.1.5 lldpRemManAddrOID The OID value used to identify the type of hardware component or protocol entity associated with the management address advertised by the remote system agent

3 Modules Design

3.1 Modules that need to be updated

3.1.1 SNMP agent

The "ieee802_1ab.py" MIB should be extended with a following tables:

  • lldpLocManAddrTable. The new MIB updater should be implemented.
  • lldpRemManAddrTable. The new MIB updater should be implemented.

4 Flows

4.1 Update the ports and queues counters

5 Unit tests

5.1 The lldpLocManAddrTable unit tests

5.2 The lldpRemManAddrTable unit tests

6 Open Questions

Clone this wiki locally