[Asterisk-bugs] [Asterisk 0010227]: Incorrect handling of VNAK retransmission

noreply at bugs.digium.com noreply at bugs.digium.com
Wed Jul 18 10:18:36 CDT 2007


A NOTE has been added to this issue. 
====================================================================== 
http://bugs.digium.com/view.php?id=10227 
====================================================================== 
Reported By:                mihai
Assigned To:                russell
====================================================================== 
Project:                    Asterisk
Issue ID:                   10227
Category:                   Channels/chan_iax2
Reproducibility:            random
Severity:                   minor
Priority:                   normal
Status:                     assigned
Asterisk Version:           1.4.7.1  
SVN Branch (only for SVN checkouts, not tarball releases): N/A  
SVN Revision (number only!):  
Disclaimer on File?:        Yes 
Request Review:              
====================================================================== 
Date Submitted:             07-18-2007 09:49 CDT
Last Modified:              07-18-2007 10:18 CDT
====================================================================== 
Summary:                    Incorrect handling of VNAK retransmission
Description: 
In vnak_retransmit you can find the following code:

if ((f->callno == callno) && iaxs[f->callno] &&
	(f->oseqno >= last)) {
	send_packet(f);

oseqno and last are 8-bit values that wrap around, so if a VNAK
retransmission is requested right after a wraparound, this code will behave
incorrectly. 

Most probable effect would be that asterisk would not retransmitting the
right frames and the other endpoint would keep asking for them, generating
a VNAK storm
====================================================================== 

---------------------------------------------------------------------- 
 russell - 07-18-07 10:18  
---------------------------------------------------------------------- 
I'm saving this little tidbit here ...

10:08 < _mihai_> russellb: btw, here's the way I handle this in
iaxclient:
10:09 < _mihai_> if ( (unsigned char)(fh->iseqno - session->rseqno) <=
(unsigned char)(sch->frame->oseqno - session->rseqno) )
10:09 < _mihai_> session->rseqno is the last acknowledged sequence number 

Issue History 
Date Modified   Username       Field                    Change               
====================================================================== 
07-18-07 10:18  russell        Note Added: 0067516                          
======================================================================




More information about the asterisk-bugs mailing list