A printable plain text version is also available.
ImageStream Linux Version 4.4.0-110 is now available as a general availability (GA)
release for all ImageStream routers.

This software release is provided at no charge to all ImageStream customers.
Version 4.4.0-110 is a is a maintenance release that is recommended for all customers
who wish to utilize the latest software enhancements for their ImageStream router.

This release note documents commands and features added between version 4.3.1
and version 4.4.0-110.


----------------------------

Router Minimum Requirements:

The 4.4.0 distribution requires a minimum of 128 MB RAM and a 128 MB flash drive.


----------------------------

KNOWN BUGS/Missing functionality:

PPPoA support is non-functional. The 4.4.0 release currently has no PPPoA support as the
pppoany module has not been ported from 2.4 to 2.6.


----------------------------

The following bugs have been fixed in Version 4.4.0:


Multicast problems with VLANs affecting OSPF

Version 4.4.0-71 fixes an uninitialzed field bug in the kernel which can cause
multicast addresses to be removed instead of added to VLAN interfaces. This
bug affects OSPF and can prevent neighbor packets from being received on an
interface if VLANs are configured on that interface.

All customers who are running OSPF on VLAN interfaces should upgrade to release
71 or later.

PCI 530 DS3/E3 Fixes

Version 4.4.0-34 fixes a transmit timed out race condition in the 530-DE driver.

Multilink PPP small packet performance improvements

Version 4.4.0-63 changes the default transmit queueing method which dramatically
reduces the number of dropped packets with small packet sizes and bursty traffic.
This change improves Multilink PPP performance with 64, 128 and 256 byte packet sizes.

----------------------------


New Features in Version 4.4.0

4.4.0 utilizes the 2.6 kernel which adds many new features and performance improvements,
SIP connection tracking, enhanced multi-processor support, and improved PPPoE/PPPoA/L2TP
performance.

----------------------------


Detailed revision history:

revision 110
    date: 2012/01/27
    Add RADIUS interim accounting update option to Virtual Templates.
    
    acct-interval 
    
    Example: Send hourly accounting updates:
     radius-server host 192.168.0.1 acct-port 1813 auth-port 1812 key password acct-interval 3600

revision 109
    date: 2011/12/20
    Configmgr: add "ppp multilink" option to l2tp tunnels for MLPPP support.
    eth_header user chain: Add --atm-encode option to encode the VPI/VCI into
    the first 4 bytes of source MAC address in the new ethernet header.

revision 108
    date: 2011/10/03
    Frame Relay: Call proto sub's user chains so eth_header monitoring
    chain can function. Note: all user chains for the proto sub will have
    the frame relay header stripped already so there is no difference between
    EDP and DDP.

revision 107
    date: 2011/08/17
    Update IPSec/OpenSwan to 2.6.35 which fixes ipsec look. Also support load
    balanced routes with IPSec.

revision 106
    date: 2011/08/16
    Update memtest86+ to version 4.20.

revision 105
    date: 2011/07/27
    530-DE: Remove debug printk from port reset code.

revision 104
    date: 2011/07/19
    530-DE: Fix locking problem with CSU statistics collection to avoid problems
    with multiple simultaneous framer accesses.

revision 103
    date: 2011/06/15
    Add "broadcast always" command to the dhcp relay ip helper command
    to force the relay agent to always broadcast replies to the client.

revision 102
    date: 2011/06/09
    Remove netlink global socket patch which seems to cause Quagga to not
    be able to remove routes properly.

revision 101
    date: 2011/05/25
    Workaround a major bug in Quagga causing zebra to sometimes lose track of
    connected interface routes. This bug would affect many aspects of dynamic
    routing including ignoring directly BGP peers and not announcing connected
    routes via OSPF or RIP.

revision 100
    date: 2011/04/11
    L2TP: If no tunnel key is specified then allow tunnel connectivity without
    a key to support clients such as Microsoft Windows, Mikrotik, etc that do
    not support L2TP tunnel keys.

revision 99
    date: 2011/03/29
    Add Quagga 0.99.18 to address bgpd/security: CVE-2010-1674.

revision 98
    date: 2011/03/15
    Add SIP proxy support.

revision 97
    date: 2011/03/04
    Remove TEE module from kernel and use xtables package version which works
    correctly.

