Code Review
/
vpp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
Implement sack based tcp loss recovery (RFC 6675)
[vpp.git]
/
src
/
svm
/
svm_fifo.c
diff --git
a/src/svm/svm_fifo.c
b/src/svm/svm_fifo.c
index
9b09d0c
..
5c8f244
100644
(file)
--- a/
src/svm/svm_fifo.c
+++ b/
src/svm/svm_fifo.c
@@
-54,19
+54,20
@@
format_svm_fifo (u8 * s, va_list * args)
s = format (s, "cursize %u nitems %u has_event %d\n",
f->cursize, f->nitems, f->has_event);
s = format (s, "cursize %u nitems %u has_event %d\n",
f->cursize, f->nitems, f->has_event);
- s = format (s, "head %d tail %d\n", f->head, f->tail);
+ s = format (s, "
head %d tail %d\n", f->head, f->tail);
if (verbose > 1)
s = format
if (verbose > 1)
s = format
- (s, "server session %d thread %d client session %d thread %d\n",
+ (s, "
server session %d thread %d client session %d thread %d\n",
f->master_session_index, f->master_thread_index,
f->client_session_index, f->client_thread_index);
if (verbose)
{
f->master_session_index, f->master_thread_index,
f->client_session_index, f->client_thread_index);
if (verbose)
{
- s = format (s, "ooo pool %d active elts\n",
+ s = format (s, "
ooo pool %d active elts\n",
pool_elts (f->ooo_segments));
pool_elts (f->ooo_segments));
- s = format (s, "%U", format_ooo_list, f);
+ if (svm_fifo_has_ooo_data (f))
+ s = format (s, " %U", format_ooo_list, f);
}
return s;
}
}
return s;
}
@@
-539,7
+540,7
@@
svm_fifo_peek (svm_fifo_t * f, u32 relative_offset, u32 max_bytes,
/* read cursize, which can only increase while we're working */
cursize = svm_fifo_max_dequeue (f);
/* read cursize, which can only increase while we're working */
cursize = svm_fifo_max_dequeue (f);
- if (PREDICT_FALSE (cursize
== 0
))
+ if (PREDICT_FALSE (cursize
< relative_offset
))
return -2; /* nothing in the fifo */
nitems = f->nitems;
return -2; /* nothing in the fifo */
nitems = f->nitems;
@@
-547,7
+548,8
@@
svm_fifo_peek (svm_fifo_t * f, u32 relative_offset, u32 max_bytes,
real_head = real_head >= nitems ? real_head - nitems : real_head;
/* Number of bytes we're going to copy */
real_head = real_head >= nitems ? real_head - nitems : real_head;
/* Number of bytes we're going to copy */
- total_copy_bytes = (cursize < max_bytes) ? cursize : max_bytes;
+ total_copy_bytes = (cursize - relative_offset < max_bytes) ?
+ cursize - relative_offset : max_bytes;
if (PREDICT_TRUE (copy_here != 0))
{
if (PREDICT_TRUE (copy_here != 0))
{