Last Winter we challenged anyone to correctly implement lexicographic ordering in a released product. Why did we do it? Because correct lexicographic ordering is essential to GetNext and GetBulk operations in SNMP. And because we really like a challenge. Jeff Johnson, a software engineer from Redback Networks had the winning entry in this open-to-anyone contest.
"We have a highly skilled engineering staff that understands the intricacies of SNMP and lexicographical ordering," he said. "So I knew we could do it."Kona Coffee and Hilo Hatties
For his effort, Jeff took his entire family to Hawaii, where they soaked up all the relaxation they could possibly handle.
"The most wonderful thing about Hawaii is that the pace is slow. There is no traffic, no honking horns, no crowds--other than that [darn] agriculture inspection," quips Jeff.
"And since I left my laptop and cell phone at home, there was no lure of the Internet. I didn't think about work. I didn't think about the stock market. I focused on more important decisions like 'lay on the beach or snorkel?' or 'mahi mahi or ahi shashimi?' For the most part, I just vegged out."Essential to Redback's SMS
Redback Networks manufactures a device called a Subscriber Management System (SMS), which performs aggregation, termination, and management of all varieties of broadband networking including DSL, cable, fiber, and wireless. Jeff's team focuses on the device's manageability. They implemented a command-line interface, as well as integration of a SNMP agent and design and implementation of numerous MIBs.
And how. "At the time the device was tested by IWL we had implemented the SNMPv2-MIB, the IF-MIB, the IP-MIB, the IP-FORWARD-MIB, the TCP-MIB, the UDP-MIB, the EtherLike-MIB, and portions of the RMON-MIB, ATM-MIB, FRAME-RELAY-DTE-MIB, and SONET-MIB," Jeff listed. This was one busy team.
Jeff proffered some helpful tips for those implementing lexicographical ordering:
- If you plan on implementing more than a few MIBs, start with a commercial SNMP agent that has a MIB compiler and code generator. Any SNMP agent can correctly perform lexicographical ordering, but a good code generator will do most of the work for you.
- Understand exactly how lexigraphical ordering works. Common errors include processing objects sorted in an internal order instead of sorted in the order specified by the appropriate INDEX clause, or incorrectly sorting objects which have variable-length indices.
- Use a good test tool, such as the SilverCreek, the SNMP Test Suite, to test all of the corner cases.
Congratulations, Jeff, and nice work!
For more information, see RFC 1157 section 4.1.3 for SNMPv1 operations. See RFC 1905 section 4.2.2 for SNMPv2 GETNEXT and section 4.2.3 for SNMPv2 GETBULK. See the white paper on Lexicographic Ordering in SNMP .