revision 96
    date: 2011/02/21
    Add support for routes via Ethernet when IP address is DHCP assigned.
    Routes must be specified using old-style route command syntax not
    Linux iproute2.
    Add support for netmask to be specified to DHCP assigned interfaces by
    appending "netmask n.n.n.n" to the end of an existing "ip address dhcp"
    statement.

revision 95
    date: 2011/01/11
    ADSL300: Remove all extraneous debug.

revision 94
    date: 2011/01/03
    ADSL300: Rework tranmsit queue logic to stop the queue when full
    and return success rather than stopping the queue and returning
    error when full.
    IMQ: Fix a refcount bug which caused device reference counts to
    increment whenever a hardware device returned an error on xmit
    (as seen by the ADSL300 driver).

revision 93
    date: 2010/12/28
    ADSL300: Rewrite transmit routines to separate data queues from command
    queues. Limit data queues to 25ms of data instead of providing limitless
    hardware driver queueing and relying on software queues.
    Prioritize command queue over data queue.
    Perform Rx before Tx in tasklet and pre-allocate rx sk_buff after successful
    Rx.

revision 92
    date: 2010/12/07
    HTB bugfixes: Fix a crash/lockup bug with HTB when removing multi-tiered
    leaf classes which are actively transmitting data. Note: ImageStream's
    Policy-based QoS system is not affected by this bug. Also fix a bug with
    HTB returning an incorrect value when the low-level device is unable to
    transmit. Upstream bug id: 69747650c814a8a79fef412c7416adf823293a3e

revision 91
    date: 2010/11/06
    Remove sensors and APM from the kernel.

revision 90
    date: 2010/11/02
    Troubleshooting kernel panic: Rebuild kernel and all kernel modules.

revision 89
    date: 2010/10/21
    Recompile kernel and all modules.
    Add missing IPSec scripts from latest package.

revision 88
    date: 2010/10/15
    IPSEC: Update OpenSwan to 2.6.29.

revision 87
    date: 2010/10/12
    Change OSPF multipath from 6 to 16 max paths.

revision 86
    date: 2010/10/11
    Add support for PPPoE over OpenVPN Tunnels.

revision 85
    date: 2010/10/04
    DHCP client: Add the ability to run a user-defined script from /etc/udhcpc.script.

revision 84
    date: 2010/09/17 
    Add pci.ids for lspci.

revision 83
    date: 2010/09/09
    Bugfixes for QoS/SNMP statistics.

revision 82
    date: 2010/09/08
    Configmgr: fix a crash bug with the ip helper statement and debug causing
    configmgr to die with signal 11.

revision 81
    date: 2010/09/05
    Add initial (testing) UPNP/IGN support.

revision 80
    date: 2010/09/03
    Add class-based QoS statistics support via the qos_stats utility.
    Add ImageStream QOS MIB to SNMP.

revision 79
    date: 2010/08/26
    Add statistics reporting for the new QoS system.

revision 78
    date: 2010/08/24
    Add dhcprelay gateway-ip option and debug option to allow the agent
    to function in a network which has multiple paths to the dhcp server.
    Previously the dhcprelay agent would bind only to the server device
    and miss packets that come in on a different interface.

revision 77
    date: 2010/08/23
    Bugfixes for FRF.12 handling - provide prioritization in the frame relay
    stack instead of relying on QoS/tc.

revision 76
    date: 2010/08/20
    Disable kernel logging to serial console. This change fixes many performance
    and crash/lockup problems when kernel messages are printed.
    Add ethernet module boot order script for Transport revision 3 which probes
    e1000e first for on-board ports.

revision 75
    date: 2010/08/17
    Frame Relay: Add support for FRF.12 end-to-end fragmentation via the
    "frame-relay fragment " command. Receive-side fragmentation is
    automatically supported becuase FRF.12 uses a special NLPID for
    transmission of fragments.
    QOS: Add support for a "--burst" parameter to CBQ classes to allow smaller
    frame relay fragment-sized bursts. This allows interleaving priority
    unfragmented packets with fragments on low-speed frame relay links.

revision 74
    date: 2010/07/29
    Fix modprobe order of natsemi before all else for Envoy routers with add-on
    Ethernet ports.

revision 73
    date: 2010/07/28
    Add Rebel W6 BIOS reflash boot option

