version 3.52 (2018-03-19)

  [ENHANCEMENTS]

  * set fallback for nonmatching interfaces in Cumulus class
  * better interface naming for Ubiquiti
  * modify mock utility to work under a perlbrew environment

version 3.50 (2018-03-14)

  [ENHANCEMENTS]

  * #198 Add Support for Gigamon devices

  [BUG FIXES]

  * #226 Avaya VSP devices - no ifAlias
  * #227 Remove bogus can() check in _set()
  * Fix SNMP::Info::IEEE802dot3ad when more than 1 LAG 

version 3.49 (2018-03-03)

  [ENHANCEMENTS]

  * Better Layer3::Cumulus interface naming

  [BUG FIXES]

  * Use GitHub for MIBs download for testing, instead of sf.net

version 3.48 (2018-03-03)

  [ENHANCEMENTS]

  * Add Layer3::Cumulus for Cumulus Networks devices

version 3.47 (2018-02-27)

  [ENHANCEMENTS]

  * Add LLDP-MIB::lldpXMedRemInventoryTable methods

version 3.46 (2018-02-17)

  [ENHANCEMENTS]

  * Add method to get err-disable cause for interfaces on Cisco

version 3.45 (2018-02-14)

  [ENHANCEMENTS]

  * Enable Layer3::Foundry for Brocade VDX platform

  [BUG FIXES]

  * #222 #238 #239 handle BayStack switches with port index 128 (zoeloe)

version 3.44 (2018-02-12)

  [ENHANCEMENTS]

  * Improve F10 OS version detection (laelly)
  * Better IPv6 prefix derivation

version 3.43 (2018-02-02)

  [BUG FIXES]

  * Fix identification of Brocade CES

version 3.42 (2018-02-02)

  [ENHANCEMENTS]

  * IPv6 Prefix Length support via IPv6::ipv6_addr_prefixlength

  [BUG FIXES]

  * Fix test for updated snmplabs.com data

version 3.41 (2018-02-01)

  [BUG FIXES]

  * Fixes to distriution metadata

version 3.40 (2018-01-28)

  [ENHANCEMENTS]

  * #240 Support for CheckPoint devies through SNMP
  * #240 Cisco SB switches fixup
  * #244 Add Adtran support
  * #241 Vyatta/VyOS support
  * #246 Nexus VRF support (works with Netdisco)
  * #244 Improve Juniper model reporting
  * #240 Improve H3C reporting

  [BUG FIXES]

  * #243 Nexus additional debug lines should be hidden

version 3.39 (2017-12-17)

  [ENHANCEMENTS]

  * #236 Enhanced Ubiquiti device support (L. Begnaud)
  * add HP J9774A model (H. Teulahti)

  [BUG FIXES]

  * fix scripts (F. Mass)
  * fix CiscoASA typos (laelly)

version 3.38 (2017-10-23)

  [ENHANCEMENTS]

  * Layer2::Airespace several newer 802.11 data rates added

  [BUG FIXES]

  * #232 Improve generic Info::Layer3 serial number detection

version 3.37 (2017-07-11)

  [ENHANCEMENTS]

  * Layer3::Juniper fixed to return os_ver for JUNOS 14.x and higher

version 3.36 (2017-06-28)

  [ENHANCEMENTS]

  * Migrate to Module::Build for distribution maintenance

version 3.35 (2017-06-28)

  [ENHANCEMENTS]

  * Include loading of LLDP-EXT-MED-MIB in LLDP.pm

  [BUG FIXES]

  * #180 support CiscoConfig on Nexus (sf.net:scratchfury)
  * #50 remove interface specific part from vrf interfaces on IOS (W. Vandersmissen)
  * #211 f5 class should respect UseEnums when faking i_type

version 3.34 (2016-11-20)

  [ENHANCEMENTS]

  * Support Cisco IPS Modules homed on the Cisco ASA (M. Kraus)

  [BUG FIXES]

  * Serial number on Nexus 9372 (genereic check for ID before using) (M. Caines)

version 3.33 (2016-04-27)

  [ENHANCEMENTS]

  * Move author-only tests to xt directory so they aren't run on installation
    by users

  [BUG FIXES]

  * Correct device serial number reporting for Cisco Nexus 5k switches with
    software version >= 7

