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.