revision 72
    date: 2010/07/28
    MLPPP: Fix interoperability bug with Cisco IOS 12.3+ negotiating IPCP
    and IP6CP on the bundle.
    Add ATM length calculation to QOS library. To use, simply add "--calc_atm" to
    your QOS_IFACE statement and increase the bandwidth values to the true ATM cell
    rate of your DSL or ATM link.

    Example for Embarq 3Mb / 512K service:

    QOS_IFACE --name brSerial0.1 --policy default --max_in 3520 --max_out 768 \
              --max_latency 150 --fair_queue --calc_atm

revision 71
    date: 2010/07/22
    OSPF/Multicast bugfix: Fix an uninitialized field bug with multicast
    addresses which could cause newly-added addresses on a VLAN to actually be
    removed from both the VLAN and master device instead of added. The
    da_synced field was not initialized to 0 and as soon as the address was
    added to the VLAN a sync was called to copy the address to the master, but
    with da_synced being uninitialized, if the value was non-zero the address
    would be removed.

    Symptoms of this bug are OSPF sometimes fails to see neighbors on VLAN
    interfaces or master interfaces when running a mixed tagged/untagged setup
    on the same interface. Setting either the master or VLAN into promiscuous
    mode (tcpdump, etc) would allow the OSPF neighbors to establish a session
    as it would allow for the reception of packets on the special multicast MAC
    address for the 224.0.0.5 group.

revision 70
    date: 2010/07/19
    PPP: Don't restart LCP if IPCP times out - not the right thing to do and
    can lead to kernel panic.

revision 69
    date: 2010/07/01
    MLPPP: Ignore LCP requests with multilink headers. If IPCP is negotiated on
    the multilink bundle instead of an individual link, don't attempt to
    restart LCP on the multilink bundle if IPCP times out.

revision 68
    date: 2010/06/25
    PPP: Fix a problem with IPv6CP not being negotiated from the timeout
    procedure.

revision 67
    date: 2010/06/17
    Inetics: Re-enable IPv6 negotiation by default in PPP.

revision 66
    date: 2010/06/15
    Add daemon keepalives to quagga daemons.

revision 65
    date: 2010/06/11
    Recompile iptables/xtables modules to match kernel change in release 62.

revision 64
    date: 2010/06/09
    SNMP: Update to version 5.5 which fixes a problem with an off-by-one interface
    index problem caused by an IPv6 tunnel interface in the 2.6 kernel.
    dhcprelay: Bind to the first client IP address and use this address
    as the "gateway" IP reported to the server.
    Quagga: Update to version 0.99.16. Also fix the menuTitle path that changed
    and caused init scripts to throw errors in release 62.

revision 63
    date: 2010/05/18
    MLPPP: Do not strip off PPP header in the decapsulate function which fixes a bug
    where a queued packet would have its PPP header removed. Normally packets are
    sent immediately, but a control packet sent while the device was one packet
    away from being full would trigger this bug.

    530-DE: Increase the hardware queueing from 1.9 ms to 24 ms. Also add locking
    around the rx interrupt routine and go ahead and process the rx and tx queues
    from the interrupt routine if hardware is down (OOF set).

    Configmgr: Change the default queueing discipline to byte fifo (BFIFO) instead
    of the PFIFO which counted packets. This allows precise control of maximum
    latency and avoids problems with dropped packets when dealing with a burst
    of small packets. Queue lengths are set to 100 ms for T1/E1 and 50 ms for
    DS3/E3/OC3/OC12 and 10/100/1000 Ethernet. VLANs and tunnels default to 50 ms
    at the 100 Mbps rate which still provides 5 ms at GigE.

    Configmgr: new command keyword added to allow setting the tx queue length in
    terms of bytes: "hold-queue  bytes". So to set the queue length
    on a T1 to 50 ms or 9600 bytes (1,536,000/8 = 192,000 bytes per second / 20 )
    why /20? because 50 ms is 0.05 seconds and 1/0.05 is 20 (one-twentieth of a
    second).

revision 62
    date: 2010/05/07
    Ramdisk resize: resize prior to extracting configuration to avoid an out
    of space condition with large configurations.
    Remove gated menu options to fix a problem with long pathnames. This fixes
    menu bugs with certain Quagga menu items not functioning properly such as
    the OSPF enable script.
    SNMP bugfix: Add sensors library to fix the broken snmpd daemon caused by
    the new sensor package in release 60.

