RELEASE NOTES: XPort-AR-V4.0.0.0-R16

REFERENCE: XPort-AR-V3.3.0.0-R4

RELEASE DATE: July 20, 2009

STATUS: Released

RELEASED FILES:
    xport_ar.rom.gz (copy of firmware, this file name is required for older versions to upgrade via FTP or TFTP)
    xport_ar.romz (firmware)
    XPort-AR.html (CLI documentation)


DOWNGRADE:
     To move BACKWARDS to an older firmware version, use Device Installer's "Recover Firmware" feature, with the "Erase All Flash" option selected, to load via a serial port.  The configuration database is not automatically converted when moving backwards.

     If you downgrade to a version EARLIER than 4.0.0.0, you also need to copy web files.


UPGRADE:
     Previous versions require the firmware image file to be named xport_ar.rom.gz; use this to upgrade from previous (lower number) versions.  This and future versions require the firmware image file to be named xport_ar.romz; use this to reload or downgrade from V4.0.0.0 or later.  If you use the incorrect file name, it will attempt to write it to the file system instead of the firmware image location, where there may not be enough free space to finish successfully.

     Web files are now embedded. For the new web manager to work properly, you must first erase the older web files from the file system in the http/config directory; "format" is the easiest way to do this if you do not need to retain any of your own files.

     If you experience any difficulty upgrading the firmware, use Device Installer's "Recover Firmware" feature, with the "Erase All Flash" option selected, to recover via a serial port.

     After using Device Installer's "Recover Firmware" to load a new firmware image and it starts running, POWER DOWN the unit before deploying it; the recovery process leaves the watchdog locked as disabled and this prevents remote upgrades from subsequently restarting the processor.


PRODUCT CHANGES:
    Changed web display message for authentication failure from 401 error message to "Unauthorized".

    XPort-AR v2->v3 upgrade
    1) Added enhancement so that hidden files are now retained across the format operation.
    2) Added flash version check so if it is discovered that the flash is at v2, it recovers critical network configuration comprising:
            DHCP enabled/disabled
            BOOTP enabled/disabled
            IP Address
            IP Mask
            Default Gateway
        All other configuration is lost across an upgrade, reverting to the factory defaults.  User must be advised to compact the filesystem prior to upgrade to assure that the information is in Bank B since Bank A will be overwritten by the larger program image.

    Added support to reset HTTP port and SSL port to default value in web and CLI.  New CLI commands "default ip http port" and "default ip http ssl port".

    Implemented criteria for sending TCP data in accordance with RFC 1122 paragraph 4.2.3.4.  This allowed some byte packing to be removed from tunneling code, with improved performance.

    Implemented a character collection mechanism to concatenate serial receive data into larger chunks, without adversely affecting latencies.  This helps to reduce network traffic for tunneling.

    Disabled HTTP nonce checking.

    Increased the rate that TCP timeouts are checked, to reduce the timeout granularity from 200 msec down to 100 msec.

    Added user option to display remote IP address after RING in modem emulation.

    Internal and External heap regions now allocated dynamically, based on auto-detected SRAM size.

    If malloc fails on the main heap, we now attempt to allocate from the internal heap.

    Reduced CPU history from 5 minutes to 30 seconds, freeing up more BSS memory.

    Status display of TCP sockets now properly shows the CLOSING state.

    TCP sockets in the CLOSING state are now freed after 5 minutes.

    Web files are now embedded.

    Serial break detecton has been added.

    The serial driver has been improved/optimized.

    The firmware file name has changed from xport_ar.rom.gz to xport_ar.romz.

    Adds CLI commands:
      secret xcr export <file>
      secret xcr export <file> <group list>
      secret xcr dump
      secret xcr dump <group list> corresponding to pre-existing ones, but these will challenge the user for the enable level password, if any, and then export or dump secrets.

    Now TLOG provides request size and caller information when MALLOC fails.

    Changes CLI commands:
      ssh <host> <username> (was broken because of ambiguity)
      ssh <host> <port> <username>
    to
      ssh <optUsername> <host>
      ssh <optUsername> <host> <port>


SDK CHANGES:
    Added new SSL API calls in evolution_ssl.h: 
        WebMgrConvertSslValidityTime()
        WebMgrSslCertificatGenerate()
        WebMgrGetSslCert()
        WebMgrSetSslCert()

    Added new TFTP API calls in evolution_tftp.h: 
        TFTPPut()
        TFTPGet()

    Added new reboot API calls in evolution.h: 
        EvolutionReboot()
        EvolutionCompleteBoot()
        EvolutionBootIsComplete().  While this function returns false, the web server will display pages as "200, Rebooting".

    Added new CLI API calls to evolution_cli.h: 
        TelnetServerStateGet()
        TelnetServerStateSet().

    Removed deprecated APIs.

    Removed non-standard TCP socket options: TCP_TUNNELPACKINGENABLE, TCP_TUNNELPACKINGTIMEOUT, TCP_TUNNELPACKINGBYTES, and TCP_TUNNELPACKINGSENDNOW.

    Escalation C-080625-109844: SNMP Enterprise and Object ID are now configurable via the SDK.

    Fixed fclose return code when the file was open for read.

    The APIs are now the same as the MatchPort-AR.


