Patch Name: PHNE_28883 Patch Description: s700_800 11.11 GELAN 1000Base-SX/T B.11.11.14/19 cum. patch Creation Date: 03/12/29 Post Date: 04/02/03 Hardware Platforms - OS Releases: s700: 11.11 s800: 11.11 Products: HP PCI/HSC Gigabit Ethernet Driver B.11.11.14 B.11.11.19 Filesets: GE-DRV.GE-RUN,fr=B.11.11.14,fa=HP-UX_B.11.11_32,v=HP GE-DRV.GE-RUN,fr=B.11.11.19,fa=HP-UX_B.11.11_32,v=HP GE-DRV.GE-KRN,fr=B.11.11.14,fa=HP-UX_B.11.11_32,v=HP GE-DRV.GE-KRN,fr=B.11.11.19,fa=HP-UX_B.11.11_32,v=HP GE-DRV.GE-RUN,fr=B.11.11.14,fa=HP-UX_B.11.11_64,v=HP GE-DRV.GE-RUN,fr=B.11.11.19,fa=HP-UX_B.11.11_64,v=HP GE-DRV.GE-KRN,fr=B.11.11.14,fa=HP-UX_B.11.11_64,v=HP GE-DRV.GE-KRN,fr=B.11.11.19,fa=HP-UX_B.11.11_64,v=HP Automatic Reboot?: Yes Status: General Release Critical: Yes PHNE_28883: PANIC HANG PHNE_26939: PANIC PHNE_24491: PANIC CORRUPTION Category Tags: defect_repair enhancement general_release critical panic halts_system corruption manual_dependencies Path Name: /hp-ux_patches/s700_800/11.X/PHNE_28883 Symptoms: PHNE_28883: 1. JAGae30154/8606265901: IP state is UP when link is DOWN. 2. JAGae36524/8606272385: Speed/Duplex setting is case sensitive in /etc/rc.config.d/hpgelanconf 3. JAGae68049/8606304715: ifLastChange is incorrectly reported by the gelan driver. 4. JAGae68093/8606305044: Card instance number assignment is incorrect for values over 127. 5. JAGae68826/8606305778: Possible CPU hang when the card is suspended. 6. JAGad83827/8606214636: An MTU change may be allowed when a reset is in progress. 7. JAGae75612/8606312805: Failure to initialize Gigabit Ethernet card at system boot, may cause the system to panic later when some operations such as "getting mib statistics" or "ifconfig" is performed on the card. The stack trace of the panic varies depending upon the operation performed on the interface. The following is the stack trace of a panic for a "get mib statistics" operation: panic+0x6c report_trap_or_int_and_panic+0x94 trap+0xedc thandler+0xd20 gelan_get_mibstats+0x30 gelan_ctl_req+0x258 gelan_hw_req+0x34 hp_dlpi_ioctl+0x9c4 hp_dlpi_get_mib_req+0x108 hp_dlpi_wput+0xd70 putnext+0xcc putmsg_subr+0x164 putmsg+0x1bc syscall+0x62c 8. JAGae82292/8606319804: The packets discarded by the host should be reflected by ifInDiscards MIB stats counter, but some cases it might be counted as ifInErrors, which leads to inconsistent and incorrect MIB stats. 9. JAGae35006/8606270770: The late collisions detected by the card were being counted as late collisions, but were not being aggregated into the Outbound Errors statistic as reported via lanadmin. 10. JAGae01886/8606232651: A bad card generating spurious events might lead to a CPU hang. PHNE_28770: 1. JAGae62142: With certain cable lengths, the 1000Base-T Gigabit Ethernet controller may not link UP. The problem has been seen with cable lengths between 8 to 12 meters (26 to 40 feet) in length. PHNE_28135: 1. JAGae49035: During repeated cable disconnect/reconnect or switch reboots, the 1000Base-SX card may go link UP while the link partner is still link DOWN. PHNE_26939: 1. JAGae15641: Under heavy traffic, users may see "Channel Error in driver gelan" panic on V-class systems. 2. JAGae21557: rp8400 ioscan description is too long- has incorrect trailing characters. PHNE_24491: 1. JAGae01128: Users will not be able to use the VLAN functionality on Gigabit Ethernet interfaces. 2. JAGad39720: Corrupt packets received on the Gigabit Ethernet interface may cause memory corruption and result in a system panic. 3. JAGad97673: On HSC-based systems, the Gigabit Ethernet interface may transmit frames with corrupted destination MAC address. 4. JAGad89761: The Gigabit Ethernet driver startup scripts may fail on the Built-in I/O card on rp8400 because of incorrect ioscan description. 5. JAGad97717: On a 1000Base-T adapter, lanadmin "card_info" command incorrectly reports Auto-Negotiation to be "On" when the card has been manually set to operate at 10 or 100 Mbps. 6. JAGad82620: The Gigabit Ethernet interface may cause a panic if interrupt migration is attempted on a card that has been suspended and removed from its slot. Defect Description: PHNE_28883: 1. JAGae30154/8606265901: When the gelan driver detects an error and goes into GELAN_ERROR state, it does not send a link DOWN event to bring the IP state(as reported by ifconfig(1m)) down. Resolution: A link DOWN event is sent up whenever the driver enters the GELAN_ERROR state. 2. JAGae36524/8606272385: The driver startup script, /sbin/init.d/hpgelan, accepts the speed-duplexity values only in lower case, like in 10fd, 10hd, 100fd, 100hd and auto_on. It errors out values like 10FD, 100HD, AUTO_ON etc. Resolution: The startup script has been modified to be case neutral for the speed-duplexity values. 3. JAGae68049/8606304715: The MIB element ifLastChange is incorrectly reported by the gelan driver. That is because the value for this is taken from the controller, which has no sense of the system time. Resolution: The driver has been modified to report the right value for ifLastChange, that truly represents the system time. 4. JAGae68093/8606305044: The card instance number(which is also the Physical Point of Attachment(PPA)), is incorrectly assigned to an 8-bit quantity while it really is a 32-bit quantity. Resolution: The assignment is now done to a 32-bit quantity. 5. JAGae68826/8606305778: In a corner case condition, if the card is suspended when an interrupt is in flight, the interrupt will not be cleared thus repeatedly interrupting the CPU. Resolution: Interrupts are now cleared and masked by the driver's suspend routine. 6. JAGad83827/8606214636: An MTU change may be allowed when a reset is in progress, potentially resulting in an incorrect driver state. Resolution: An MTU change will now be allowed only when no resets are in progress. 7. JAGae75612/8606312805: If the gelan card initialization fails then all the driver resources like spinlocks, receive buffers are freed but the instance is not detached. This will allow the control request to come in but most of the control requests does access those freed resources and thus resulting in a system crash. Resolution: If an error is encountered during the card initialization, the resources are freed only when it is appropriate otherwise the driver created resources are not freed thus preventing the system crash. 8. JAGae82292/8606319804: The gelan driver uses only one counter to keep track of both inbound discards and inbound errors and hence discards are also reported as errors, which is incorrect. Resolution: The gelan driver is modified to update the correct MIB stats counters for inbound discards and inbound errors 9. JAGae35006/8606270770: The late collisions were not being included in the Outbound errors. Resolution: The Outbound Errors includes the late collision errors detected by the card. 10. JAGae01886/8606232651: While handling spurious events from the card, the driver is not clearing the interrupt and also not advancing the event queue index after processing the spurious event. This leads to flooding of the same spurious event which will lead to logging the same error into the Nettl and processing the same spurious interrupt in an infinite loop thus causing the CPU hang. Resolution: The Gigabit Ethernet driver has been modified to acknowledge interrupts even in GELAN_ERROR state. The driver has also been modified to acknowledge an invalid event before going to ERROR state. PHNE_28770: 1. JAGae62142: The firmware running on the 1000Base-T Gigabit Ethernet controller was unable to complete auto-negotiation at certain cable lengths. Resolution: 1.JAGae62142: The controller firmware has been modified to identify the auto-negotiation failure and recover from it. The new version of the firmware as shown by the "/usr/sbin/lanadmin -x card_info " command is 12.4.21, where PPA is the Card Interface number as shown by the lanscan (1M) command. PHNE_28135: 1. JAGae49035: Due to a defect in the auto-negotiation state machine executed by the 1000Base-SX card, the card might go to the link UP state without completing auto-negotiation. The link partner would still be trying to complete the negotiation, which causes the difference in link state between the card and its link partner. Resolution: 1. JAGae49035: The incorrect state transition has been fixed. PHNE_26939: 1. JAGae15641: PIO writes from different CPUs were going out of order to the EPIC because non-accelerated write was not being used. 2. JAGae21557: rp8400 core I/O ioscan description string increased in size, but the array in which it is stored was not resized. Resolution: 1. JAGae15641: The problem was fixed by initializing the V-class specific function "gelan_if_resolved_output_V" as the main output routine. 2. JAGae21557: The problem was fixed by resizing the array that stores the product description string. PHNE_24491: 1. JAGae01128: VLAN functionality was not integrated into the gelan driver until now. 2. JAGad39720: The Gigabit Ethernet driver firmware was not handling inbound corrupt packets correctly. 3. JAGad97673: A bug in the prefetch algorithm of Dino (HSC-to-PCI bus bridge) was causing the corruption. 4. JAGad89761: The product number for the Built-in I/O card on rp8400 was incorrect, causing startup scripts not to recognize it. 5. JAGad97717: The driver was reporting Auto-Negotiation to be "On" when either flow control negotiation or Auto-Negotiation were on. 6. JAGad82620: The driver was not checking if the card was in a suspended state before writing to it in the ISR. Resolution: 1. JAGae01128: The driver was modified to enable VLAN functionality 2. JAGad39720: The firmware was fixed to handle the corrupt frames correctly. 3. JAGad97673: The driver was modified to not unmap the last transmitted descriptor, such that two successive buffers are not in the same I/O Virtual Page, thereby working around the bug in Dino prefetch algorithm. 4. JAGad89761: The ioscan description for rp8400 Built-in I/O has been corrected in the driver. 5. JAGad97717: The driver's lanadmin shared library has been modified to use only the link negotiate bit (not the flow control negotiate bit) to determine whether Auto-Negotiation is enabled or not. 6. JAGad82620: The driver's Interrupt Service Routine was modified to not write to the card if it has been suspended. Enhancement: No (superseded patches contained enhancements) PHNE_28883: Enhancements were delivered in a patch superseded by this patch. Please review the Defect Description text for more information. SR: 8606170456 8606228618 8606220624 8606228662 8606213428 8606231892 8606249247 8606257252 8606285093 8606298643 8606265901 8606272385 8606304715 8606305044 8606305778 8606214636 8606312805 8606319804 8606270770 8606232651 Patch Files: GE-DRV.GE-RUN,fr=B.11.11.14,fa=HP-UX_B.11.11_32,v=HP: GE-DRV.GE-RUN,fr=B.11.11.19,fa=HP-UX_B.11.11_32,v=HP: /usr/lib/lanadmin/libdsgelan.sl /usr/lib/lanadmin/libdsgelan.1 /usr/lib/nls/msg/C/fmgelan.cat /sbin/init.d/hpgelan /usr/sbin/hpgelan_init GE-DRV.GE-KRN,fr=B.11.11.14,fa=HP-UX_B.11.11_32,v=HP: GE-DRV.GE-KRN,fr=B.11.11.19,fa=HP-UX_B.11.11_32,v=HP: /usr/conf/lib/gelan_dbg.o /usr/conf/lib/libgelan.a GE-DRV.GE-RUN,fr=B.11.11.14,fa=HP-UX_B.11.11_64,v=HP: GE-DRV.GE-RUN,fr=B.11.11.19,fa=HP-UX_B.11.11_64,v=HP: /usr/lib/lanadmin/libdsgelan.sl /usr/lib/lanadmin/libdsgelan.1 /usr/lib/nls/msg/C/fmgelan.cat /sbin/init.d/hpgelan /usr/sbin/hpgelan_init GE-DRV.GE-KRN,fr=B.11.11.14,fa=HP-UX_B.11.11_64,v=HP: GE-DRV.GE-KRN,fr=B.11.11.19,fa=HP-UX_B.11.11_64,v=HP: /usr/conf/lib/gelan_dbg.o /usr/conf/lib/libgelan.a what(1) Output: GE-DRV.GE-RUN,fr=B.11.11.14,fa=HP-UX_B.11.11_32,v=HP: /usr/lib/lanadmin/libdsgelan.sl: None /usr/lib/lanadmin/libdsgelan.1: None /usr/lib/nls/msg/C/fmgelan.cat: None /sbin/init.d/hpgelan: None /usr/sbin/hpgelan_init: hpgelan_init GE-DRV.GE-KRN,fr=B.11.11.14,fa=HP-UX_B.11.11_32,v=HP: /usr/conf/lib/gelan_dbg.o: None /usr/conf/lib/libgelan.a: gelan 1000Base-SX/T Revision: B.11.11.20 PHNE_28883 Oct 10 2003 11:01:12 GE-DRV.GE-RUN,fr=B.11.11.14,fa=HP-UX_B.11.11_64,v=HP: /usr/lib/lanadmin/libdsgelan.sl: None /usr/lib/lanadmin/libdsgelan.1: None /usr/lib/nls/msg/C/fmgelan.cat: None /sbin/init.d/hpgelan: None /usr/sbin/hpgelan_init: hpgelan_init GE-DRV.GE-KRN,fr=B.11.11.14,fa=HP-UX_B.11.11_64,v=HP: /usr/conf/lib/gelan_dbg.o: None /usr/conf/lib/libgelan.a: gelan 1000Base-SX/T Revision: B.11.11.20 PHNE_28883 Oct 10 2003 11:00:47 cksum(1) Output: GE-DRV.GE-RUN,fr=B.11.11.14,fa=HP-UX_B.11.11_32,v=HP: 2263460015 139264 /usr/lib/lanadmin/libdsgelan.1 2263460015 139264 /usr/lib/lanadmin/libdsgelan.sl 1554938601 6131 /usr/lib/nls/msg/C/fmgelan.cat 503220691 16664 /sbin/init.d/hpgelan 1542585240 13859 /usr/sbin/hpgelan_init GE-DRV.GE-KRN,fr=B.11.11.14,fa=HP-UX_B.11.11_32,v=HP: 1538350688 243452 /usr/conf/lib/gelan_dbg.o 827894239 377568 /usr/conf/lib/libgelan.a GE-DRV.GE-RUN,fr=B.11.11.14,fa=HP-UX_B.11.11_64,v=HP: 2263460015 139264 /usr/lib/lanadmin/libdsgelan.1 2263460015 139264 /usr/lib/lanadmin/libdsgelan.sl 1554938601 6131 /usr/lib/nls/msg/C/fmgelan.cat 503220691 16664 /sbin/init.d/hpgelan 1542585240 13859 /usr/sbin/hpgelan_init GE-DRV.GE-KRN,fr=B.11.11.14,fa=HP-UX_B.11.11_64,v=HP: 2126925245 303544 /usr/conf/lib/gelan_dbg.o 999305417 623898 /usr/conf/lib/libgelan.a Patch Conflicts: None Patch Dependencies: None Hardware Dependencies: None Other Dependencies: In order to use basic VLAN functionality on the Gigabit Ethernet product, PHNE_25388 (or its superseding patch) must be installed in addition to PHNE_24491 (or its superseding patch). The fix for the JAGae75612 to work PHNE_25388(or its superseding patch must be installed. Supersedes: PHNE_24491 PHNE_26939 PHNE_28135 PHNE_28770 Equivalent Patches: None Patch Package Size: 690 KBytes Installation Instructions: Please review all instructions and the Hewlett-Packard SupportLine User Guide or your Hewlett-Packard support terms and conditions for precautions, scope of license, restrictions, and, limitation of liability and warranties, before installing this patch. ------------------------------------------------------------ 1. Back up your system before installing a patch. 2. Login as root. 3. Copy the patch to the /tmp directory. 4. Move to the /tmp directory and unshar the patch: cd /tmp sh PHNE_28883 5. Run swinstall to install the patch: swinstall -x autoreboot=true -x patch_match_target=true \ -s /tmp/PHNE_28883.depot By default swinstall will archive the original software in /var/adm/sw/save/PHNE_28883. If you do not wish to retain a copy of the original software, include the patch_save_files option in the swinstall command above: -x patch_save_files=false WARNING: If patch_save_files is false when a patch is installed, the patch cannot be deinstalled. Please be careful when using this feature. For future reference, the contents of the PHNE_28883.text file is available in the product readme: swlist -l product -a readme -d @ /tmp/PHNE_28883.depot To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHNE_28883.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None