revision 61
    date: 2010/05/05
    Add support for the new R8168 GigE drivers for the R1 Atom board.

revision 60
    date: 2010/04/29
    Voltage/Temperature sensors now function but may not show correct ALARM
    status.

revision 59
    date: 2010/04/29
    Add Coova-Chilli captive portal package.

revision 58
    date: 2010/04/26
    Disable kernel preempt to avoid some locking issues with the e1000 driver.

revision 57
    date: 2010/04/23
    Forced speed/duplex now takes the interface down prior to setting.
    Previously if the interface was up and transferring traffic a bug in the
    Intel E1000e driver could be triggered when restarting N-Way
    autonegotiation. This bug would lead to an overload of kernel debug
    statements about scheduling while not atomic. Taking down the interface
    when changing speed or duplex on an interface solves this problem.
    
    ADSL(PCI 300): Update to latest firmware/hardware driver.
    530-TEJ: Fix a bug which prevented the configuration of 56K timeslots.
    PPP: Fix a negotiation problem which caused an entire IPCP configure
    request to be rejected when the peer was asking for his IP address and an
    unsupported parameter was present. We now NAK the request for his IP
    address but only if we accept all other parameters. The symptom of this
    problem was that protocol would come up for a fraction of a second and go
    back down until the next configure cycle.

revision 56
    date: 2010/04/05
    PPP: bwlimit_iface: change default setting of verbose to off.
    Inetics: Compile configmgr shared in RBE to avoid PPPoE/PPPoA server crash.

revision 55
    date: 2010/03/29
    Remove NO_HZ option from the kernel which was causing problems on certain
    hardware platforms.

revision 54
    date: 2010/03/10
    PPP: Fix a RADIUS plugin bug which caused the ppp daemon to hand out a pool
    IP address instead of the RADIUS server assigned IP and also failed to
    negotiate because the peer was not authorized to use the pool IP.

revision 53
    date: 2010/02/26
    Configmgr: Fix a bug which caused RADIUS information to be ignored for
    Virtual Template interfaces other than the first.
    Change default PPPoE/PPPoA bwlimit type from POLICER to HTB.

revision 52
    date: 2010/02/22
    Bridging: Use 1024 bytes instead of 1900 for the command length as bash can
    fail at around 1890+.
    530-TEJ: Fix an Rx overflow problem that could cause a port to stop receiving
    data in channelized mode when the T1/E1 loses signal and comes back.

revision 51
    date: 2010/02/03
    Fix problems with bridges not removing IP addresses properly.
    Fix shutdown problems with bridges, Ethernet, VLANs and tunnels.
      - If an interface was marked as shutdown when Inetics loaded the interface
          could not be brought up without changing a parameter on the interface.

revision 50
    date: 2010/02/02
    Add ltmodem support for dialout-ppp.

revision 49
    date: 2010/01/29
    Revert back to Quagga 0.99.15 without MPLS support to resolve IPv6 problems.
    Add BGP scan timer load check to avoid a condition where the workqueue is
    never able to be depleted due to lack of CPU time.

revision 48
    date: 2010/01/21
    Recompile kernel with virtualization support.
    dhcprelay: Fix a crash bug in options parsing from malformed packets.
    Inetics: All interfaces now default to point-to-point which eliminates
    the need to set the point-to-point flag in Quagga for OSPF.

revision 47
    date: 2010/01/18
    Add RADIUS login support.

revision 46                                                                                          
    date: 2010/01/15
    Configmgr bugfix: Allow PPPoE server mode to run on bridge interfaces (bvi).

revision 45
    date: 2010/01/13
    Bugfixes for TACACS+ login support.

revision 44
    date: 2010/01/11
    Fix TACACS+ login support so local users do not have to be present in
    /etc/passwd.
    Add OSPFv3 (ospf6d) support for OSPF and IPv6.

revision 43
    date: 2009/12/21
    Kernel: Add support for the latest Intel E1000e chipsets.
    Inetics: Fix a long-standing bug with Frame Relay IARP replying with 0.0.0.0
    as our IP.
    Failsafe: Fix a kernel boot bug with older ramdisks that had serial numbers.

revision 42
    date: 2009/12/07
    Allow multiple ip helper commands (DHCP Relay)

