[tkined] Tnm::mib unpack LONG

From: Collard Joseph (Joseph.Collard@SAITRH.com)
Date: Wed Jun 06 2001 - 13:27:16 MET DST


Hello,
While using "Tnm::mib unpack identifier" I get an error "trailing
subidentifier in the instance identifier" .
The test case: retrieve a tabular variable of type MacAddress (this object
is also the index )
The test case and part of the MIB are provided hereafter.
>From the use of "Tnm::mib pack oid value" (as illustrated hereafter ) , it
appears that the problem comes from the fact that Tnm::mib does not consider
the fixed size of the TC MacAddress, but consider it as a variable size
OCTET STRING and adds its length. I guess "Tnm:mib unpack .." makes the
"reverse" error.
Does it exist a workaround ? Could this be a common issue for TC
corresponding to "OCTET STRING" ?
If I add the keyword IMPLIED within the index clause, it could perhaps work,
but at the same time the MIB is no more compliant with RFC 2578 (IMPLIED can
only be present for an object having a variable-length syntax )
Thanks in advance
Joseph Collard
SAIT-STENTO Wireless Solutions
R&D Software Engineer
Chaussée de Ruisbroek 66
B-1180 Brussels
Phone +32 2 370.54.83
Fax +32 2 376.62.20
E-mail joseph.collard@saitrh.com

==================================================
TEST CASE
% snmp12 getnext LEA-MIB!leaSrcMacAddress
{1.3.6.1.4.1.3515.2.1.3.3.1.1.0.0.14.205.39.143 {OCTET STRING}
00:00:0E:CD:27:8F}
% Tnm::mib name 1.3.6.1.4.1.3515.2.1.3.3.1.1.0.0.14.205.39.143
LEA-MIB!leaSrcMacAddress.0.0.14.205.39.143
% Tnm::mib syntax LEA-MIB!leaSrcMacAddress.0.0.14.205.39.143
OCTET STRING
% Tnm::mib type LEA-MIB!leaSrcMacAddress.0.0.14.205.39.143
SNMPv2-TC!MacAddress
% set _SrcObjectSplitList [Tnm::mib split
1.3.6.1.4.1.3515.2.1.3.3.1.1.0.0.14.205.39.143 ]
1.3.6.1.4.1.3515.2.1.3.3.1.1 0.0.14.205.39.143
% foreach {_SrcOID_sbf _SrcISID_sbf } $_SrcObjectSplitList {}
% set _DestOID [Tnm::mib name $_SrcOID_sbf ]
LEA-MIB!leaSrcMacAddress
% set _SrcIndexOIDList [Tnm::mib index $_SrcOID_sbf ]
1.3.6.1.4.1.3515.2.1.3.3.1.1
% set _SrcISIDList_sbf [Tnm::mib unpack
1.3.6.1.4.1.3515.2.1.3.3.1.1.0.0.14.205.39.143 ]
trailing subidentifier in the instance identifier
% Tnm::mib format [Tnm::mib type LEA-MIB!leaSrcMacAddress.0.0.14.205.39.143
] 00:00:0E:CD:27:8F
00:00:0E:CD:27:8F
% set _SrcIndexOIDList [Tnm::mib index $_SrcOID_sbf ]
1.3.6.1.4.1.3515.2.1.3.3.1.1
% Tnm::mib name 1.3.6.1.4.1.3515.2.1.3.3.1.1
LEA-MIB!leaSrcMacAddress

NOTE : pack adds the length (6), not considering that SNMPv2-TC!MacAddress
has a fixed length!

% Tnm::mib pack LEA-MIB!leaSrcMacAddress 00:00:0E:CD:27:8F
1.3.6.1.4.1.3515.2.1.3.3.1.1.6.0.0.14.205.39.143
%

==================================================
  leaSrcTable OBJECT-TYPE
              SYNTAX SEQUENCE OF LeaSrcEntry
              MAX-ACCESS not-accessible
              STATUS current
              DESCRIPTION
                      "A table which is maintained by the LEA itself
                       by learning the source MAC addresses from the
                       packets coming from the local ETHERPORT interface
                       (from MEB Bridge). It is used only for
                       registration purposes and aging.
                       The table is managed by both the LEA and the
                       management system. Entries can be created, deleted
                       and altered by the SNMP agent only through entries
                       in the leaSrcStaticTable."
              ::= { leaSources 3 }

          leaSrcEntry OBJECT-TYPE
              SYNTAX LeaSrcEntry
              MAX-ACCESS not-accessible
              STATUS current
              DESCRIPTION
                      "Information about a specific unicast MAC address
                       for which the LEA has knowledge about the priority
                       VCD status."
              INDEX { leaSrcMacAddress }
              ::= { leaSrcTable 1 }

          LeaSrcEntry ::=
              SEQUENCE {
                  leaSrcMacAddress MacAddress,
                  leaSrcPriority INTEGER,
                  leaSrcAgingTimer Counter32,
                  leaSrcStatus INTEGER
              }

          leaSrcMacAddress OBJECT-TYPE
              SYNTAX MacAddress
              MAX-ACCESS read-only
              STATUS current
              DESCRIPTION
                      "A IEEE802.3 frame MAC address."
               ::= { leaSrcEntry 1 }
==========
MacAddress ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "1x:"
    STATUS current
    DESCRIPTION
            "Represents an 802 MAC address represented in the
            `canonical' order defined by IEEE 802.1a, i.e., as if it
            were transmitted least significant bit first, even though
            802.5 (in contrast to other 802.x protocols) requires MAC
            addresses to be transmitted most significant bit first."
    SYNTAX OCTET STRING (SIZE (6))

--
!! This message is brought to you via the `tkined & scotty' mailing list.
!! Please do not reply to this message to unsubscribe. To subscribe or
!! unsubscribe, send a mail message to <tkined-request@ibr.cs.tu-bs.de>.
!! See http://wwwsnmp.cs.utwente.nl/~schoenw/scotty/ for more information.



This archive was generated by hypermail 2b29 : Thu Jan 03 2002 - 14:56:27 MET