SNMP lldpLocManAddrTable and lldpRemManAddrTable design - Staphylo/SONiC GitHub Wiki
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 LLDP 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 APP DB
Located in the Redis DB and running inside the container "database". Redis DB works with the data in format of key-value tuples, needs no predefined schema and holds various LLDP counters in the "LLDP_ENTRY_TABLE" tables.
1.2.3 LLDP sync daemon
This component is updating "LLDP_ENTRY_TABLE" tables in the APP DB with the information from LLDP docker container.
1.2.4 LLDP docker container
Consists the LLDP CLI tools and daemon with LLDP protocol implementation.
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 | The index value used to identify the port component (contained in the local chassis with the LLDP agent) associated with this entry |
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 implementation of lldpLocPortTable and lldpRemTable tables should be updated to support the missed OIDs which are described in Requirements.
- The lldpLocManAddrTable table should be implemented in ieee802.1 LLDP MIB.
- The lldpRemManAddrTable table should be implemented in ieee802.1 LLDP MIB.
3.1.2 LLDP sync daemon
The LLDP sync daemon should be extended to parse and update the following information:
- local port number, subtype and description
- local management address info
- remote port number, index and system capabilities map
- remote management address info
3.2 APP DB
The LLDP_ENTRY_TABLE table should be extended with following keys:
Key | Value |
---|---|
lldpLocPortNum | The local port index |
lldpLocPortIdSubtype | The type of local port identifier encoding |
lldpLocPortDesc | The description of local port |
lldpRemLocalPortNum | The port index that remote port is related to |
lldpRemIndex | The remote port index |
lldpRemSysCapSupported | System capabilities which are supported on the remote system |
lldpRemSysCapEnabled | System capabilities which are enabled on the remote system |
lldpRemManAddrSubtype | The type of management address identifier encoding |
lldpRemManAddr | The management address of the remote system |
lldpRemManAddrIfSubtype | The enumeration value that identifies the interface numbering method |
lldpRemManAddrIfId | Identify the interface number regarding the management address |
lldpLocManAddrSubtype | The type of management address identifier encoding |
lldpLocManAddr | The local management address |
lldpLocManAddrLen | The total length of the management address |
lldpLocManAddrIfSubtype | The enumeration value that identifies the interface numbering method |
lldpLocManAddrIfId | Identify the interface number regarding the management address |
4 Flows
4.1 Get SNMP LLDP OID
5 Open Questions
- Clarify how to implement the remote port index.