revision 41
    date: 2009/11/17
    Add Quagga 0.99.15 with MPLS and LDP support.

revision 40
    date: 2009/11/13
    Add pufq support to qos library.

revision 39
    date: 2009/10/27
    Add Quagga 0.99.15.

revision 38
    date: 2009/10/20
    Configmgr: missed a commit that fixes argument parsing for user chains. Previously
    only the first argument was read.

revision 37
    date: 2009/10/14
    Add logger and eth_header user chains to allow cross-connecting a WAN port
    with Ethernet.

revision 36
    date: 2009/10/08
    Add new QoS library and default QoS script for low latency queueing and class-based
    queueing.

revision 35
    date: 2009/10/06
    Change transmit queue on VLANs from 0 to 1000 so QoS can be configured.
    Dead gateway detection now only works on the default route so that
    interface routes don't get routed out a default gateway on wireless networks
    that throttle ARP requests.

revision 34
    date: 2009/09/16
    sandcore: Call hardware reset routine via workqueue (thread context can sleep)
    440: Add hardware reset routine which calls load_firmware().
    configmgr-ppp: Add load average and memory limits based on free + cache.

    date: 2009/09/18
    PPP: Don't initiate IPV6CP by default but respond if the other end request it.
    Also clean up include files to allow compilation under 4.2
    530-DE: Fix a race condition bug which caused the driver to detect a transmit
    timeout when none had really occurred.
    This race was much more likely to occur when a substantial amount of traffic
    is transmitted from a userspace thread such as OpenVPN rather than forwarded
    from another card in interrupt context.

revision 33
    date: 2009/09/04
    ISDN fixes and updates.
    Add preliminary IPv6 support to configmgr and PPP (IPV6CP support).

revision 32
    date: 2009/08/26
    Add support for the new PMC version of the QuadISDN adapter.

revision 31
    date: 2009/08/23
    DHCP server: Fix a segmentation fault problem with the recent shared-network update.

revision 30
    date: 2009/08/19
    Add fixed Quad-port ISDN driver. Fix image-based update scripts to support
    images larger than 25 MB.

revision 29
    date: 2009/08/19
    Add support for Image-based updates.

revision 28
    date: 2009/08/14
    POS OC3: Use watchdog polling again for hardware status detection.
    Asterisk: Add support for Asterisk 1.4.26.1, dahdi 2.2.0.1 and web-gui 2.0.4.

revision 27
    date: 2009/07/30
    Add support for Perl 5.10.0 add-on package.

revision 26
    date: 2009/07/29
    Add POS/OC3 support for the 4.4 distro.
      Support multiple cards and integrate latest OC3/OC12 DDK.
    Sandnone: Increase max rx buffers to 512 for high speed.

revision 25
    date: 2009/07/26
    dhcp server: Allow multiple subnets per interface via automatic shared
    network support for subnets on the same interface.

revision 24
    date: 2009/07/06
    Configmgr: Fix ISDN shutdown problem with 4.4. Fix for ISDN switch protocol not
    being set with 4-port card.

revision 23
    date: 2009/07/02
    Add snmpset utility.

revision 22
    date: 2009/06/30
    Quagga: Add 0.99.13 which fixes a problem with BGP and IPv6. Also added
    support for ospf6d.

revision 21
    date: 2009/06/23
    Add updated sed utility.

revision 20
    date: 2009/06/18
    Add ixb Intel GigE driver.
    Patch to kernel to remove WARN_ON debug message in skb_gso_segment() which
    was causing certain routers with bridging and vlan configurations to become
    overloaded and drop packets.

revision 19
    date: 2009/06/16
    Added powercode package.

revision 18
    date: 2009/06/12
    Added iptraf/iftop to stats.
    Fix a firewall status bug that didn't detect when NAT is loaded and would not offer
    to show NAT rules.

revision 17
    date: 2009/06/11
    Fix ADSL problem overwriting chap & pap secrets file when each client launches.
    Add "ppp debug" option to ADSL & BRI interfaces.

revision 16
    date: 2009/06/09
    Recompile with 586 support for Transports.

revision 15
    date: 2009/06/05
    Update 300 series ADSL driver with hardware status support.

revision 14
    date: 2009/05/22
    OpenSSH: Update to 5.2p1
    OpenSSL: Update to 0.9.8k