version 3.32 (2016-04-26)

  [ENHANCEMENTS]

  * Add 200 Mbps and 2.0 Gbps aliases to SPEED_MAP
  * Add Palo Alto support
  * Add VMware support
  * Support for propMultiplexor as ifType
  * Add device MAC to APC UPS
  * [#61] Report APC model for PDU products
  * Removed DeviceMatrix from the distribution

  [BUG FIXES]

  * Support undefined (noSuchInstance) values in Offline mode
  * Do not init table cache if Cache provided by user
  * Avoid deep recusion when AUTOLOAD and carp collide
  * Detect Cisco VG350s as L3 devices instead of APs
  * fix for 'Use of inherited AUTOLOAD for non-method SNMP::Info::Layer2::HP::agg_ports_ifstack() is deprecated'
  * Workaround in IPv6.pm to deal with possibly incorrect IPV6-MIB implementations
  * [#71] AUTOLOAD typo-catcher search for SNMP::Info no longer anchored
  * [#70] Respect version/comm/secname on passed Session obj

version 3.31 (2016-01-22)

  [ENHANCEMENTS]

  * Support for CiscoSB OS and Version (D. Tuecks)
  * SONMP support for Enhanced Topology Table
  * Add support for channelized interfaces in L3::Passport

  [BUG FIXES]

  * Correct link to MIB tarball

version 3.30 (2015-11-16)

  [ENHANCEMENTS]

  * RT #106254: Add new sysObjectID mapping for Ubiquiti

  [BUG FIXES]

  * Correct link to MIB tarball
  * Correct port indexing of newer VSP 4K and 8K in L3::Passport
  * Statistics in the sysIfxStatTable are 64-bit counters, so they should
    override the 64-bit methods.

version 3.29 (2015-10-13)

  [ENHANCEMENTS]

  * Add IPv6::ipv6_addr() method to map IPv6 interface address indexes to actual addresses
  * Add support for (remote) IPv6 addresses to LLDP::lldp_addr()
  * Add LLDP::lldp_ipv6() and LLDP::lldp_mac() so that remote management
    addresses of specific types can be requested

version 3.28 (2015-06-18)

  [ENHANCEMENTS]

  * Add Layer3::Huawei class for Huawei Quidway switches
  * Modified generic Layer3::Cisco class: use community based indexing if
    the device returns a value for vtpVersion

  [BUG FIXES]

  * Correct port indexing of VSP 4K in L3::Passport

version 3.27 (2015-05-05)

  [ENHANCEMENTS]

  * Cisco Aironet PSU information
  * Only log adding mibdirs at debug level 2

  [BUG FIXES]

  * [#221] Drop Cisco Voice VLAN 4096

version 3.26 (2015-03-07)

  [ENHANCEMENTS]

  * Add fan and psu reporting to Layer3::Dell
  * Include Voice VLANs in (tagged) VLAN Membership on Cisco devices

  [BUG FIXES]

  * Fix typo in MRO::print_superclasses

version 3.25 (2015-02-25)

  [ENHANCEMENTS]

    * Add new model name mappings for to Layer2::HP

version 3.24 (2015-02-04)

   [ENHANCEMENTS]

    * Support RSTP and ieee8021d STP operating modes in RapidCity

   [BUG FIXES]

    * Fix single instance leafs defined in %FUNCS to behave like table leafs
    * Fix incorrect FDB ID to VLAN ID mapping in Bridge and L3:Enterasys

version 3.23 (2014-12-09)

   [ENHANCEMENTS]

    * Update MIB used in L1::Asante
    * Enhanced STP support for L3::Extreme

   [BUG FIXES]

    * Fix Cisco VLAN membership issue introduced in 3.22 related to capturing
      port VLANs on Cisco interfaces which are configured for trunking but
      are not in operational trunking mode

version 3.22 (2014-12-02)

   [NEW FEATURES]

    * Support obtaining FDB in Avaya SPBM edge deployments in L2::Baystack
      NOTE: This requires a RAPID-CITY MIB with the rcBridgeSpbmMacTable
    * Support for Fortinet devices in new class L3::Fortinet

   [ENHANCEMENTS]

    * Include LLDP support in base Layer2 and Layer3 classes. Due to the
      widespread adoption of LLDP, this should improve mapping networks
      when devices aren't supported in a more specific class.
    * No longer ignore interfaces based on name, in base L2/L3/L7 device
      classes. For several device classes SNMP::Info will now return tunnel
      interfaces and/or loopbacks, if present.
    * Use dot1qVlanCurrentTable if available to capture dynamic and static
      VLANs, fall back to dot1qVlanStaticTable if not available.
    * New method i_vlan_membership_untagged() for VLANs transmitted as
      untagged frames.
    * Capture Aruba AP hardware and software version when available
    * New STP methods to support gathering information from devices running
      mutiple STP instances such as PVST and MST
    * Enhanced STP support for Avaya and Foundry classes

   [BUG FIXES]

    * [#64] Misdetection: Wireless APs, add products MIB to L2::3Com
    * Use FDB ID to VID mapping if available to determine end station VLAN
      rather than assuming they are the same.
    * Capture port VLANs on Cisco interfaces which are configured for
      trunking but are not in operational trunking mode
    * Correct munging of stp_p_port(), i_stp_port(), and stp_root() methods
      in Bridge
    * In LLDP.pm don't create a variable in a conditional

version 3.20 (2014-09-08)

   [NEW FEATURES]

    * Override layers in Juniper for routers with switch modules

   [BUG FIXES]

    * Update MANIFEST to include Ubiquiti files

version 3.19 (2014-08-01)

   [NEW FEATURES]

    * Support for Ubiquiti Access Points in new class L2::Ubiquiti (begemot)
    * Preliminary support for 3Com switches in new class L2::3Com (begemot)

   [BUG FIXES]

    * Fix Avaya detection lldp_port()
    * Silence uninitialized value warning in L3::Cisco
    * H3C fixes (begemot)
    * Only use L2::ZyXEL_DSLAM for ZyXEL DSL modules

version 3.18 (2014-07-02)

   [ENHANCEMENTS]

    * Pseudo ENTITY-MIB methods added to L3::Tasman for hardware information
    * Capture VPC Keepalive IP addresses in L3::Nexus (jeroenvi)
    * L2::Netgear inheritance clean up and removal of unnecessary c_* methods
      defined in Info base class

   [BUG FIXES]

    * Correctly identify device type (class) for instantiated objects which
      have overridden layers.
    * [#58] Fix inheritance in L3::FWSM and L3::CiscoASA
    * [#71] Don't try to match on a false port description in lldp_if
    * [#54] Possible bad values returned for cdp_id and lldp_port with some HP
      gear (Joel Leonhardt)

version 3.17 (2014-06-23)

   [ENHANCEMENTS]

    * POD tests are not required for distribution.

version 3.16 (2014-06-23)

   [ENHANCEMENTS]

    * Add method resolution discovery in SNMP::Info::MRO helper module
    * Consolidate CiscoImage class into CiscoStats class
    * Clean up inheritance for Cisco classes.  With this change
      all applicable classes now inherit CiscoAgg, CiscoStpExtensions,
      CiscoPortSecurity, CiscoPower, and LLDP classes.
    * Remove inheritance of classes the devices do not support in L3::FWSM
      and L3::CiscoASA

   [BUG FIXES]

    * Use CiscoVTP methods to get interface VLAN in L3::Cisco rather than
      solely relying on the interface description.

version 3.15 (2014-07-10)

   [NEW FEATURES]

    * Offline mode and Cache export/priming.

   [ENHANCEMENTS]

    * Return serial number for Cisco 3850 from entPhysicalSerialNum

   [BUG FIXES]

    * Cisco SB serial number probably did not work

version 3.14 (2014-06-07)

   [ENHANCEMENTS]

    * Improvements to Mikrotik module (Alex Z)
    * Don't unshift length from broken lldpRemManAddrTable implementations (G. Shtern)
    * 802.3ad LAG support in Layer3::H3C
    * Add LLDP capabilities to Layer2::HPVC class

   [BUG FIXES]

    * Return correct VLAN info with qb_fw_table() on Layer2::HP

version 3.13 (2014-03-27)

   [ENHANCEMENTS]

    * Cisco PAgP support added to LAG method
    * HP ProCurve LAG support by inheriting Info::Aggregate class

version 3.12 (2014-02-10)

   [ENHANCEMENTS]

    * Modify L3::Passport to obtain forwarding table information from
      RAPID-CITY if information is not available in either Q-BRIDGE-MIB or
      BRIDGE-MIB.  Needed for VSP 9000 prior to version 4.x (Tobias Gerlach)

   [BUG FIXES]

    * [#52] NETSCREEN-IP-ARP-MIB considered harmful
    * Foundry/Brocade aggreate port master ifIndex resolved properly

version 3.11 (2014-01-26)

   [NEW FEATURES]

    * [#31] port-channel (aggregate) support.  Aggregate support added in new
      agg_ports() method.  Inital support added for Arista (ifStack),
      Avaya (MLT), Brocade (MST), and Cisco (802.3ad).

   [ENHANCEMENTS]

    * Use Q-BRIDGE-MIB as default with fallback to BRIDGE-MIB across all
      classes for the fw_mac, fw_port, and fw_status methods
    * Additional support for Avaya 8800 series in L3::Passport

   [BUG FIXES]

    * Modify cdp_cap() to handle devices which return space delimited strings
      for cdpCacheCapabilities rather than hex strings
    * [#51] Netdisco shows broken topology for devices with no alias entry
      for primary IP - Collect nsIfMngIp when getting IP interfaces in
      L3::Netscreen
    * Fix Extreme XOS i_vlan_membership - Revert [28bbe0], fix bug with
      untagged being added to @ret twice (Robert Kerr)
    * Skip default CPU management addresses on VSP and 8800/8600 series in
      L3::Passport to prevent erroneous duplicate addresses

version 3.10 (2013-12-16)

   [BUG FIXES]

    * Data values of zero are now sent to munge method instead of skipped

version 3.09 (2013-12-15)

   [NEW FEATURES]

    * [#45] IBM (Blade Network Technologies) Rackswitch support in new class
      L3::IBMGbTor
    * [] set_i_untagged combines both set_i_vlan and set_i_pvid in one method
    * [#41] Riverbed Steelhead support added in new class L3::Steelhead
    * New c_cap(), cdp_cap(), and lldp_cap() methods which return a hash of
      arrays with each array containing the system capabilities reported as
      supported by the remote system via CDP or LLDP.

   [ENHANCEMENTS]

    * Remove "Switch" from model name in L3::Foundry
    * [#49] IOS-XR support, add identification of IOS XR and version in
      CiscoStats
    * Aruba POE Support
    * Aruba utilizes Q-BRIDGE-MIB when available for VLAN information to
      better support wired switches
    * Add lldp_platform() method which uses lldp_rem_sysdesc() or
      lldp_rem_sysname() to provide a clue to type of remote LLDP capable
      device.
    * [RT#78232] Extend cdpCacheCapabilities to show more CDP bits

   [BUG FIXES]

    * Modify _xos_i_vlan_membership() in L3::Extreme to only include tagged
      ports
    * When determining the BSSID in Airespace there is only one hexadecimal
      digit available so skip if outside the range of 1-16, 17 is reserved
      for 3rd party AP's
    * Don't assume entity index 1 is the chassis and has serial in Layer3
    * Capture serial number on newer Aruba devices
    * munge_bits() correctly unpacks BITS
    * Fix for single instance table leafs in test_class_mocked.pl
    * Fix power module indexing

version 3.08 (2013-10-22)

   [ENHANCEMENTS]

    * Rewrite of L3::Aruba, now supports pseudo ENTITY-MIB methods to gather
      module information, more interface information for APs, more
      wireless information to include client stats, and arpnip information
      from wireless clients.  WARNING: AP device interfaces are now based on
      AP MAC and radio versus BSSID to align with other wireless classes.
    * [#64] Add i_speed_admin() to L2::2900 (psychiatric)
    * [#66] Support for VSS via CISCO-VIRTUAL-SWITCH-MIB in L3::6500
    * [#67] Add the possibility to set speed for Layer3::C4000 (psychiatric)
    * [#69] set speed and duplex on Cisco VSS system (psychiatric)
    * munge_null() now removes all non-printable control characters
    * Support Aironet standalone access points (Layer2::Aironet) running IOS15
    * lldp_port() returns port ID instead of port description if the port ID
      subtype is "interface name".  This improves the ability to correlate
      ports by name when a port description is also set.
    * Add docs note about make_snmpdata.pl under EXTENDING SNMP::Info
    * [#46] Brocade (Foundry) Module Support
    * Brocade (Foundry) POE Support
    * Support peth_port_power() power supplied by PoE ports in L2::Baystack
    * Update test_class.pl utility to allow ignore of snmp.conf and test
      summarize more standard class methods
    * On EOS, the LLDP port ID is a dot1d port
    * Use LLDP in Layer3::Aruba, for switches
    * Clean up more model names in L2::Baystack

   [BUG FIXES]

    * [#68] Fix device_port entries for switches with non-unique
      ifDesc (Nic Bernstein)
    * Don't try to munge undef values
    * [#49] Perl 5.18 UNIVERSAL::can change could cause infinite loop
    * Silence warning from uninitialized variable in L3::Passport e_descr()

version 3.07 (2013-10-01)

   [ENHANCEMENTS]

    * Support for Pica8 switches in L3::Pica8
    * Factor out cache/munge code from global/attr methods

   [BUG FIXES]

   * [#48] Switch duplicate J9624A for J9626A in Layer2/HP (R. Kerr)
   * Correct device serial number reporting for Nexus devices
   * Override ipAddrTable methods in L3::Nexus as some versions do not
     index the table with the IPv4 address in accordance with the MIB
     definition.

version 3.05 (2013-08-16)

   [ENHANCEMENTS]

    * [#47] Add model info on HP 2530 and HP 2920 series
    * Add support for Cisco Small Business series
      Layer2/CiscoSB class
    * Add proper LLDP support to Netgear.pm
    * Change $netgear->interfaces() to use ifName rather than ifDescr
      as the former is unique per interface while the latter is not.
      If ifName is not present, concatenate ifDescr and ifIndex
      to achieve a unique value.
    * Properly report hardware version, Serial No. and OS Version for
      Netgear.

version 3.03 (2013-07-11)

    [BUG FIXES]

    * Add missing =back to POD (A. Hartmaier)

version 3.02 (2013-07-08)

    [ENHANCEMENTS]

    * Properly pull os_ver from Netgear GS series switches.
    * Support Alcatel devices with layer3 features.
    * Identify Cisco Aironet 1140 APs as Layer2::Aironet
    * LAN switch support added to Layer3::Aruba class
    * [RT#86725] - Identify Cisco Catalyst 3850 as Layer3::C6500 (C. Causer)

version 3.01 (2013-04-13)

    [API Changes]

    * The methods c_ip(), c_if(), c_port(), c_id(), and c_platform() now
      represent common topology methods and will try to return a combined
      hash of data from all L2 topology protocols either running on the
      device or specified in the method call.  The topology specific methods
      have been been prefixed with the protocol name in lowercase so that
      they can be called directly, sonmp_ip(), cdp_ip(), etc.
    * L2::Bay and L2::Foundry have been removed from the distribution.  Both
      classes were depreciated and all functionality is available through
      L2::Baystack and L3::Foundry.

    [NEW FEATURES]

    * [3160037] - Support _raw suffix on methods to skip munging
    * [3185391] - Support for F5 devices in new class L3::F5
    * [3323814] - Arp support for Netscreen (David Baldwin)
    * [3323821] - Support for Netscreen w/ WLAN (eg SSG5) (David Baldwin)
    * [3599277] - Q-BRIDGE Support to collect VLAN in macsuck
    * [3033731] - Alcatel-Lucent OmniSwich AMAP Support in new AMAP class
    * [3598896] - Lantronix device support (J R Binks)
    * [3598337] - Lantronix SLC support
    * Support for Cisco ASA in L3::CiscoASA (Kraus/Hartmaier/Bernstein)
    * Support for Avaya VSP 9000 series in L3::Passport
    * Support for Avaya VSP 7000 series in L2::Baystack
    * Support Avaya (Trapeze) Wireless Controllers in new class L2::NWSS2300
    * Support Juniper (Trapeze) Wireless Controllers in new class L2::Trapeze
    * Support for newer Radware Alteon ADC switches 4408/4416/5412/5224 and
      older AWS 2000/3000 series in existing L3::AlteonAD
    * Support for H3C & HP A-series in new class L3::H3C
    * Support for Citrix Netscaler appliances in new class L7::Netscaler
    * New configuration option IgnoreNetSNMPConf will ignore Net-SNMP
      configuration files on object initialization
    * Two new utilities added in t/util to assist in developing device
      support; make_snmpdata.pl gathers SNMP data (snmpwalk) in a format that
      can be used with test_class_mocked.pl which mocks an SNMP agent to
      enable testing with no network access to a device.

    [ENHANCEMENTS]

    * UNIVERSAL::can() now works with dynamic methods
    * Dynamically generated methods are added to symbol table to avoid
      AUTOLOAD on subsequent calls
    * L2::Airespace now supports 802.11n client tx rates
    * L2::Airespace now reports AP Ethernet MAC as port MAC for radio ports
    * CiscoStats improvements to determine os versions, eg IOS XE ver on Sup7L-E
    * CiscoStats now reports 'ios-xe' if the device runs IOS XE (used to be 'ios')
    * Improved support of XOS based Extreme devices

    [BUG FIXES]

    * [3564920] - lldp_if gives wrong data for Enterasys

version 2.11 (2012-12-09)

    [BUG FIXES]

    * Add fall-back for sysDescr on Force10

version 2.10 (2012-12-08)

    [NEW FEATURES]

    * Support for Force10 devices (W. Bulley)

version 2.09 (2012-11-28)

    [NEW FEATURES]

    * New method i_ssidmac() to get BSSID's from AP's with initial support
      in L2::Aironet and Airespace classes
    * Support for Avaya Secure Routers in new class L3::Tasman
    * Add EDP and LLDP L2 Topology to L3::Extreme
    * [3185393] Support for Juniper SSL VPN in new class L7::Neoteris
    * [3381027] Support for Cisco Nexus in new class L3::Nexus
    * [1424336] Support for Extreme Discovery Protocol (EDP)

    [ENHANCEMENTS]

    * [3017571] Add LLDP support for NetSNMP device class (begemot)
    * [3418918] Extreme devices now report OS as either extremeware or xos
    * [2809045] Strip preceding netscreen from model name in L3::Netscreen
    * [] Classify Linksys 2024 as L3::Dell (Rogier Krieger)

    [BUG FIXES]

    * Fixed logic to return cached data for table methods when available and
      not a partial fetch
    * Fix typo in PoD for Bridge.pm and CiscoConfig.pm (William Bulley)
    * Fix/improve IPv6 neighbor cache handling, especially for Cisco Nexus

version 2.08 (2012-07-15)

    [NEW FEATURES]

    * Basic support for APC UPS devices
    * [2993691] Support for SonicWALL devices in new class L3::SonicWALL (phishphreek)
    * [2996795] Support for Kentrox devices in new class L2::Kentrox (phishphreek)
    * [] Basic support for Blue Coat proxy devices in new class L3::BlueCoatSG (jeroenvi)
    * [] Support Cisco 6500 / Sup2T in L3::C6500 class (jeroenvi)

    [ENHANCEMENTS]

    * Pseudo ENTITY-MIB methods added to L3::Juniper for hardware information
    * Add method to report current transmit power of the radio interface,
      dot11_cur_tx_pwr_mw(), in Airespace class
    * [3085411] Activate L3 properties for Netgear GSM7224v2 (phishphreek)
    * [3085413] SNMP OIDs for Netgear Serial and OS Ver (phishphreek)
    * [3286549] Dell LLDP Support (Nico Giefing)
    * [3469527] Netgear LLDP Support (Nic Bernstein)
    * [3472052] moduleSerialNumber support for Cisco Stack (Slava)
    * [3523320] Better VLAN support in Juniper class (Web Bulley)
    * [3532261] LLDP support in C6500 and related (Carlos Vicente)
    * [3538949] Updated switch models in L2::HP (jeroenvi)

    [BUG FIXES]

    * Get OS version for Juniper devices not reporting in sysDescr
    * Correct base MAC reporting for Juniper devices
    * Correct reporting of SSID broadcast status in Airespace class
    * [3541442] Change L2::Catalyst port names to what is reported in CDP
    * [2132349] Add an additional check to get Foundry OS version
    * [2929883] [3413999] LLDP interface mapping issue
    * [3297786] LLDP TimeMark component defaults to zero (David Baldwin)
    * [2988163] Detect Juniper SSG firewalls as Layer3::Netscreen (R. Kerr)
    * [3317739] Fix for Baystack without POE on stack member 1 (David Baldwin)
    * [2037444] os_ver fails on some Extreme versions (Robert Kerr)
    * [2980789] Fix root_ip to try OSPF RouterID first (Brian De Wolf)
    * [2986858] Fix the patch from this ticket (Oliver Gorwits)
    * [3136084] Rename Allied Telesyn to Allied Telesis (Oliver Gorwits)
    * [3268104] CiscoVTP.pm i_vlan_membership() array bounds (Michael Sanderson)
    * [3497004] Clarify POD description of default values (a2w)
    * [3502533] Layer2/Baystack interface indexes > 513 (Robert Nyqvist)

version 2.06 (2011-09-28)

    [NEW FEATURES]

    * Support for PacketFront devices in new class L3::PacketFront
    * Support for Mikrotik devices in new class L3::Mikrotik
    * Support for HP VirtualConnect switches in new class L2::HPVC
    * Support for ADSL-LINE-MIB in new class AdslLine

    [ENHANCEMENTS]

    * POD clarification on i_speed() munging by Info.pm
    * Added i_stack_status method that can be used for finding the parent
      interface for e.g. ADSL interface speed determination

    [BUG FIXES]

    * [3344843] Fix returning serial() and os_ver() for web-managable HP
      switches, introduced by HP/HP4000 class split, reported by J R Binks
    * [2809033] Put L2-only Cisco blade switches in L3::C6500
    * [3408506] Fix uninitialized value in IPv6 when neighbor state is
      incomplete (Michael Borgelt)

version 2.05 (2011-06-23)
    + Fix broken function call in L2::Aironet
    + Promote L2::Aruba to L3::Aruba, as Aruba devices can be L3 entities and
      provide L3 information.

version 2.04 (2011-03-31)
    + Support for older HP switch models moved to new L2::HP4000 class
    + Fix VLAN changing in L2::HP and L2::HP4000 classes
    * Updated model lists in HP classes
    + [2980782] Added L3::CiscoFWSM for Cisco Firewall Services Modules
      (Brian De Wolf)
    + Added L3::Pf for FreeBSD PFSense Firewalls (max)
    * Added specific functions for neighbor mgmt addresses to CDP class
    * Implemented os_bin() method in CiscoStats
    + [2980787] Fix for C1900 bp_index not containing interfaces.
      (Brian De Wolf)
    + [2599795] Added vendor_i_type() method to HP and HP4000 clases
    + [2688801] Minor modification for obscure Proxim/Orinoco device
      (jrbinks)
    + [3051443] Add PoE measured power per port to Cisco, Extrme and HP
      classes (jeroenvi)
    * Minor tweaks to support devices without sysServices
    * Added Cisco CBS3xxx blade switches to L3::C6500
    * Fix for FWSMs not being detected properly.  Special thanks goes to
      Jukka Pirhonen for pointing it out. (Brian De Wolf)
    + Added support for IPv6 to physical address mapping
    * Added ME340x to L3::C3550
    * Added new ProCurve models to HP class
    * Fixed i_speed_raw not returning raw values (Alexander Hartmaier)

version 2.01 (06/12/09)
    + Added CiscoStpExtensions Class (Carlos Vicente)
    + Added Layer3::Arista (fenner)
    + [2020353] Added L3::Altiga for Cisco (Altiga) VPN3000 Concentrators
                (Jeroen van Ingen)

    * Fixed RFC1213-MIB vs IF-MIB collision in ifOperStatus
    * Updated test_class.pl for better debug info and relative path
    * Add cisco vendor detection by OID in Layer3.pm (Sam Stickland)
    * Fix CaSe of EtherLike-MIB in EtherLike.pm (Alexander Hartmaier)
    * Added Cisco FWSM to L3::Cisco
    * Added s222_rp to L3::C6500
    * Added CIGESM to L2::C2900
    * Added Airespace WLC to L2::Airespace
    * Updated POD and DeviceMatrix quite a bit
    * Added ENTITY-MIB to CiscoStats for better model handling above
    * Fix networkaddress handling in LLDP-MIB
    * Added CiscoConfig to L2::Aironet, L3::C3550 classes
    * Better SSID capabilities for L2::Aironet
    * Fix CDP vs LLDP in c_id() for HP Class
    * test_class.pl improvements

version 2.00 (08/01/08)
    + Support for Alcatel-Lucent OmniSwitch via L3::AlcatelLucent
    + Support for Alcatel-Lucent Service Router via L3::Timetra
    + Support for Alcatel-Lucent OmniAccess via L2::Aruba

    * Silence warnings in MAU due to uninitialized variables

version 1.09 (07/22/08) - Beta/developer release
    + Added support for HP ProCurve Foundry OEM switches, such as the 9300
      series, in new class L3::HP9300 (contributions from Douglas McKeown and
      Ivan Auger)
    + Added support for CISCO-PAE-MIB in CiscoPortSecurity (Kesy)
    + Support for D-Link devices through L3::Dell
    + Support for Linksys SRW2048 through L3::Dell
    + Support for IBM BladeCenter 4-Port GB Ethernet Switch Module through
      L3::Dell (Alex Kramarov)
    + Support for newer Nortel Alteon switches and Nortel BladeCenter Switch
      Modules in L3::AlteonAD
    + Support for Cisco 1250 series through L2::Aironet
    + Updates to fan, power supply, and serial number methods in
      L2::HP (Jeroen van Ingen)
    + Use Cisco Client Association MIBs for Aironet client reporting
      via fw_mac
    + Support VLANs on Aironet
    + Get the proper radio MAC address from aironet in MBSS mode
    + Additional wireless statistics from Aironet
    + Add support to specify MIB to resolve leaf names conflicts in
      %GLOBALS and %FUNCS.
    + Added munge_port_list() and modify_port_list() methods to assist in
      working with PortList objects.
    + Added set_multi() method to enable a SNMP set command on several new
      values in one request.  Required for complex set operations
      on some agents.
    + Infrastructure for SNMPv3 support:
        + Save the SecName passed into the constructor
        + Create an update() function, which replaces the underlying
          SNMP session using different parameters.
        + Return the SecName instead of community from snmp_comm() when using
          SNMPv3.

    * L2::HP now isa Layer3 instead of Layer2 to support arpnip
      (Dudley Freeman)
    * Silence warnings from Cisco devices which don't return values for
      extended VLAN range (1024-4096)
    * Documentation coverage, spelling, and syntax updates
    * set_i_pvid(), set_i_vlan(), set_add_i_vlan_tagged(),
      set_remove_i_vlan_tagged() removed from Bridge and HP classes due to
      incompatibility across devices.

version 1.07 (11/26/07) - Beta/developer release

version 1.05 (11/25/07) - CVS only. No official release
    + Added support for LLDP in new class LLDP (contributions from Bernhard
      Augenstein)
    + Added device specific support for LLDP in L2::HP, L2::Baystack,
      L3::Enterasys and L3::Foundry
    + Added support for Enterasys devices as new class L3::Enterasys
    + Added support for Dell PowerConnect switches as new class L3::Dell
    + Added basic support for generic routers running Microsoft Windows OS
      as new class L3::Microsoft (begemot)
    + Added basic support for Sun routers as new class L3::Sun (begemot)
    + Added basic support for Juniper NetScreen devices as new class
      L3::Netscreen (Kent Hamilton)
    + Added support for Cyclades terminal servers as new class L1::Cyclades
    + Added support for Cisco (Airespace) wireless controllers as new class
      L2::Airespace
    + Added support for Nortel Ethernet Routing Switch 2500 series and
      Business Ethernet Switches (David Siebörger)
    + Update of L3::Foundry to support all Foundry devices including newer
      switches.  Depreciate L2::Foundry.
    + Added generic device type detection using IANA assigned enterpise
      number extracted from sysObjectID
    + Added ifDiscards and other missing entries from IF-MIB::ifEntry (Greg King)
    + Added CGESM devices to L2::C2900 class (Alexander Hartmaier)
    + Added support for dual speed 10/100 hubs and i_speed() in L1::Bayhub
    + Added i_ssidlist(), i_ssidbcast(), and i_80211channel() methods to
      L2::Aruba, Airespace, and L2::NAP222x classes
    + New class IEEE802dot11 class for generic standards based wireless AP
      support to include i_ssidlist()and i_80211channel() methods.
    + L2::Orinoco inherits from new IEEE802dot11 for i_ssidlist()and
      i_80211channel() support.
    + Added new VLAN methods i_pvid(), i_vlan_membership(), set_i_pvid(),
      set_i_vlan(), set_add_i_vlan_tagged(), set_remove_i_vlan_tagged() to
      Bridge, CiscoVTP, Extreme, HP, and RapidCity classes.
    + Added set_i_speed_admin() method to RapidCity class,
    + Added set_i_duplex_admin() method to RapidCity class,
    + Added OSPF Neighbor Tables, SF Patch 1577918 to Layer 3 (Andrew Herrick)
    + Added CiscoConfig class, SF Patch 1555001 (Justin Hunter)
    + Enable load_ methods for %GLOBALS and MIB Leaf node names.
    + Enable dynamic methods in AUTOLOAD with MIB Leaf node names for loaded
      MIBs without definition in %FUNCS or %GLOBALS.  Single instance mib leafs
      will be treated as a GLOBAL and returna scalar while mib leafs which
      reside in a table will be treated as a FUNC and return a reference to a
      hash.
    + Enable load_ methods for %GLOBALS and MIB Leaf node names.
    + Add loop detect option and code for getnext table column walks.
    + Add Layer3::NetSNMP for Net-SNMP-based hosts, part of
      SF patch 1557529 (Bradley Baetz).
    + Add EIGRP Neighbor Tables to L3::Cisco SF Patch 1577927 (Andrew Herrick)
    + Additions to CiscoQOS and CiscoStats (Alexander Hartmaier)
    + Emulate ENTITY-MIB Physical Table methods for devices which don't
      have ENTITY-MIB support in Airespace, Bayhub, Baystack, BayRS,
      NortelStack, and Passport classes.
    + Enable use of MIB Leaf node names in SNMP sets.
    + Add POWER-ETHERNET-MIB and CISCO-POWER-ETHERNET-EXT-MIB support.

    * Fix for bug where an SNMP error in any operation would cause subsequent
      table get operations to fail while using the same session, originally
      identified by Nicolai Petri.
    * Enable single instance partial table fetches (Alexander Hartmaier)
    * Enable partial table fetches in overriden table methods (Justin Hunter)
    * Allow partial table fetches with load_ methods.
    * Fixed vlan trunk port handling bug in L2:HP (Michael Robbert)
    * Correct bp_port() definition in Bridge class (Reported by Nicolai Petri)
    * Remove port security definitions from CiscoStack and move into new class
      CiscoPortSecurity.  Needed to support devices such a L3::C4000 which
      support CISCO-PORT-SECURITY-MIB, but not CISCO-STACK-MIB.
      (Reported by Prakash RudraRaju)
    * Correct port numbering for Nortel 8110, 1100, 1150 in L3:Passport
      (Reported by David Pinkoski)
    * Documentation updates
    * Translate OIDs returned by Entity MIB e_type
    * Modify inheritance to use Cisco classes before generic classes
    * Create e_index method in ENTITY-MIB to facilitate emulation methods in
      other classes as entPhysicalIndex is not-accessible.
    * Only return MAC from munge_mac() if it actually is a MAC. Fix for
      netdisco where device would not be inserted in DB due to malformed MAC.
    * Enable SUPER class calls to find autoloaded methods (Bernhard Augenstein)
    * Clear attribute cache on sucessful SNMP set.
    * Improve accuracy of operational and administrative duplex reporting on
      devices using CiscoStack.
    * All i_type() methods now use standard IANAifType values.
    * Report bridge groups (VLANs) in L2::C1900.
    * Turn on bulkwalk for C6500.  Users with buggy OS versions can turn
      it off when creating the object.
    * c_ip() now attempts to return only IPV4 addresses, use c_addr() for all
      address types.

version 1.04 (07/08/06)
    +  Added C1130 and C1240 to L2::Aironet (Ralf Gross)
    +  Added detection for Cisco 2960, 2940, 3400 w/ MetroBase
    +  Added generic L2::Cisco Class
    *  Corrected detection for Cisco Supervisor Engine 2 and 32 (IOS).
    *  Fixed warnings in CiscoStack
    *  Updated ProCurve HP device detection for newer firmwares

version 1.03 (04/14/06) - Beta/developer release
    * Use ipNetToMedia table instead of atTable for ARP
    * Remove CiscoStack from Layer3::C4000
    * Fixed bug in MAU class when polling devices without MAU-MIB support

version 1.01 (04/08/06) - Beta/developer release
    + Change version numbers to X.XX format.  Odd releases are beta
      or developer only releases.  Even are official releases.

version 1.0 (04/07/06) - CVS only. No official release
    + Added Interface FlowControl status to CiscoStack (Nicolai Petri)
    + Added CiscoImage class (Matthew Tuttle)
    + Added C1200 and C350 IOS devices to L2::Aironet (Matthew Tuttle)
    + Added support for Foundry IronWare and gave L3::Foundry CPR
    + Added support for Foundry EdgeIrons as new class L2::Foundry
    + Added BulkWalk and BulkRepeaters options to new()
    + Added DebugSNMP option to new()
    + Added CISCO-ENTITY-VENDORTYPE-OID-MIB,CISCO-PRODUCTS-MIB,CISCO-STACK-MIB
      to CiscoStats.pm for model()
    + Check for bulkwalk_no() method
    + Added Entity.pm to L3 and L2 classes per N. Petri's suggestion.
    + Added support for Passport/Accelar 1100 and 1200 series in L3::Passport
    + Added support for Passport/Accelar 8100 series in L3::Passport
    + Added support for Passport 1600 series as new class, L3::N1600
    + Added support for Extreme Alpine and Summit switches as new class
      L3:Extreme (Mike Hunter and Eric Miller)
    + Added support for Aruba wireless switches (Eric Miller and Brian Chow)
    + Added support for Nortel 2700 series (Airespace) wireless switches
    + Added support for Synoptics hubs as new class L1:S3000
    + Added Cisco QOS and RTT classes (Alexander Hartmaier)
    + Added BGP Peer Table to L3 class (Carlos Vicente)
    + Added ipforwarding status to Info base class (Carlos Vicente)
    + Added STP port state to Bridge class (Alexander Barthel)
    + Added L3 support (arpnip) to Baystack class for routing capable switches
    + Added set_i_duplex_admin() and set_i_speed_admin() to C2900 class
      (Justin Hunter)
    + Added set_i_duplex_admin() and set_i_speed_admin() to CiscoStack class
    + CDP added to Aironet class
    + Added Juniper class
    + Added support for Catalyst 4000 and 4500, get admin. duplex
      and speed properly
    + Added i_speed_high(), which i_speed() uses if needed to support
      interfaces >4Gbps

    * More error checking in  _load_attr() around bulkwalk code
    * Minor warning fix in L3::Aironet::os_ver()
    * Abstracted remaining Cisco stuff from L3 to L3::Cisco
    * Removed all Cisco stuff from L2
    * Expanded Entity.pm to cover the whole ENTITY-MIB and improved docs.
    * changed all refs to $DEBUG to $self->debug() for reentrant code
    * [ 1111284 ] Parameters not being set with AutoSpecify - fixed.
    * Turned off BULKWALK for C1900 and C6500 classes.
    * Added exception handling for V2 ENDOFMIBVIEW
    * Fix in SONMP when topology not enabled
    * Fix in L3::Passport root_ip()
    * Fix in L3::Passport bp_index() some devices not returning complete index.
    * Enable set_i_up_admin() in Bayhub
    * Recognize new Nortel model names in Baystack and Passport classes
    * Orinoco class should now recognize more models
    * Cleanup model recognition in Baystack class, recognize more models
    * Modify Catalyst class to use CISCO-STACK-MIB for brige port index mapping
      some devices having problems returning complete index from BRIDGE-MIB
    * Check root ip for reachability before assignment
    * HP class should recognize more models
    * Fix in HP class for models not returning full bp_index
    * [ 1436103 ] L2::Aironet devices weren't getting their model
      translated properly

verison 0.9 (11/15/04)
    + ** Added full Nortel/Bay/BayStack support
        by new developer Eric Miller.
        L2::Bay now depricated.
    + Added Alteon Ace support (Eric Miller)
    + Added Nortel Cotivity support (Eric Miller)
    + Added Nortel BayRS support (Eric Miller)
    + Added Nortel Centillion support (Eric Miller)
    + Added Nortel AP 222x support (Eric Miller)
    + Added Orinco AP support (Eric Miller)
    + Added i_lastchange() per suggestion of Nicolai Petri
    + Added BULKWALK patch by Bradley Baetz - This should
          greatly speed up requests on SNMPv2c devices.
    + Added MibDirs option to new() to allow specifying non-system MIB
      directories.

    * Added C3560s to the C3550 class. Thanks to Nicolai.
    * Fixed Bug where older Cisco's would append nulls to certain
      CDP information.  Would come up a 'DBD::Pg parser' error in Netdisco
    * Changed so a failed _global() call is cached so it won't retry
      an error over and over again if the same global is used.
    * Added check in _set() to see if data came from sub or FUNCS/GLOBALS
      Fails if came from sub.

version 0.8 (03/21/04)
    + Added Q-BRIDGE-MIB support to SNMP::Info::Bridge
    + Added Aironet AP4800 to Layer3::Aironet class
    + Added C3500XL devices to the Layer2::C2900 class
    + Added Cisco 3750 (37xxstack) to Layer3::C6500 class
    + Added Cisco Catalyst 4000 to Layer3::C6500 class
    + Added Cisco Catalyst 2970 to Layer3::C6500 Class
    * Made Cisco Commuinty string indexing a boolean method for clarification
    * Added VLAN info for HP devices using Q-BRIDGE-MIB
    * Fixed warning about uninitialized value in CiscoStats line 92
    * Added for more serial# checking for L2 and L3
    * Fixed warning in Layer2::Bay about non numeric port line 199
    Contributions from Dmitry Sergienko:
    + Added Cisco Aironet BR500 and AP1200 to L2::Aironet Class
    * Fixed the Port name alias for Catalyst 2900 devices
    + Added Support For ZyXEL DSLAMs and Allied Telesys Switches

version 0.7 (08/14/03)
    * Added Class for Catalyst 6500 Series - Layer3::C6500
    * Added CiscoVTP support to 3550,2900, and Catalyst classes
    * Extracted VLAN stuff from Layer2::Catalyst to SNMP::Info::CiscoVTP
    * Extracted CISCO-STACK-MIB from Layer2::Catalyst to SNMP::Info::CiscoStack
    * Added 2950's to the Layer2::C2900 class
    * Added 3548's and 350x's to the Layer3::C3550 class
    * Broke out 3550's into separate device types (3550-24, 3550-48)
    * Added T1,dual T1, and T3 , ATM over OC-12 ... to the SPEED_MAP
    * Fixed speed map -- OC-1 -> OC-3
    * Fixed Bug where Catalyst Switch running IOS would report CatOS as os()

version 0.6 (06/18/03)
    * Minor Bug Fix.  SNMP::Info::Layer2::Bay and SNMP::Info::Layer2::C1900
      didn't return 1 and failed to load on some versions of Perl.

version 0.5 (06/10/03)
    * Added ability to get paritial tables.  For example to get the
      IP routing table for 128.114.*  you can do
      $ipr = $dev->ipr_dest('128.114');
    * Added IP Routing Table entries from RFC1213 to SNMP::Info
    * minor bug fixes

version 0.4 (04/29/03)
    * BIG CHANGE ! Internal Data structure has changed.
    * Added clear_cache() method
    * Added NO_SUCH support for snmpget (TABLE) calls to get SNMP MIB II data
      from SNMP Version 1 devices.
    * Methods load_all() and all() have changed their return value. Sorry but
      the API had to change.
    * New object methods snmp_comm(), snmp_ver(), store(), class(), nosuch()
      to make it more OO happy.
    * Globals are now cached
    * Added new argument 'AutoSpecify' to new() to auto-connect with subclass
      detected in device_type()
    * New method specify() returns a new subclass object
    * Subclasses are automatically loaded when specify or autospecify is used!
    * Added methods for Interface statistics (ifInOctets ...)
    * Added methods for Memory and CPU statistics
    * Added SNMP::Info::Entity, moved out of L2-HP
    * Added SNMP::Info::Layer2::Aironet

version 0.3 (03/06/03)
    * Fixed HP model() warning
    * Added error checking for responses of NOSUCHOBJECT and NOSUCHINSTANCE
      in _global and _load_attr
    * Added more debugging
    * Added info and munging for c_capabilities in SNMP::Info::CD
      Thanks to Martin Lorensen <martin /at- lorensen.dk>
    * Removed requirement for SNMP in the Makefile.PL and moved it to t/prereq.t
      so that the Module will install via CPAN without trying to install the old
      4.2.0 version of SNMP on CPAN.  Will now fail in the test phase.
      Thanks again to Martin Lorensen <martin /at- lorensen.dk>
    * Moved tests from test.pl to t/*

version 0.2 (02/19/03)
    * Added put_() methods and support for SNMP put commands
    * Added SNMP::Info::Layer3::C3550 class for Cisco Catalyst 3550
    * Fixed HP Detection in device_type()
    * Added Spanning Tree Protocol (STP) methods to SNMP::Info::Bridge
    * Removed HP Specific MIBS in SNMP::Info::Layer2 and cleaned up model()
    * Added poke for Bay 450 Switches
    * Mapped HP Part Numbers to model numbers J4812A => 2512 in
      SNMP::Info::Layer2::HP

version 0.1 (12/30/02)
    * Initial Release
    * SubClasses Included:
        * SNMP::Info::Bridge
        * SNMP::Info::CDP
        * SNMP::Info::EtherLike
        * SNMP::Info::MAU
        * SNMP::Info::Layer1
              o SNMP::Info::Layer1::Allied
              o SNMP::Info::Layer1::Asante
        * SNMP::Info::Layer2
              o SNMP::Info::Layer2::Bay
              o SNMP::Info::Layer2::C1900
              o SNMP::Info::Layer2::C2900
              o SNMP::Info::Layer2::Catalyst
              o SNMP::Info::Layer2::HP
        * SNMP::Info::Layer3
              o SNMP::Info::Layer3::Aironet
              o SNMP::Info::Layer3::Foundry
