Patch Name: PHNE_29089 Patch Description: s700_800 11.11 J2793B X.25 SX25-HPerf/SYNC-WAN Creation Date: 03/07/01 Post Date: 04/01/14 Hardware Platforms - OS Releases: s700: 11.11 s800: 11.11 Products: SX25-HPerf B.11.11.00; SYNC-WAN B.11.11.00 Filesets: SX25-HPerf.SX25-HPERF-SAM,fr=B.11.11.00,fa=HP-UX_B.11.11_32/64,v=HP SYNC-WAN.SYNC-ALIB,fr=B.11.11.00,fa=HP-UX_B.11.11_64,v=HP SYNC-WAN.SYNC-ALIB,fr=B.11.11.00,fa=HP-UX_B.11.11_32,v=HP SX25-HPerf.SX25-HPERF-PAD,fr=B.11.11.00,fa=HP-UX_B.11.11_32/64,v=HP SX25-HPerf.SX25-HPERF-COM,fr=B.11.11.00,fa=HP-UX_B.11.11_32/64,v=HP SX25-HPerf.PA-ALIB,fr=B.11.11.00,fa=HP-UX_B.11.11_64,v=HP SX25-HPerf.PA-ALIB,fr=B.11.11.00,fa=HP-UX_B.11.11_32,v=HP SX25-HPerf.COM-ALIB,fr=B.11.11.00,fa=HP-UX_B.11.11_64,v=HP SX25-HPerf.COM-ALIB,fr=B.11.11.00,fa=HP-UX_B.11.11_32,v=HP SYNC-WAN.SYNC-COM,fr=B.11.11.00,fa=HP-UX_B.11.11_32/64,v=HP SX25-HPerf.SX25-HPERF-MAN,fr=B.11.11.00,fa=HP-UX_B.11.11_32/64,v=HP SX25-HPerf.SX25-HPERF-IP,fr=B.11.11.00,fa=HP-UX_B.11.11_32/64,v=HP SX25-HPerf.COM-64SLIB,fr=B.11.11.00,fa=HP-UX_B.11.11_32/64,v=HP SX25-HPerf.SX25-SNMP,fr=B.11.11.00,fa=HP-UX_B.11.11_32/64,v=HP Automatic Reboot?: Yes Status: General Release Critical: Yes PHNE_29089: PANIC MEMORY_LEAK OTHER JAGae47604 is critical because it kills unrelevant processes. JAGae48251 is critical because the application is not informed properly about the port state and the port becomes unusable. PHNE_27403: PANIC CORRUPTION OTHER JAGae00951 is critical because the X.25 port goes down and becomes unusable. JAGad65925 is critical because the X.25 port goes down and becomes unusable. PHNE_25596: PANIC PHNE_23190: PANIC HANG MEMORY_LEAK OTHER JAGad14826 is critical because it renders the card nonfunctional. JAGad40560 is critical because connection can't be established if multiple listen ports are configured. JAGad38177 is critical because only way to recover is to stop and restart the entire subsystem. Category Tags: defect_repair enhancement general_release critical firmware panic halts_system corruption memory_leak Path Name: /hp-ux_patches/s700_800/11.X/PHNE_29089 Symptoms: PHNE_29089: 1. JAGae39475 / SR 8606275401 connect() request on the X.25 socket returns ECONNREFUSED instead of ENOSPC when all the virtual circuits are already in use. 2. JAGae39892 / SR 8606275816 The system panics with the following stack trace while running the MESA diagnostic tool (wanld) on J3525A card :- panic+0x6c too_much_time+0x2e8 wait_for_lock+0x23c sl_retry+0x1c J3525_F_Ioctl+0xec x25hal_ioctl+0x24c spec_ioctl+0xac vno_ioctl+0x98 ioctl+0x120 syscall+0x750 $syscallrtn+0x0 3. JAGae47604 / SR 8606283659 X29 services sends SIGUSR2 to the wrong processes 4. JAGae48251 / SR 8606284304 When a user tries to connect and remove the cable from J3526A (4-port card) repeatedly, the card fails to detect the status of cable when heavy traffic is passing through the card. 5. JAGae53364 / SR 8606289433 The PAD emulator results in memory leak when handling multiple connections. 6. JAGae53521 / SR 8606289591 The system might panic with the following stack trace while initializing the X.25 interfaces through x25init command:- panic+0x14 report_trap_or_int_and_panic+0x80 trap+0xdb8 nokgdb+0x8 XIM_F0_rem+0xa4 x25idmap_write_put+0x274 putnext+0xcc XSY_F_write_put+0x160 putnext+0xcc wait_iocack+0x68 str_istr_ioctl+0x3c0 hpstreams_ioctl_int+0x370 hpstreams_ioctl+0x50 spubind_cdev_ioctl+0x94 spec_ioctl+0xac vno_ioctl+0x90 ioctl+0x78 Enf_ioctl+0x24c syscall+0x480 $syscallrtn+0x0 7. JAGae59005 / SR 8606295310 Padem is consuming too much CPU. PHNE_27403: 1. JAGad02521 / SR 8606133376 There is a typographical error in the "x25check" man page. "STRMSGSZ" has been spelt wrongly as "STRMSGZ". 2. JAGae00951 / SR 8606231715 The level 2 state toggles between up and down and a lot of CRC errors, bad frames etc. are reported in statistics. This problem has been found while the X.25 J3526A card was connected to a Cisco router using V.35. 3. JAGad97574 / SR 8606228517 When the HP-PB PSI card reports lot of "receive aborts" (it can be seen by using "x25stat -g" command), using "x25stat" command many times can lead to system panic. The following message was seen using "dmesg": "X.25 problem: No more timeout data structure". 4. JAGad65925 / SR 8606196727 The X.25 level 2 sends an unexpected FRMR frame and it does not stay up. This problem has been observed with a NORTEL DPN100 switch. However, it might happen with other configuration. 5. JAGae30964 / SR 8606266719 Sometimes system panics when stopping X25 J3525A interface with the following stack trace. qenable+0xc wan_rxebl+0x24 J3525_F_RxFrame+0x94 J3525_F_TriggerRxFrame+0xcf4 process_sw_triggers+0x134 sw_service+0x13c mp_ext_interrupt+0x150 ihandler+0x904 6. JAGae32834 / SR 8606268596 While disabling "x29printd / x29server / x29uucpd" daemons through SAM the x25 configuration was never updated. PHNE_25596: 1. JAGad52014 / SR 8606182798 System panics when following sequence of actions are performed: - Start the application which attaches to a PVC for data transfer. - Application is terminated/killed. - Another application is started which attaches to the same PVC. - The interface cable for the port is disconnected. 2. JAGad52923 / SR 8606183710 System panics in X.25 socket code when X.25 facilities are used. 3. JAGad53164 / SR 8606183954 System panicked with the following stack trace: panic+0x14 report_trap_or_int_and_panic+0x84 trap+0xd9c nokgdb+0x8 putq_owned+0x190 putq+0x1c J3526_F_infc+0xb8 sxbinfc+0x58 sxbrsrv+0x388 sq_wrapper+0x94 ioctl_sleep+0x29c wait_iocack+0x7c str_istr_ioctl+0x738 hpstreams_ioctl_int+0x6a8 hpstreams_ioctl+0x50 spec_ioctl+0xac vno_ioctl+0x90 ioctl+0x7c syscall+0x6f8 $syscallrtn+0x0 4. JAGad54284 / SR 8606185082 x25init returns an error on J3526A card with the message "Link of wan0012 under lapb0012 failed" 5. JAGad69251 / SR 8606200067 x25stop/x25init hangs on a J3526A card after doing 'ricreset'. 6. JAGad70181 / SR 8606201005 set_timer() may not restart the timer sometimes. This may lead to LAPB not doing timer recovery operations at times. 7. JAGad72705 / SR 8606203532 System panics due to spin lock deadlock in the function J3526_F_time_is_out(). 8. JAGad82177 / SR 8606212990 When more than one process/thread is using the same socket descriptor and the socket is put to non-blocking mode, the select() on the receive may hang even though there is data to process. 9. JAGad87223 / SR 8606218073 The system panics in the X.25 socket layer code with the top of the panic stack containing "XIQ_F0_a_data_ind+0x168". This panic is observed when the inbound data is received with 'D' bit set. 10. JAGad87211 / SR 8606218061 Customer cannot start the SNMP x25subagt on PA-RISC 1.1 systems. PHNE_23190: 1. JAGad36972 / SR 8606167689 System may crash when the J3526A card goes into "fatal" error mode. When the system crashes the console message would contain the following message: "J3526_F_it_handler(): Reject bit set (CBSP = 0x....) for card 0x....". 2. JAGad34197 / SR 8606164900 Panic on N-class with 8 T1/E1 cards. 3. JAGad14826 / SR 8606145490 Cross-bus deadlock due to DMA stuck in STOPPED state. 4. JAGad36479 / SR 8606167193 Lot of x29server processes shown up in "ps -ef" output with PPID as 1 (init process). 5. JAGad37977 / SR 8606168699 Non-privileged user is permitted to remove the temporary files created by others in /var/x25/tmp directory. 6. JAGad39667 / SR 8606170403 System panicked in XIQ_F_handler function during ACC (Advanced Communications Controller) stress testing. 7. JAGad40560 / SR 8606171296 "x29server" may not accept the second connection,if more than one listen stream is configured. 8. JAGab77075 3.02 ACC does not generate CLEAR on SVC after shutdown(0) unlike 2.40 ACC. 9. JAGad38177 / SR 8606168899 x25init sometimes fails with "nc ioctl X25_SET_SNID" failed message. 10. JAGaa03408 When enabling SX25L3 (PLP) tracing in nettl, it returns with error: ioctl call on x25 device failed with errno 19 (no such device). 11. JAGad47478 / SR 8606178251 When the J3526A card is reset in a loop for about 1000 times, the system panicked with "Data page fault" message. 12. JAGad41662 / SR 8606172402 Memory leak (512 bytes) when X25_SETUP_PVC ioctl is processed. 13. JAGad40862 / SR 8606171598 Need to enhance "x25stat" command to show "VC Up Time" for all active virtual circuits. 14. JAGad47111 / SR 8606177884 Uni-processor system hangs when SS7 traffic is stopped and trying to bring down the SS7 subsystem at the same time. 15. JAGad47117 / SR 8606177890 "ricreset" on J3526A card displays "heartbeat" failure message. 16. JAGad47673 / SR 8606178446 NetTL tracing for SX25L2 on a J3526A (4-port) card port logs bad information which "netfmt" is not able to format properly. 17. JAGad02522 / SR 8606133377 "x25check" does not work with message sizes > 2048 bytes. Defect Description: PHNE_29089: 1. JAGae39475 / SR 8606275401 When connect request is sent and all the virtual circuits(VCs) are already in use, x25plp module returns "negative acknowledgement" with diagnostic code set to 71. After receiving "negative acknowledgement" from x25plp module the socket call connect() returns ECONNREFUSED to the user irrespective of the diagnostic code. Resolution: Code now examines the diagnostic code sent by x25plp. If the code is 71, connect() returns ENOSPC. Otherwise, ECONNREFUSED is returned to the user. 2. JAGae39892 / SR 8606275816 J3525A card reset ioctl(), used by MESA diagnostics tool (wanld), does not release the spinlock if it is unable to reset the card. This results in a spinlock deadlock when the the same ioctl() is issued next time, causing system panic. Resolution: Code has been modified to release the spinlock when the card is not reset by the J3525A card reset ioctl(). 3. JAGae47604 / SR 8606283659 SIGUSR2 is sent to wrong processes because the variable used to store the pids is modified during an array initialization. It happens because the array size is smaller than required. Resolution: The array size is increased. 4. JAGae48251 / SR 8606284304 A timeout routine is scheduled in the card to detect the status of cable on a regular basis. A variable is used to keep track of whether it is already scheduled. During heavy traffic, this variable is not updated resulting in this routine not being scheduled and hence failure to detect the cable status. Resolution: The J3526A WAN firmware has been modified to handle timers appropriately. 5. JAGae53364 / SR 8606289433 PAD emulator(padem) does not free the memory allocated when multiple connections are done without exiting the tool. Resolution: Memory is now freed properly to evade memory leaks. 6. JAGae53521 / SR 8606289591 Pointer was not checked before dereferencing it. Resolution: Now a check is done before dereferencing the pointer. 7. JAGae59005 / SR 8606295310 Padem is calling fwrite() for each character received from remote host. Resolution: A new method is introduced in which the characters coming from remote host are collected in to a buffer. The fwrite() is called with the buffer if either the buffer gets full or a fixed time is expired since the first character is received in the buffer. PHNE_27403: 1. JAGad02521 / SR 8606133376 "STRMSGSZ" has been spelt wrongly as "STRMSGZ". Resolution: The spelling has been corrected. 2. JAGae00951 / SR 8606231715 The problem was in the firmware. The Rx clock was sent out as the Tx clock. Hence no clock was being sent on TXCLOCK OUT. Resolution: The problem has been fixed in the firmware. 3. JAGad97574 / SR 8606228517 The firmware on HP-PB PSI card has limited number of timeout structures. When "receive abort" occurs, "timeout()" routine is called. If many such events occur within a small period of time, that will result in all the timeout structures getting used. Since there are no more timeout structures left to honour the next request, the firmware calls panic() resulting in the hang of processor on the card. Later when the system tries to access the card (during x25stat command), the system panics due to some invalid processing. Resolution: The firmware code is changed so that additional timeouts are not called when already one timeout() was pending for the concerned event. This will ensure only one structure getting used up even when the event occurs many times in a small period of time. There by the card is in good shape and the system will not panic. 4. JAGad65925 / SR 8606196727 The firmware on J3526A card has a problem and the X.25 level 2 sends an unexpected FRMR frame. After this the level 2 goes down. Resolution: The problem has been fixed in the firmware. 5. JAGae30964 / SR 8606266719 One local variable was used before proper initialization. In the case when it has some non zero garbage value the control goes to qenable for a null queue and the system panics. Resolution: The local variable has been initialized properly before the use. 6. JAGae32834 / SR 8606268596 While disabling "x29printd / x29server / x29uucpd" daemons through SAM the x25 configuration was never updated. Resolution: The X29_SERVICE_STOP routine has been modified to update configuration file /etc/rc.config.d/x25 properly, while disabling "x29printd / x29server / x29uucpd" through SAM. PHNE_25596: 1. JAGad52014 / SR 8606182798 Problem is that when PVC_DETACH request is sent down to the X25 PLP, the xvc reference is not removed from the xgldb (glue structure used by the upper multiplexer). So, after the PVC detach, if cable is disconnected from the port, the xvc structure gets freed. After this, when upper stream is being closed, since it still has the reference to the freed xvc, the system panics due to invalid memory access. Resolution: The fix is to nullify the reference pointers when N_PVC_DETACH primitive is processed by X25 PLP. 2. JAGad52923 / SR 8606183710 X.25 source reuses the buffer allocated during the connection establishment for sending the disconnect request when the socket is closed. The buffer required for disconnect request is more than the allocated buffer. Therefore writing to the unallocated memory will cause the system panic. Resolution: The fix is to reuse the buffer only if the buffer is of required size. Otherwise, allocate a new buffer and copy the required fields to the newly allocated buffer. 3. JAGad53164 / SR 8606183954 In the j3526 driver, "putq" routine provided by streams was used to put a message onto a streams queue. At the same time, in the corresponding streams module, "getq" was called (on a different processor). As "putq" doesn't synchronize the calls into streams module, the race condition between "putq" and "getq" on the same queue caused some pointers to go stale and subsequently caused the system to panic. Resolution: All the calls to "putq" were converted to "streams_put" which will synchronize the entry in to the streams context by a non streams module. Also, care is taken to release the streams spin lock before calling "streams_put". 4. JAGad54284 / SR 8606185082 J3526 Cross-Bus firmware incorrectly derives the index into Xbus streams table using the stream ID passed by J3526 host driver. This results in error being returned from firmware even though the stream is valid. Resolution: The fix is to mask off the bits which are not required when forming the index from the stream ID passed. 5. JAGad69251 / SR 8606200067 After the card is reset, the driver state was not updated to indicate that the card has been reset. So, when the driver gets any commands from x25init/x25stop, it will send down that command to card instead of rejecting it with an error. Since the card is already reset, it will not respond to any command and x25init/x25stop will wait forever for the response from the driver. This will result in x25init/x25stop application hang. Resolution: The fix was to set the driver state to 0 so that any command other than reset and download down to the card will result in error being returned. 6. JAGad70181 / SR 8606201005 While step_time() is processing the timers, if set_timer() is called on the timer which is being processed OR the next timer in the list, it will not restart the timer. This will lead to the module which is depending on the timer not behaving as expected. Resolution: set_timer() now saves the time in tm_left, if "in_use" is set and step_time() checks this and restarts the timer. 7. JAGad72705 / SR 8606203532 In "j3526" driver's streams related code, "streams_untimeout()" is being called in some places. "streams_untimeout" will return only when it could untimeout the timer function with the specified identifier or when the timer function gets completed. In the j3526 driver code, "streams_untimeout" is called with the card's streams lock held. The timer function, J3526_F_time_is_out() also tries to hold the same lock. This could lead to deadlock as streams_untimeout is waiting for the timer function to return and the timer function is waiting for the lock (which was held by the code that called untimeout). Resolution: The driver releases the streams lock before calling "streams_untimeout" routine. 8. JAGad82177 / SR 8606212990 When more than one process/thread is using the same socket descriptor, mutex is used to allow exclusive access to one of the thread. So, when one thread is performing some operation, any operation by other thread will be blocked until the first thread completes the operation. But when the socket is put in non-blocking mode, if the mutex is already held, the later operation will be dropped instead of blocking. So, in this particular scenario, when write operation was going on, the read operation arrived and it was dropped due to mutex already held. As the read operation got dropped, the state of the inbound state machine did not get changed and this resulted in queuing of inbound data and the arrival of inbound data was never intimated to the application. As the state never got changed after this, all the inbound data was just queued in the streams queue and the select() done by application will never return read ready. Resolution: The fix is to not drop the operation when mutex is held and block the later operation until it is released. 9. JAGad87223 / SR 8606218073 When the inbound state machine of X.25 socket layer received the data with 'D' bit set, it formed the acknowledgement (DAck) message and put it at the head of its read side queue. Later when the application receives the data, the inbound state machine calls streams_put() to enter in to streams context. At this time, two of the streams requests waiting in the synchronization queue were processed which should not have been the case. The first one is data with 'D' bit set. This was processed and another acknowledgement (DAck) was put at the head of the read queue. At this point, the state machine goes in to receiving state. The second request was data packet too. Since the state was receiving, this request is put at the end of the read queue. Later, the first DAck message from the queue was sent out. Now due to the unexpected state (i.e. receiving), in the subsequent processing, the remaining two messages in the read side queue got swapped resulting in the unprocessed data at the head and the DAck message at the end. When the application received the data again, this resulted in the first message in the read queue being sent to the peer wrongly assuming it as DAck message. And then the state machine processed the next message assuming it as data and it resulted in the de-reference of NULL pointer. Resolution: Whenever an acknowledgement (DAck) was put at the head of the read side queue, a flag was set in the PCB structure for that socket. When this flag was set, any inbound data was unprocessed and put at the end of the queue. This prevented the second DAck message being put at the head of the read queue and also the state was intact across the streams_put() calls. Thus the swapping of the messages in the read queue were prevented and the data processing was streamlined. 10. JAGad87211 / SR 8606218061 For 11.11 release, the (X25) SNMP subagent is generated for PA RISC 2.0 only. While compiling the sources we did not use the corresponding option for PA RISC 1.1. Resolution: Now at the time of compilation we have added the corresponding option for PA RISC 1.1. PHNE_23190: 1. JAGad36972 / SR 8606167689 When "Reject" bit error is encountered, the driver calls untimeout() to stop the heartbeat checking at the driver side. It was noticed that, even after calling untimeout(), due to the timing issues, the heartbeat was not stopped and the heartbeat routine was being executed. Occasionally, the system crashed during the execution of heartbeat function while reading the wdg_count from the card. The reason for the system crash is that the card is being accessed while it is in fatal error state. Resolution: When the "Reject" bit error happens, change the heartbeat status to "Not Started" and when the heartbeat function is executed, it does not do anything if this flag is set. 2. JAGad34197 / SR 8606164900 When trying to get the card dump, the driver reads certain configuration information from the card before starting the dump process. Due to memory corruption on the card firmware,the configuration information obtained from the card was incorrect. This caused a panic when that information was used to set some flags on the card. Resolution: As the setting up of the NMI dump handler during the dump is no more required, the driver now just issues the NMI interrupt to the card to start the dump. 3. JAGad14826 / SR 8606145490 The DMA was stopped at some STOP chaining point and never restarted despite the command at the end of DMA_F_prog_ch1 routine or any attempts done at any time. Resolution: The DMA register values are saved for checking various conditions. Now the DMA engine hang condition check has been corrected. Also the boundary condition for the descriptor ring overflow is checked now. 4. JAGad36479 / SR 8606167193 The problem is that, when the x29server process (x29server_2) which is responsible for serving the connection terminates before the launch of application, the client process (x29server_3) which is supposed to turn into application process would be blocked waiting for synchronization information from x29server_2 and will be blocked forever as the x29server_2 process has already terminated. Since x29server_2 and x29server_3 communicate using ptys and the master pty is not closed in the x29server_3 (slave process), the termination of x29server_2 process has not been intimated to the x29server_3 process. This caused the hang in x29server_3 process. Resolution: The fix is to close the master pty as soon as the client process (x29server_3) is created. 5. JAGad37977 / SR 8606168699 /var/x25/tmp directory is used to create temporary files during the execution of x25init, x25mibstat and x25stat commands. The files are created and removed during the execution of the corresponding commands. Since the directory has 777 permission, it permits the non-owner to remove the files created by others. This has been corrected in this patch. Resolution: The solution to this is to create the directory with the sticky bit set (permission 1777). In this way, only the owner of the file would be allowed to remove it. The files created in this directory can be made unreadable to others by setting the umask of the user to 027. 6. JAGad39667 / SR 8606170403 X.25 socket module received a shutdown indication from the socket layer. During this, the X.25 socket layer sends flush signal to inbound and outbound state machines to flush all the data. First, the signal is sent to outbound state machine where the state machine executes streams_put() to flush the outbound data queued in the streams queue. The streams_put() function also checks to see if there are any messages queued in the synchronization queue of the module. In this particular case, the disconnect indication was present and it processed that message. While processing the disconnect indication, the X.25 socket layer made the "nli_wq" pointer NULL in the pcb. Then, when the flush signal is sent to inbound state machine, it tried to access the "nli_wq" pointer and due to NULL pointer de-reference, the system panicked with "Data page fault". Resolution: The fix is to check the value of "nli_wq" pointer before accessing it. 7. JAGad40560 / SR 8606171296 If the x29server is configured to listen on multiple addresses, then after the first connection, it may not accept any connections on other listen streams. This problem is due to not initializing the "fdsets" (file descriptor sets) used for select() system call every time. Resolution: The fix is to move the initialization of the "fdsets" used in select system call inside the loop so that the "fdsets" are initialized every time before calling the select(). 8. JAGab77075 After a user does a shutdown(0) on a socket, all further attempts to send data on the socket should result in X25/ACC sending a clear. Instead of a "CLEAR" packet, a "RESET" was being sent. Resolution: Programmatic access to X25 was modified to send a "CLEAR" packet based on "SO_CANTRCVMORE" flag, whenever a peer tried to connect to a socket that had been operated upon by a shutdown(0) by the user. The file descriptor of the socket is closed only when the user does a "close". 9. JAGad38177 / SR 8606168899 Some of the fields in the "labels" array elements were not initialized when "sx25d" allocates (using a free entry from the static array) a label for an opened stream. So, when x25init sends a message to sx25d to push the "trc" module on top of already opened lapb, since one of the fields in the label associated with the lapb stream was NOT initialized, the sx25d was taking a different code path than the path it was supposed to take. In that path, instead of pushing the "trc" module on top of existing lapb stream, it opens the lapb stream again and attaches the same label to that stream (thus previous association with the lapb stream is removed). At this point, x25init does not know of this. After this X25_SET_SNID ioctl sent by x25init failed as the ioctl was passed on to the lapb stream instead of "trc" module pushed on top of lapb (trc module was not pushed on top of newly opened stream). Resolution: When the label is freed (marking the corresponding entry as free), now, all the fields associated with that label are initialized correctly. 10. JAGaa03408 Normally, when switching ON tracing for a port in a subsystem, nettl first switches off all tracing for that subsystem if tracing for that particular subsystem was active earlier. If an x25init happens on a port on which PLP trace has been enabled, some data structures (in particular, the trc_pseudo_plp_state_list in trcmodule.c file) are reset. "nettl" does not come to know of this. Now if "nettl -traceon..." is executed on that port, nettl first tries to switch OFF the tracing on the port (because according to it the tracing on the specified subsystem SX25L3 is enabled)- and is not able to find the PLP-trace information data structure (struct trc_strm_state) corresponding to the given port and therefore reports Error 19. Resolution: The nettl tracing for a subsystem, if enabled, is now explicitly turned OFF in x25stop. This way nettl is in "sync" with events on x25 ports. 11. JAGad47478 / SR 8606178251 During the reset of the card, if the driver fails to allocate memory, all the memory allocated so far would be freed and also the card registers and card memory would be unmapped. So in the next iteration, when user tries to reset the card, the reset code tries to access the NULL pointer and this results in system panic. Resolution: The fix is to map the card registers and memory if they are not already mapped during the card reset. 12. JAGad41662 / SR 8606172402 When X25_SETUP_PVC ioctl is received, an mblk message is allocated which never gets freed. This results in a memory leak. Resolution: The memory is freed after its use. 13. JAGad40862 / SR 8606171598 "x25stat" command was not providing any option to the user which can be used to request the "VC Up Time" of the active virtual circuits. Resolution: Provided "-u" option in x25stat command so that the user can request the "VC Up Time" for all active virtual circuits. A new ioctl has been added for this purpose. This option, however, has to be used in conjunction with the "-v" option of x25stat command. Also, this option is supported only for ACC cards. 14. JAGad47111 / SR 8606177884 Due to a race condition between handling of the closing of the stream and data coming from the upper layers, the streams subsystem went into infinite loop,processing the upper layer data. Resolution: The fix is to disable the processing of the upper layer messages when the stream is being closed. 15. JAGad47117 / SR 8606177890 When the card is reset, the heartbeat is NOT stopped. So, after the card is reset, if the firmware is not downloaded immediately, the driver's heartbeat routine will wrongly detect this as card failure and displays a "heartbeat" failure message. Resolution: The fix is to disable the heartbeat timer when the card is reset.This will be enabled once the firmware download is completed. 16. JAGad47673 / SR 8606178446 The data corruption is due to the bad implementation of bcopy() on i960 processor (on the J3526A card). It does not copy properly if the source or the destination addresses are not aligned to a word boundary. Resolution: Implemented "bcopy_j3526()" to correctly copy the data and remapped "bcopy()" to "bcopy_j3526()" (for LAPB) in the firmware for J3526A card. 17. JAGad02522 / SR 8606133377 The default NSDU size is 2048 bytes.If the packet size is more than that,the ACC driver nli2zcom/nlife fragments the packet but "x25check" and "x25server" always expect a single packet with out fragmentation. Resolution: The fix is to send "N_HP_SET_FRAG" streams control message on both the client side data transfer stream (by x25check) and the server side data transfer stream (by x25server) to set the maximum fragment size equal to the packet size. Enhancement: No (superseded patches contained enhancements) PHNE_25596: x25stat will show "VC Up Time" for all active VCs. SR: 8606275401 8606275816 8606283659 8606284304 8606289433 8606289591 8606295310 8606133376 8606231715 8606228517 8606196727 8606266719 8606268596 8606182798 8606183710 8606183954 8606185082 8606200067 8606201005 8606203532 8606212990 8606218073 8606218061 8606167689 8606164900 8606145490 8606167193 8606168699 8606170403 8606171296 8606168899 8606178251 8606172402 8606171598 8606177884 8606177890 8606178446 8606133377 8606167874 8606168414 Patch Files: SX25-HPerf.SX25-HPERF-SAM,fr=B.11.11.00, fa=HP-UX_B.11.11_32/64,v=HP: /usr/sam/lib/x25/x25.tm SYNC-WAN.SYNC-ALIB,fr=B.11.11.00,fa=HP-UX_B.11.11_64,v=HP: /etc/x25/ric_wvol.rel /etc/x25/wnio.dwn /usr/conf/lib/libwan.a /etc/x25/ric_cxb.rel /usr/conf/lib/wansyms.o SYNC-WAN.SYNC-ALIB,fr=B.11.11.00,fa=HP-UX_B.11.11_32,v=HP: /etc/x25/ric_wvol.rel /etc/x25/wnio.dwn /usr/conf/lib/libwan.a /etc/x25/ric_cxb.rel /usr/conf/lib/wansyms.o SX25-HPerf.SX25-HPERF-PAD,fr=B.11.11.00, fa=HP-UX_B.11.11_32/64,v=HP: /usr/sbin/x29server /usr/sbin/x29printd /usr/sbin/x29uucpd /usr/sbin/padem SX25-HPerf.SX25-HPERF-COM,fr=B.11.11.00, fa=HP-UX_B.11.11_32/64,v=HP: /usr/sbin/x25init /usr/sbin/sx25d /usr/sbin/x25stop /usr/lib/nls/C/x25stop.cat /usr/sbin/x25stat /usr/sbin/sx25stat /usr/sbin/sx25statx /etc/x25/ric_lapb.rel /usr/sbin/x25check /usr/sbin/x25server /usr/lib/nls/C/x25check.cat /usr/sbin/x25mibstat /usr/sbin/x25ifstate /var/x25/dlpi/dlpi_lib.c /usr/lib/libx25mstat.a SX25-HPerf.PA-ALIB,fr=B.11.11.00,fa=HP-UX_B.11.11_64,v=HP: /usr/conf/lib/libx25pa.a SX25-HPerf.PA-ALIB,fr=B.11.11.00,fa=HP-UX_B.11.11_32,v=HP: /usr/conf/lib/libx25pa.a SX25-HPerf.COM-ALIB,fr=B.11.11.00,fa=HP-UX_B.11.11_64,v=HP: /etc/x25/lnio.dwn /usr/conf/lib/libx25.a /usr/conf/lib/x25syms.o SX25-HPerf.COM-ALIB,fr=B.11.11.00,fa=HP-UX_B.11.11_32,v=HP: /etc/x25/lnio.dwn /usr/conf/lib/libx25.a /usr/conf/lib/x25syms.o SYNC-WAN.SYNC-COM,fr=B.11.11.00,fa=HP-UX_B.11.11_32/64,v=HP: /usr/include/x25/x25hd_ioctl.h SX25-HPerf.SX25-HPERF-MAN,fr=B.11.11.00, fa=HP-UX_B.11.11_32/64,v=HP: /usr/share/man/man1m.Z/x25check.1m /usr/share/man/man1m.Z/x25init.1m /usr/share/man/man1m.Z/x25stop.1m /usr/share/man/man1m.Z/x25stat.1m SX25-HPerf.SX25-HPERF-IP,fr=B.11.11.00, fa=HP-UX_B.11.11_32/64,v=HP: /usr/sbin/x25ping SX25-HPerf.COM-64SLIB,fr=B.11.11.00,fa=HP-UX_B.11.11_32/64, v=HP: /usr/lib/pa20_64/libx25mstat.a SX25-HPerf.SX25-SNMP,fr=B.11.11.00,fa=HP-UX_B.11.11_32/64, v=HP: /usr/sbin/x25subagt what(1) Output: SX25-HPerf.SX25-HPERF-SAM,fr=B.11.11.00, fa=HP-UX_B.11.11_32/64,v=HP: /usr/sam/lib/x25/x25.tm: None SYNC-WAN.SYNC-ALIB,fr=B.11.11.00,fa=HP-UX_B.11.11_64,v=HP: /etc/x25/ric_wvol.rel: ARTIC960 (C) Serial WAN for 4 Port Synchronous PMC Version 4.1.7 (using Spec Version 1.1) /etc/x25/wnio.dwn: hdlc.h 3.28 (Spider) 90/12/10 hdlc.h 3.28 (Spider) 90/12/10 hdlc.h 3.28 (Spider) 90/12/10 hdlc.h 3.28 (Spider) 90/12/10 NIO PSI firmware (11i) $Revision: 9.15 $ 23_Jul_02_1 6:59 /usr/conf/lib/libwan.a: WAN Common Part Rev.A.01 FILESET WAN-COM (11i) $Revision: 6.17 $ 05_Jul_03_16 :16 J3526: Revision: A.1.4 $Date: 99/05/20 08:25:00 J3525 driver for HPUX 11.11 (64 bit) $Revision: 1.1 $ /etc/x25/ric_cxb.rel: ONBOARD CXB: Revision: A.1.3 $Date: 2001/10/29 15:5 0:44 $ /usr/conf/lib/wansyms.o: None SYNC-WAN.SYNC-ALIB,fr=B.11.11.00,fa=HP-UX_B.11.11_32,v=HP: /etc/x25/ric_wvol.rel: ARTIC960 (C) Serial WAN for 4 Port Synchronous PMC Version 4.1.7 (using Spec Version 1.1) /etc/x25/wnio.dwn: hdlc.h 3.28 (Spider) 90/12/10 hdlc.h 3.28 (Spider) 90/12/10 hdlc.h 3.28 (Spider) 90/12/10 hdlc.h 3.28 (Spider) 90/12/10 NIO PSI firmware (11i) $Revision: 9.15 $ 23_Jul_02_1 6:35 /usr/conf/lib/libwan.a: WAN Common Part Rev.A.01 FILESET WAN-COM (11i) $Revision: 6.17 $ 05_Jul_03_15 :46 J3526: Revision: A.1.4 $Date: 99/05/20 08:25:00 J3525 driver for HPUX 11.11 (32 bit) $Revision: 1.1 $ /etc/x25/ric_cxb.rel: ONBOARD CXB: Revision: A.1.3 $Date: 2001/10/29 15:5 0:44 $ /usr/conf/lib/wansyms.o: None SX25-HPerf.SX25-HPERF-PAD,fr=B.11.11.00, fa=HP-UX_B.11.11_32/64,v=HP: /usr/sbin/x29server: X.25 PAD Services $Revision: 11.6 $ 05_Jul_03_16:00 /usr/sbin/x29uucpd: X.25 PAD Services $Revision: 11.6 $ 05_Jul_03_16:00 /usr/sbin/x29printd: X.25 PAD Services $Revision: 11.6 $ 05_Jul_03_16:00 /usr/sbin/padem: X.25 PAD Services $Revision: 11.6 $ 05_Jul_03_16:00 SX25-HPerf.SX25-HPERF-COM,fr=B.11.11.00, fa=HP-UX_B.11.11_32/64,v=HP: /usr/sbin/x25init: Streams X.25 (11i) $Revision: 9.15 $ 23_Jul_02_16:53 /usr/sbin/sx25d: None /usr/sbin/x25stop: Streams X.25 (11i) $Revision: 9.15 $ 23_Jul_02_16:53 /usr/lib/nls/C/x25stop.cat: None /usr/sbin/x25stat: Streams X.25 (11i) $Revision: 9.15 $ 23_Jul_02_16:53 /usr/sbin/sx25stat: None /usr/sbin/sx25statx: None /etc/x25/ric_lapb.rel: None /usr/sbin/x25check: Streams X.25 (11i) $Revision: 9.15 $ 23_Jul_02_16:53 /usr/sbin/x25server: Streams X.25 (11i) $Revision: 9.15 $ 23_Jul_02_16:53 /usr/lib/nls/C/x25check.cat: None /usr/sbin/x25mibstat: None /usr/sbin/x25ifstate: Streams X.25 (11i) $Revision: 9.15 $ 23_Jul_02_16:53 /var/x25/dlpi/dlpi_lib.c: None /usr/lib/libx25mstat.a: None SX25-HPerf.PA-ALIB,fr=B.11.11.00,fa=HP-UX_B.11.11_64,v=HP: /usr/conf/lib/libx25pa.a: FILESET SX25-PA (11i) $Revision: 9.17 $ 05_Jul_03_16 :22 SX25-HPerf.PA-ALIB,fr=B.11.11.00,fa=HP-UX_B.11.11_32,v=HP: /usr/conf/lib/libx25pa.a: FILESET SX25-PA (11i) $Revision: 9.17 $ 05_Jul_03_15 :57 SX25-HPerf.COM-ALIB,fr=B.11.11.00,fa=HP-UX_B.11.11_64,v=HP: /etc/x25/lnio.dwn: hdlc.h 3.28 (Spider) 90/12/10 hdlc.h 3.28 (Spider) 90/12/10 hdlc.h 3.28 (Spider) 90/12/10 hdlc.h 3.28 (Spider) 90/12/10 NIO PSI firmware (11i) $Revision: 9.15 $ 23_Jul_02_1 6:59 /usr/conf/lib/libx25.a: X25 Protocol Rev.B.02 FILESET SX25-COM (11i) $Revision: 9.17 $ 05_Jul_03_1 6:22 /usr/conf/lib/x25syms.o: None SX25-HPerf.COM-ALIB,fr=B.11.11.00,fa=HP-UX_B.11.11_32,v=HP: /etc/x25/lnio.dwn: hdlc.h 3.28 (Spider) 90/12/10 hdlc.h 3.28 (Spider) 90/12/10 hdlc.h 3.28 (Spider) 90/12/10 hdlc.h 3.28 (Spider) 90/12/10 NIO PSI firmware (11i) $Revision: 9.15 $ 23_Jul_02_1 6:35 /usr/conf/lib/libx25.a: X25 Protocol Rev.B.02 FILESET SX25-COM (11i) $Revision: 9.17 $ 05_Jul_03_1 5:57 /usr/conf/lib/x25syms.o: None SYNC-WAN.SYNC-COM,fr=B.11.11.00,fa=HP-UX_B.11.11_32/64,v=HP: /usr/include/x25/x25hd_ioctl.h: None SX25-HPerf.SX25-HPERF-MAN,fr=B.11.11.00, fa=HP-UX_B.11.11_32/64,v=HP: /usr/share/man/man1m.Z/x25check.1m: None /usr/share/man/man1m.Z/x25init.1m: None /usr/share/man/man1m.Z/x25stop.1m: None /usr/share/man/man1m.Z/x25stat.1m: None SX25-HPerf.SX25-HPERF-IP,fr=B.11.11.00, fa=HP-UX_B.11.11_32/64,v=HP: /usr/sbin/x25ping: Streams X.25 (11i) $Revision: 9.15 $ 23_Jul_02_16:53 SX25-HPerf.COM-64SLIB,fr=B.11.11.00,fa=HP-UX_B.11.11_32/64, v=HP: /usr/lib/pa20_64/libx25mstat.a: None SX25-HPerf.SX25-SNMP,fr=B.11.11.00,fa=HP-UX_B.11.11_32/64, v=HP: /usr/sbin/x25subagt: HP92453-02A.11.00 HP-UX SYMBOLIC DEBUGGER (END.O ILP 32) $Revision: 75.02 $ IF SNMP Subagent rev. B.11.11.00 (04-Sep-01_10:16, 1 .01) Copyright 1992-1996 SNMP Research, Incorporated SNMP Research Distribution version 14.0.0.0 Copyright 1992-1996 SNMP Research, Incorporated SNMP Research Distribution version 14.0.0.0 Copyright 1992-1996 SNMP Research, Incorporated SNMP Research Distribution version 14.0.0.0 Copyright 1992-1996 SNMP Research, Incorporated SNMP Research Distribution version 14.0.0.0 Copyright 1992-1996 SNMP Research, Incorporated SNMP Research Distribution version 14.0.0.0 Copyright 1992-1996 SNMP Research, Incorporated SNMP Research Distribution version 14.0.0.0 Copyright 1992-1996 SNMP Research, Incorporated SNMP Research Distribution version 14.0.0.0 Copyright 1992-1996 SNMP Research, Incorporated SNMP Research Distribution version 14.0.0.0 Copyright 1992-1996 SNMP Research, Incorporated SNMP Research Distribution version 14.0.0.0 Copyright 1992-1996 SNMP Research, Incorporated SNMP Research Distribution version 14.0.0.0 Copyright 1992-1996 SNMP Research, Incorporated SNMP Research Distribution version 14.0.0.0 Copyright 1992-1996 SNMP Research, Incorporated SNMP Research Distribution version 14.0.0.0 Copyright 1992-1996 SNMP Research, Incorporated SNMP Research Distribution version 14.0.0.0 Copyright 1992-1996 SNMP Research, Incorporated SNMP Research Distribution version 14.0.0.0 Copyright 1992-1996 SNMP Research, Incorporated SNMP Research Distribution version 14.0.0.0 Copyright 1992-1996 SNMP Research, Incorporated SNMP Research Distribution version 14.0.0.0 Copyright 1992-1996 SNMP Research, Incorporated SNMP Research Distribution version 14.0.0.0 Copyright 1992-1996 SNMP Research, Incorporated SNMP Research Distribution version 14.0.0.0 Copyright 1992-1996 SNMP Research, Incorporated SNMP Research Distribution version 14.0.0.0 Copyright 1992-1996 SNMP Research, Incorporated SNMP Research Distribution version 14.0.0.0 Copyright 1992-1996 SNMP Research, Incorporated SNMP Research Distribution version 14.0.0.0 Copyright 1992-1996 SNMP Research, Incorporated SNMP Research Distribution version 14.0.0.0 Copyright 1992-1996 SNMP Research, Incorporated SNMP Research Distribution version 14.0.0.0 Copyright 1992-1996 SNMP Research, Incorporated SNMP Research Distribution version 14.0.0.0 Copyright 1992-1996 SNMP Research, Incorporated SNMP Research Distribution version 14.0.0.0 Copyright 1992-1996 SNMP Research, Incorporated SNMP Research Distribution version 14.0.0.0 Copyright 1992-1996 SNMP Research, Incorporated SNMP Research Distribution version 14.0.0.0 Copyright 1992-1996 SNMP Research, Incorporated SNMP Research Distribution version 14.0.0.0 Copyright 1992-1996 SNMP Research, Incorporated SNMP Research Distribution version 14.0.0.0 Copyright 1992-1996 SNMP Research, Incorporated SNMP Research Distribution version 14.0.0.0 Copyright 1992-1996 SNMP Research, Incorporated SNMP Research Distribution version 14.0.0.0 cksum(1) Output: SX25-HPerf.SX25-HPERF-SAM,fr=B.11.11.00, fa=HP-UX_B.11.11_32/64,v=HP: 2599324741 39395 /usr/sam/lib/x25/x25.tm SYNC-WAN.SYNC-ALIB,fr=B.11.11.00,fa=HP-UX_B.11.11_64,v=HP: 1089639325 103661 /etc/x25/ric_wvol.rel 2356036432 40167 /etc/x25/wnio.dwn 3430036990 659342 /usr/conf/lib/libwan.a 3194651934 89390 /etc/x25/ric_cxb.rel 2986535142 537808 /usr/conf/lib/wansyms.o SYNC-WAN.SYNC-ALIB,fr=B.11.11.00,fa=HP-UX_B.11.11_32,v=HP: 1089639325 103661 /etc/x25/ric_wvol.rel 2560077782 40167 /etc/x25/wnio.dwn 1862843220 419096 /usr/conf/lib/libwan.a 3692015940 89390 /etc/x25/ric_cxb.rel 3968980711 426890 /usr/conf/lib/wansyms.o SX25-HPerf.SX25-HPERF-PAD,fr=B.11.11.00, fa=HP-UX_B.11.11_32/64,v=HP: 1714989065 176128 /usr/sbin/x29server 2635505464 163840 /usr/sbin/x29printd 2998570434 151552 /usr/sbin/x29uucpd 3592129498 139264 /usr/sbin/padem SX25-HPerf.SX25-HPERF-COM,fr=B.11.11.00, fa=HP-UX_B.11.11_32/64,v=HP: 2633255711 147456 /usr/sbin/x25init 82478467 36864 /usr/sbin/sx25d 2384986265 81920 /usr/sbin/x25stop 2686095942 3574 /usr/lib/nls/C/x25stop.cat 924749359 49152 /usr/sbin/x25stat 3674442569 81920 /usr/sbin/sx25stat 1965991310 86016 /usr/sbin/sx25statx 4206514186 106837 /etc/x25/ric_lapb.rel 943530214 45056 /usr/sbin/x25check 3991988662 45056 /usr/sbin/x25server 3072025543 10676 /usr/lib/nls/C/x25check.cat 1208154707 73728 /usr/sbin/x25mibstat 1797043938 32768 /usr/sbin/x25ifstate 2567200805 23391 /var/x25/dlpi/dlpi_lib.c 4056284066 28048 /usr/lib/libx25mstat.a SX25-HPerf.PA-ALIB,fr=B.11.11.00,fa=HP-UX_B.11.11_64,v=HP: 3318776271 365268 /usr/conf/lib/libx25pa.a SX25-HPerf.PA-ALIB,fr=B.11.11.00,fa=HP-UX_B.11.11_32,v=HP: 1719828096 235398 /usr/conf/lib/libx25pa.a SX25-HPerf.COM-ALIB,fr=B.11.11.00,fa=HP-UX_B.11.11_64,v=HP: 4175638737 77339 /etc/x25/lnio.dwn 4214999270 665088 /usr/conf/lib/libx25.a 3328078103 858720 /usr/conf/lib/x25syms.o SX25-HPerf.COM-ALIB,fr=B.11.11.00,fa=HP-UX_B.11.11_32,v=HP: 1584445076 77339 /etc/x25/lnio.dwn 3830230822 439510 /usr/conf/lib/libx25.a 3254400235 676712 /usr/conf/lib/x25syms.o SYNC-WAN.SYNC-COM,fr=B.11.11.00,fa=HP-UX_B.11.11_32/64,v=HP: 1743344219 8405 /usr/include/x25/x25hd_ioctl.h SX25-HPerf.SX25-HPERF-MAN,fr=B.11.11.00, fa=HP-UX_B.11.11_32/64,v=HP: 923224422 2893 /usr/share/man/man1m.Z/x25check.1m 2220635723 3568 /usr/share/man/man1m.Z/x25init.1m 2601890349 2148 /usr/share/man/man1m.Z/x25stop.1m 3398132756 2989 /usr/share/man/man1m.Z/x25stat.1m SX25-HPerf.SX25-HPERF-IP,fr=B.11.11.00, fa=HP-UX_B.11.11_32/64,v=HP: 2716057730 36864 /usr/sbin/x25ping SX25-HPerf.COM-64SLIB,fr=B.11.11.00,fa=HP-UX_B.11.11_32/64, v=HP: 1667950190 61640 /usr/lib/pa20_64/libx25mstat.a SX25-HPerf.SX25-SNMP,fr=B.11.11.00,fa=HP-UX_B.11.11_32/64, v=HP: 4179128158 350656 /usr/sbin/x25subagt Patch Conflicts: None Patch Dependencies: None Hardware Dependencies: None Other Dependencies: None Supersedes: PHNE_23190 PHNE_25596 PHNE_27403 Equivalent Patches: None Patch Package Size: 2690 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_29089 5. Run swinstall to install the patch: swinstall -x autoreboot=true -x patch_match_target=true \ -s /tmp/PHNE_29089.depot By default swinstall will archive the original software in /var/adm/sw/save/PHNE_29089. 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_29089.text file is available in the product readme: swlist -l product -a readme -d @ /tmp/PHNE_29089.depot To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHNE_29089.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None