revision 13
    date: 2009/04/30
    Quagga: Bugfix for bgpd crash on long 32-bit ASNs:
    (http://lists.quagga.net/pipermail/quagga-users/2009-February/010342.html)

revision 12
    date: 2009/04/23
    Added pcnet32 net driver for VMs.

revision 11
    date: 2009/04/02
    Add ISis300 PCI ADSL2/2+ support.

revision 10
    date: 2009/02/24
    Add the Envoy reboot patch to Envoy routers properly soft reboot.

revision 9
    date: 2009/02/13
    Fix for BGP TCP/MD5 with Quagga 0.99.11.

revision 8
    date: 2009/02/04
    POS/OC12: Change DDK to use wait queues instead of semaphores and debug level
    from 9 to 7 to avoid long boot times.

revision 7
    date: 2009/02/03
    POS/OC12: Really add the new ddk.

revision 6
    date: 2009/02/03
    POS/OC12: Added xsconsole debug utility, update OC12 firmware to fix a problem
    with high number of phy interrupts caused by the last update.

revision 5
    date: 2009/01/30
    Recompile kernel and modules in original build environment.

revision 4
    date: 2009/01/27
    POS/OC12: Remove Rx patch for the OC12 DDK.
    520,600/800,POS/OC12,1000: Added proprietary license.

revision 3
    date: 2009/01/23
    POS/OC12: Add support for jumbo frames via ethernet cross connect up to 9K.

revision 2
    date: 2009/01/17
    Kernel: Added tcp advanced congestion routines to allow better performance
    on satellite links.
    Added all current addon package support from 4.2.12.

revision 1
    date: 2008/12/11
    Start of 4.4.0 from 4.4.0-pre53


----------------------------

Detailed revision history for 4.4.0-pre:

revision 53
    date: 2008/12/09
    RADIUS: Fix NULL pointer dereference if no gateway is sent for the Framed-Route option.

revision 52
    date: 2008/12/08
    E1000/E1000E: Set netdev->irq right before request_irq(). It wasn't being set at
    all resulting in configmgr's inability to set up SMP affinity.

    Configmgr: Run the SMPAffinity routine after interfaces are brought up because under
    2.6 some ethernet devices have their IRQs remmaped on open.

    ATM: Fix encapsulation aal5autoppp so that it will properly sense frames without SNAP
    headers. Previously we required SNAP headers to autosense. Now we also switch our transmit
    mode between SNAP and MUX PPP to match the frames being received.

revision 51
    date: 2008/12/08
    Fix e1000/e1000e drivers to add netdev->irq so smp affinity works from configmgr.

revision 50
    date: 2008/12/06
    e1000e driver: Change watchdog interval from 2s to 1s so stats updates properly.
    Fix a tx spinlock issue that was causing requeues. This driver was using a common
    adapter->tx_queue_lock in both the tx and tx_cleanup routines. The e1000 driver
    uses a tx_ring->tx_lock for the tx routine and the adapter->tx_queue_lock for the
    tx_cleanup routine. I changed the e1000e driver to use 2 locks like the e1000 driver.

revision 49
    date: 2008/12/04
    Increase per-process file limit from 1024 to 8192 in /usr/share/profile.d/00enviroment.sh
    so L2TP can support more than 512 tunnels.

revision 48
    date: 2008/12/02 17:46:29;  author: sandcomp;  state: Exp;  lines: +1 -1
    Integrage l2tp support with configmgr. Also use my original ippool with pppd.
    Update quagga to 0.99.10 from 4.2.12.

revision 47
   date: 2008/11/12
   440: Added a global 5 second delay in sand_probe() for to allow cards with old
   firmaware to initialize. This workaround is needed on systems with a mix of old
   and new cards.
   configmgr: Remove the sethorizon option for brctl from distributions other than
   4.4.0-pre which don't support it.

revision 46
   date: 2008/11/10
   440: Update to June 30 drivers which fixes a stuck transmitter bug and an initialization problem on cards with older firmware.
   
revision 45
   date: 2008/11/04
   SAND: Fix a problem with some protocols that use sand_hw_driver_xmit() that
   wasn't being exported properly.

revision 44
   date: 2008/11/03
   Add conntrack util support. We can now add/remove/list connections as well
   as flush the entire table.

revision 43
   date: 2008/10/31
   Add custom ethernet modprobe for RR1000-GE to probe E1000 first.
   
revision 42
   date: 2008/10/29
   Remove udp_csum call that was causing a kernel panic when sessions were being
   torn down. Fix socket usage count by adding an extra sock_put() call to the
   session teardown code. This call should be placed elsewhere but I don't know
   exactly where it belongs.

revision 41
   date: 2008/10/23
   Upadted kernel, added Wireless Extensions.  Needed to support madwifi.
   Updated udhcp package from 0.

revision 40
   date: 2008/10/14
   Port pppd/radius plugin patches from 2.4.2b3 and change openl2tp to not load
   the pppd radattr.so plugin that depends on the other radius plugin.

revision 39
   date: 2008/10/03
   Added ext3 resizing support to allow ramdisk resizing.
   Changed the ramdisk to be an ext3 filesystem with only 1M journal (smallest possible).

revision 38
   date: 2008/10/02
   Added e1000e PCI Express driver for the Intel E1000.
   QOS: Remove /etc/rc.d/rc.router/S90QOS symlink from the package. This prevented users from disabling QOS on startup.

revision 37
   date: 2008/09/24
   Added updated software packages for openl2tp version 1.15, pppd 2.4.4
   and ippool-1.3 which is a network-based IP pool manager allowing pools
   to be shared between routers.


revision 36
   date: 2008/09/19
   POS/OC3/OC12: Added support for ethernet cross-connect for the OC12 port to
   provide line rate down to 256 byte packets.

   New command:
    service-module oc12 xconnect eth3

    Specify the cross-connect ethernet device name using old-school Linux names for 4.4.0-pre.

    You must have a GigE SFP in the bottom port on the OC12 card cabled to another GigE port on the router. That other
    GigE port is the port you specify in the service-module xconnect command.
   
    *note* For copper SFPs, use a straight through cable to connect the GigE ports. Fiber should be crossed over
    Tx <-> Rx.
   
    *IMPORTANT* Be sure to configure IP addresses on the cross-connect Ethernet device and not the OC12 Serial device!

    Several changes were made to Inetics and our xs155 driver to support x-connect:
         - Hardware status (netif_carrier) follows protocol status for the OC12 serial interface.
                 This required finally implementing the proto_change chain execution and registering
                 a proto_change callback chain for the xs2000.
         - Configmgr has hooks to set up bandwidth limits on Ethernet devices. The xs155 hardware
           module for configmgr sets up a 601 Mbps tx rate limit on the cross-connect device. I just
           call the same configure_port_bwlimit() function that I call for protocol subs. It sets
           up a single HTB qdisc+class with the proper rate and r2q values for the rate.


   PPP: For testing purposes added a command to ignore loopback. This should disable loopback detection
   for all L2 protocols. Right now PPP is the only one which does loopback detection.

   New command:
     ignore-loopback

   Stats: for ethernet devices make protocol status follow hardware status (down/up didn't make sense!)

revision 35
date: 2008/09/08
   xs155: Remove all periodic watchdog timers -- lockup was observed in xs155_sleep().
   What those timers do has not been debugged with the new DDKs.

revision 34
date: 2008/09/03
   More (hopefully final) fixes for the POS/OC12 driver. Also fix SAND so it brings
   up interfaces before adding IPs so Quagga sees interface routes properly
   under 2.6.

revision 33
   date: 2008/08/28
   Revert back to 0.99.7 for velocity online

revision 32
   date: 2008/08/27
   Finally fix problems with locking around the hw_xmit function to allow the sand_tx_callback
   to properly retransmit control packets that had to be queued. The last commit had problems
   and resulted in lockups, BUG: Scheduling while atomic errors.

revision 31
   date: 2008/08/25
   sandcore/protocols: Call netif_carrier_on/off on proto up/down for kernel >= 2.6.23
   Also change all protocols to call dev->hard_start_xmit() directly again for kernel >= 2.6.23
   instead of dev_queue_xmit(). I will have to check all hardware drivers to ensure they
   don't call the sand_tx_callback with interrupts disabled or their own device spinlocks
   held. They shouldn't and my old drivers didn't.

   What does this mean?

   Pros:
   1) Solve the SMP race bug where setting dev->tx_queue_len++ didn't really guarantee your keepalive packet would get transmitted.
   2) Allow netif_carrier_on/off() to be called so the Linux networking layers won't send us packets and we get proper interface status from the kernel and Quagga.
   
   Cons:
   1) It's now possible for the hardware driver's tx routine to get reentered. All our hardware drivers should already have lock protection in them.
   2) Calling dev_queue_xmit() instead of the hardware xmit was the original solution to some transmit timeout errors with proto subs but that code has been totally rewritten.
   3) You won't see L2 protocol packets in tcpdump anymore (maybe a pro)