PRODUCT BUG FIXES:
    Fixed problems in elapsed time computation.

    Fixed a problem in resetting the authorization timeout in http.

    Fixed semaphore signaling problems for network read connections events.

    Fixed several problems in network reads, where a semaphore was signaled before its relevant data was available.

    Fixed a bug regarding an SSH scenario, where when serial data stops, it can get stuck in the buffer.

    Fixed a bug where 2048-bit SSH would fail due to a problem with RSA signing.

    Fixed a memory leak every time a DNS entry expires and is removed from the cache.

    Fixed memory leaks while exporting or dumping XML Status Records.

    Fixed some problems with TCP listener code so that listening is turned on and off appropriately.

    Fixed a display problem in tunneling statistics, where the remote IP Address and Port were not displayed properly when in UDP mode.

    Escalation C-080529-108827: Reworked selectsocket() to eliminate 100 ms latencies.  selectsocket() now delays tasks, which are reanimated when the select event is true.  Also, selectsocket() now properly handles extraneous read events.

    Bug 6118: Fixed a problem with SSHRecvCheck(), which would sometimes give a false indication that application data is available.  This problem would cause "auto show" CLI commands to eventually cease to execute when CLI is operating over SSH.

    Bug 6302: Long tags no longer throw XML parser into infinite loop.

    Bug 6435, 6705: Packing Control.  Moved packing function directly into Tunneling code.  No longer use non-standard socket options.

    Bug 6941: Fixed a problem with SSH setup with a 1024-bit DSA key.  Authentication was inadvertently failing due to a bad buffer size check.

    Bug 7149.  Tunnel refrains from reading serial before a connection is established unless it needs to watch for a character as the trigger to start the connection.  Consequently, the input data will flow off after filling some serial buffers.

    Bug 7152: When crossing between two MIB tables, indexing is now reset to the start of the new table.

    Bug 7282: Fixed SNMP get of a single item in the MIB table.

    Bug 7392: CLI no longer presents an error when enabling the http server if it is already enabled.

    Bug 7432: Fixed a problem with generating SSH keys.  Occasionally, a key would be generated that was short one bit.  For example, generating a 1024 bit key may actually generate a 1023 bit key.

    Bug 7515:  Fixed a problem with importing XML configuration records.  Symptom was display of the message "ERROR: Memory allocation failed."

    Bug 7534: Fixed a problem with importing XML configuration records, where it would sometimes fail with no message.

    Escalation C-080617-109535, Bug 7594: Deleting the last user under a HTTP URI now forces the authorization type to none.

    Escalation C-080625-109835, Bug 7596: Web server now works with Firefox 3.0.

    Bug 7603: Changed the SNMP sysObjectID from 991 to 244.

    Escalation C-080627-109986, bug 7616: Now attempts DHCP for 126 seconds before failover to AutoIP.

    Escalation C-080702-110080, bug 7619: We now allow UDP receive from any address, any port regardless of the transmit address and port settings.

    Bug 7656: SSL tunnel no longer sometimes holds data until data flows in opposite direction.

    Bug 7705: ARP cache entries are now aged correctly.  In rare cases depending on network traffic, it had been possible to lose an ARP entry.

    Escalation C-070920-99571, bug 6704: Tunnel packing timeout now works correctly.

    Bug 7772: Fixed a memory corruption problem.

    Bug 7788: Fixed a problem in ARP cache management.

    Bug 7991: SSH server now works with OpenSSH 5.1 client.

    Bug 8004: Username and password are now required to enable HTTP authentication.

    Bug 8010, Escalation #081013-000007: Display RTS as output even after a reboot when Line 1 is set for hardware flow control.

    Fixed "show task memory" command so it no longer blocks preemption and hangs performing network output.

    Bug 8462: Extremely slow cli/web access over PPP serial line has been fixed.

    Bug 8511: Fixed firmware reset problems during SerialPurge() or when reconfiguring serial port.

    Fixed XCR import problem when configuring HTTP authentication.

    Fixed XCR export problem with CP's.

    Bug 8518: Now works with Internet Explorer 8.

    Fixed web display of large HTTP and HTTPS port numbers on the HTTP configuration page (they were displaying as negative numbers).

     Bug 8672: For SSH server identification, we now send the ssh identifier string "SSH-2.0-Evolution\r\n".

     Bug 8707: Bumps up max CP groups on XPort-AR from 10 to 20.  Changes some built-in group names so they are not rejected by the common create routine. Shows all groups (even those that the user may not manipulate) in the CLI display, web display, and XML status export; they are not all present in the XML configuration export or in the web pull down menus.

     Bug 8764: SSH host RSA keys and SSH host DSA keys now are deleted when a blank value is imported.  This can be prevented by using the private key value "<!-- configured and ignored -->".	The "delete host keys" item is eliminated.  As a result of these changes, these fields now work in the normal expected way.

     Bug 8786: Fixed an ambiguity problem with the CLI ssh commands.

     Bug 8787: Clearing SSH server host keys via XML no longer requires reboot to take effect.

     Bug 8806: Fixed problem accessing web manager via https with Internet Explorer.

     Bug 8809: Web manager is now accessible via PPP.

     Bug 8865: Fixes XML import to selected instances of groups.

     Improved timing and nesting of interupts.

     Fixed HttpLog() failing calls to getpeername() and getsockname().

     Fixes a semaphore problem in MailboxProcessEvent so it no longer attepmts to work on corrupted information.

     Bug 8911: Fixes problem using Tunnel Accept Mode Passwords when the selected Protocol is Telnet.

     Bug 8947: Fixes TCP/AES network disconnect.

     Bug 8949: Fixes Web Manager HTTP Authentication page when adding a user and changing AuthType when originally no user was configured.

     Fixed a semaphore problem that could block tunnel data flow.

     Fixed problems in serial purge.

     Escalation C-080709-110245: ARP cache timeout now displays correctly on the web.

     Escalation C-080923-112948: Tlog timer hours properly increase over time.


KNOWN BUGS:
    None.
