This appendix explains how to generate the absRelativePosition variable value.
The field contains a variable called absRelativePosition which is used to generate a unique value for an entity in a given tree. absRelativePosition is a programmatically generated value and is composed of a prefix and suffix. The suffix is always derived from entPhysicalParentRelPos.
The following is an example of a physical device tree: PD E1 PP1 E2 PP2
The prefix of each entity is derived from the absolute relative position from the root; for example:
PD takes the prefix 0
The child E1 takes the prefix 0:0
The child E2 takes the prefix 0:1, uniquely identifying itself from its sibling.
PP1 takes the prefix 0:0:0
PP2 takes the prefix 0:1:0
Some devices (due to a device reporting error) show that multiple equipment holders or physical ports have entPhysicalParentRelPos value that occupy the same relative position under their parent.
At a high level, the algorithm works by resolving conflicts by increasing the relative position of the subsequent duplicates by 1. This is best described using an example.
Table B-1 shows the applicable SNMP attributes that are used in determining the correct relative position.
Table B-1 SNMP Attributes Used to Determine Correct Relative Position
Index | entPhysicalDesr | entPhysicalParentRelPos | entPhysicalContainedIn |
---|---|---|---|
1 |
3640 chassis, Hw Serial#: 621974280, Hw Revision: 00 |
-1 |
0 |
2 |
3640 Chassis Slot |
0 |
1 |
3 |
Ethernet/WAN |
0 |
2 |
12 |
AmdP2 |
0 |
3 |
13 |
AmdP2 |
0 |
3 |
14 |
AmdP2 |
1 |
3 |
15 |
AmdP2 |
1 |
3 |
Where the headings in Table B-1 have the following significance:
Index: A numeric value used to represent a physical entity and must be unique.
entPhysicalDesr: A string description of the physical entity.
entPhysicalParentRelPos: The relative position within the context of its parent.
entPhysicalContainedIn: The Index of the parent entity denoting the current entity as a child. 0 indicates the root of the physical entity tree.
From Table B-1, notice that AmdP2 at index 12 and 13, and AmdP2 at index 14 and 15 have the same entPhysicalParentRelPos values (that is, 0 and 1 respectively) within the context of its parent, which is Ethernet/WAN.
Index 12 and 13 would both generate the name AmdP2::0.
Index 14 and 15 would both generate the name AmdP2::1.
To correct this, the algorithm briefly described above is executed as follows:
Index 12 is processed first and would generate the name "AmdP2::0".
Index 13 is processed and it is determined that the entPhysicalParentRelPos is a duplicate. The cartridge increments the value by 1 and generates the name "AmdP2::1". It also flags this entity's position as artificially generated.
Index 14 is processed and it is determined that an entity already exists with entPhysicalParentRelPos 1, however it was artificially generated. Therefore, Index 14 gets the name "AmdP2::1" and Index 13 gets the name "AmdP2::2".
Index 15 is processed and it is determine that the entPhysicalParentRelPos is a duplicate. The cartridge increments the last artificially generated value by 1 thereby creating name "AmdP2::3".
Table B-2 shows the result.