revision 30
   date: 2008/08/22
   Remove tickless kernel support - back to 1000 HZ. Add the dead route patch.

revision 29
   date: 2008/08/13
   Recompile with tickless kernel.

revision 28
   date: 2008/08/04
   Install latest vconfig recompiled without c++ dependancy.
   Install current libstdc++ library from gcc 3.3.4 required by Squid, Snort and
   our upcoming configmgr.

revision 27
   date: 2008/07/31
   Fix broken OC12 driver from last temp release -- I broke it with compatability code
   designed to make the xs155.o driver still compile against the old ddk/oc3 card.

revision 26
   date: 2008/07/30
   xs155: Fix Rx corruption bug. Add xssfpdiag and a script to run it and fetch
   information on card 0 port 0 (sfp_diag) temporarily to sand.

revision 25
   date: 2008/07/22
   Fix openvpn server mode script bug that logged authentication requests to /tmp/scott

revision 24
   date: 2008/06/25
   Increase RAMDISK size to 54MB from 45 MB.
   Add latest SAND package with new xs155 driver -- (xs-2000) OC12 support.
   Add lspci to base binaries.

revision 23
   date: 2008/06/02
   Add support for addon hard drive, apache and wireshark. Add dev files
   for hd[bcdefgh] from the latest 4.2.12-pre beta.
   Add kernel support for ext3 and DMA on hard drives.

revision 22
   date: 2008/03/27
   Added new tcpdump

revision 21
   date: 2008/03/24
   Add latest quagga/mpls code.

revision 20
   date: 2008/03/17
   Opencalea: Add syslog debugging to tap and lea_collection. Add statistics file to both
   programs as well. tap is in /tmp/tap_%d.status (pid) and lea_collection is
   /tmp/collector_%d.status (pid).

revision 19
   date: 2008/03/10
   Add Web administration base package.

revision 18
   date: 2008/02/21
   Fix IPv6 iproute2 command support in configmgr.

revision 17
   date: 2008/02/20
   Compiled in IPv6 support into kernel.
   Removed IPv6 kernel module from kernel-modules package.
   Add binaries ping6, traceroute6, tracepath6 to Base-networking package.
   Added support for IPv6 tunnels to iproute2 ip command.

revision 16
   date: 2008/02/15
   Add Quagga 0.99.9 with MPLS patches, ldpd and rsvpd.

revision 15
   date: 2008/02/06
   Add split horizon support to bridging.

revision 14
   date: 2008/02/05
   Recommitting everything due to corrupted repository.

revision 13
   date: 2008/02/04
   Fix for kernel panic when frames > dev->mtu are sent via mpls tunnel.

revision 12
   date: 2008/02/01
   Change skb headroom from 16 to 32.

revision 11
   date: 2008/01/30
   Fixes to allow VPLS bridging over MPLS.

revision 10
   date: 2008/01/25
   Change mpls core to allow baby giants up to 40 bytes > device MTU for
   bridged mpls packets.

revision 9
   date: 2008/01/23
   Added MPLS ebtables kernel modules.

revision 8
   date: 2008/01/15
   Added quagga 0.99.6 with MPLS support.

revision 7
   date: 2008/01/09
   Added base MPLS support.

revision 6
   date: 2007/12/17
   Add missing NOTRACK target.

revision 5
   date: 2007/12/14
   Add tulip/LMC/SBE patch

revision 4
   date: 2007/12/13
   Added KVM support and USB mass storage support.

revision 3
   date: 2007/12/12
   Fix loopback support - use modprobe for dummy not insmod

revision 2
   date: 2007/12/07
   Rev to rel2

revision 1
   date: 2007/11/19
   Start of 4.4.0-pre cut from 4.3.1-13. This tree is designed for 2.6 support for all routers.
   For now I have ethernet and most wan card support. This release is for SIP NAT and
   conntrack support for a Rebel customer.