9
9
import java .util .Queue ;
10
10
import java .util .concurrent .ConcurrentLinkedQueue ;
11
11
12
+ import org .apache .logging .log4j .LogManager ;
13
+ import org .apache .logging .log4j .Logger ;
14
+
12
15
public class ReceiveWindow {
16
+
17
+ private static Logger LOG = LogManager .getLogger (ReceiveWindow .class .getName ());
13
18
14
19
public enum PacketState {
15
20
PKT_ERROR_STATE ,
@@ -257,7 +262,7 @@ public ReceiveWindow (
257
262
this .tsi = tsi ;
258
263
this .max_tpdu = tpdu_size ;
259
264
260
- System . out . println ("alloc_sqns:" + alloc_sqns );
265
+ LOG . debug ("alloc_sqns: {}" , alloc_sqns );
261
266
262
267
/* empty state:
263
268
*
@@ -294,44 +299,45 @@ public Returns add (SocketBuffer skb, long now, long nak_rb_expiry)
294
299
{
295
300
checkNotNull (skb );
296
301
Returns status ;
297
- System .out .println ("add ( " +
298
- "\" skb\" : " + skb + "" +
299
- " )" );
302
+ LOG .debug ("add (\" skb\" : {})" , skb );
300
303
301
304
skb .setControlBuffer (new State ());
302
305
skb .setSequenceNumber (skb .getAsOriginalData ().getDataSequenceNumber ());
303
306
304
307
if (skb .getLength () != skb .getHeader ().getTsduLength ()) {
305
- System . out . println ("SKB length does not match TSDU length." );
308
+ LOG . debug ("SKB length does not match TSDU length." );
306
309
return Returns .RXW_MALFORMED ;
307
310
}
308
311
309
312
/* protocol sanity check: valid trail pointer wrt. sequence */
310
313
if (skb .getSequenceNumber ().minus (skb .getAsOriginalData ().getDataTrail ()).longValue () >= ((UINT32_MAX /2 )-1 )) {
311
- System .out .println ("SKB sequence " + skb .getSequenceNumber () + " outside window horizon by " + skb .getSequenceNumber ().minus (skb .getAsOriginalData ().getDataTrail ()) + " wrt trail " + skb .getAsOriginalData ().getDataTrail ());
314
+ LOG .debug ("SKB sequence {} outside window horizon by {} wrt trail {}" ,
315
+ skb .getSequenceNumber (),
316
+ skb .getSequenceNumber ().minus (skb .getAsOriginalData ().getDataTrail ()),
317
+ skb .getAsOriginalData ().getDataTrail ());
312
318
return Returns .RXW_BOUNDS ;
313
319
}
314
320
315
321
/* drop parity packets */
316
322
if (skb .getHeader ().isParity ()) {
317
- System . out . println ("Unsupported parity packet" );
323
+ LOG . debug ("Unsupported parity packet" );
318
324
return Returns .RXW_MALFORMED ;
319
325
}
320
326
321
327
if (skb .isFragment ()) {
322
328
if (skb .getFragmentOption ().getApduLength () == skb .getLength ()) {
323
- System . out . println ("Fragmented message contains only one fragment." );
329
+ LOG . debug ("Fragmented message contains only one fragment." );
324
330
}
325
331
if (skb .getFragmentOption ().getApduLength () < skb .getLength ()) {
326
- System . out . println ("SKB length greated than APDU length." );
332
+ LOG . debug ("SKB length greated than APDU length." );
327
333
return Returns .RXW_MALFORMED ;
328
334
}
329
335
if (skb .getFragmentOption ().getFirstSequenceNumber ().gt (skb .getSequenceNumber ())) {
330
- System . out . println ("Fragment sequence number less than first message fragment." );
336
+ LOG . debug ("Fragment sequence number less than first message fragment." );
331
337
return Returns .RXW_MALFORMED ;
332
338
}
333
339
if (skb .getFragmentOption ().getApduLength () > MAX_APDU ) {
334
- System . out . println ("APDU greater than supported length." );
340
+ LOG . debug ("APDU greater than supported length." );
335
341
return Returns .RXW_MALFORMED ;
336
342
}
337
343
}
@@ -344,15 +350,16 @@ public Returns add (SocketBuffer skb, long now, long nak_rb_expiry)
344
350
345
351
if (skb .getSequenceNumber ().lt (this .commitLead )) {
346
352
if (skb .getSequenceNumber ().gte (this .trail )) {
347
- System . out . println ("Duplicate packet from window" );
353
+ LOG . debug ("Duplicate packet from window" );
348
354
return Returns .RXW_DUPLICATE ;
349
355
} else {
350
- System . out . println ("Duplicate packet before window" );
356
+ LOG . debug ("Duplicate packet before window" );
351
357
return Returns .RXW_BOUNDS ;
352
358
}
353
359
}
354
360
355
- System .out .println ("SKB:" + skb .getSequenceNumber () + " trail:" + this .trail + " commit:" + this .commitLead + " lead:" + this .lead + " (RXW_TRAIL:" + this .rxw_trail + ")" );
361
+ LOG .debug ("SKB:{} trail:{} commit:{} lead:{} (RXW_TRAIL:{})" ,
362
+ skb .getSequenceNumber (), this .trail , this .commitLead , this .lead , this .rxw_trail );
356
363
if (skb .getSequenceNumber ().lte (this .lead )) {
357
364
this .hasEvent = true ;
358
365
return insert (skb );
@@ -376,7 +383,7 @@ public Returns add (SocketBuffer skb, long now, long nak_rb_expiry)
376
383
private void define (SequenceNumber lead )
377
384
{
378
385
checkNotNull (lead );
379
- System . out . println ("defining window" );
386
+ LOG . debug ("defining window" );
380
387
this .lead = lead ;
381
388
this .trail = this .lead .plus (1 );
382
389
this .rxw_trail_init = this .trail ;
@@ -389,7 +396,7 @@ public int update (SequenceNumber txw_lead, SequenceNumber txw_trail, long now,
389
396
{
390
397
checkNotNull (txw_lead );
391
398
checkNotNull (txw_trail );
392
- System . out . println ("update" );
399
+ LOG . debug ("update" );
393
400
if (!this .isDefined ) {
394
401
define (txw_trail );
395
402
return 0 ;
@@ -402,7 +409,7 @@ public int update (SequenceNumber txw_lead, SequenceNumber txw_trail, long now,
402
409
private void updateTrail (SequenceNumber txw_trail )
403
410
{
404
411
checkNotNull (txw_trail );
405
- System . out . println ("updating trail" );
412
+ LOG . debug ("updating trail" );
406
413
/* advertised trail is less than the current value */
407
414
if (txw_trail .lte (this .rxw_trail ))
408
415
return ;
@@ -439,7 +446,7 @@ private void updateTrail (SequenceNumber txw_trail)
439
446
this .rxw_trail .gt (sequence ) && this .lead .gte (sequence );
440
447
sequence = sequence .plus (1 ))
441
448
{
442
- System . out . println ("Purge #" + sequence );
449
+ LOG . debug ("Purge #{}" , sequence );
443
450
SocketBuffer skb = peek (sequence );
444
451
State state = (State )skb .getControlBuffer ();
445
452
switch (state .pktState ) {
@@ -483,7 +490,7 @@ private void addPlaceholder (long now, long nak_rb_expiry)
483
490
this .pdata [index ] = skb ;
484
491
485
492
setPacketState (skb , PacketState .PKT_BACK_OFF_STATE );
486
- System . out . println ("Placeholder #" + this .lead + " @" + index );
493
+ LOG . debug ("Placeholder #{} pdata[{}]" , this .lead , index );
487
494
}
488
495
489
496
/* Returns:
@@ -500,7 +507,7 @@ private Returns addPlaceholderRange (SequenceNumber sequence, long now, long nak
500
507
return Returns .RXW_BOUNDS ;
501
508
}
502
509
if (isFull ()) {
503
- System . out . println ("Receive window full on placeholder sequence." );
510
+ LOG . debug ("Receive window full on placeholder sequence." );
504
511
removeTrail ();
505
512
}
506
513
/* if packet is non-contiguous to current leading edge add place holders
@@ -509,7 +516,7 @@ private Returns addPlaceholderRange (SequenceNumber sequence, long now, long nak
509
516
while (!this .lead .plus (1 ).equals (sequence )) {
510
517
addPlaceholder (now , nak_rb_expiry );
511
518
if (isFull ()) {
512
- System . out . println ("Receive window full on placeholder sequence." );
519
+ LOG . debug ("Receive window full on placeholder sequence." );
513
520
removeTrail ();
514
521
}
515
522
}
@@ -544,7 +551,7 @@ private int updateLead (SequenceNumber txw_lead, long now, long nak_rb_expiry)
544
551
{
545
552
/* slow consumer or fast producer */
546
553
if (isFull ()) {
547
- System . out . println ("Receive window full on window lead advancement." );
554
+ LOG . debug ("Receive window full on window lead advancement." );
548
555
removeTrail ();
549
556
}
550
557
addPlaceholder (now , nak_rb_expiry );
@@ -616,12 +623,12 @@ private boolean isInvalidPayloadOption (SocketBuffer skb)
616
623
private Returns insert (SocketBuffer skb )
617
624
{
618
625
checkNotNull (skb );
619
- System . out . println ("insert" );
626
+ LOG . debug ("insert" );
620
627
SocketBuffer placeholder = null ;
621
628
State state = null ;
622
629
623
630
if (isInvalidVarPktLen (skb ) || isInvalidPayloadOption (skb )) {
624
- System . out . println ("Invalid packet" );
631
+ LOG . debug ("Invalid packet" );
625
632
return Returns .RXW_MALFORMED ;
626
633
}
627
634
@@ -680,18 +687,18 @@ private void shuffleParity (SocketBuffer skb)
680
687
private Returns append (SocketBuffer skb , long now )
681
688
{
682
689
checkNotNull (skb );
683
- System . out . println ("append" );
690
+ LOG . debug ("append" );
684
691
if (isInvalidVarPktLen (skb ) || isInvalidPayloadOption (skb )) {
685
- System . out . println ("Invalid packet" );
692
+ LOG . debug ("Invalid packet" );
686
693
return Returns .RXW_MALFORMED ;
687
694
}
688
695
689
696
if (isFull ()) {
690
697
if (isCommitEmpty ()) {
691
- System . out . println ("Receive window full on new data, pulling trail." );
698
+ LOG . debug ("Receive window full on new data, pulling trail." );
692
699
removeTrail ();
693
700
} else {
694
- System . out . println ("Receive window full with commit data." );
701
+ LOG . debug ("Receive window full with commit data." );
695
702
return Returns .RXW_BOUNDS ;
696
703
}
697
704
}
@@ -711,7 +718,7 @@ private Returns append (SocketBuffer skb, long now)
711
718
this .pdata [index ] = skb ;
712
719
713
720
setPacketState (skb , PacketState .PKT_LOST_DATA_STATE );
714
- System . out . println ("APDU already declared lost, ignoring TPDU." );
721
+ LOG . debug ("APDU already declared lost, ignoring TPDU." );
715
722
return Returns .RXW_BOUNDS ;
716
723
}
717
724
@@ -760,11 +767,11 @@ public boolean hasCommitData()
760
767
*/
761
768
public int read (List <SocketBuffer > skbs )
762
769
{
763
- System . out . println ("read" );
770
+ LOG . debug ("read" );
764
771
int bytes_read = -1 ;
765
772
if (isIncomingEmpty ())
766
773
return bytes_read ;
767
- System . out . println ("read #" + this .commitLead );
774
+ LOG . debug ("read #{}" , this .commitLead );
768
775
SocketBuffer skb = peek (this .commitLead );
769
776
State state = (State )skb .getControlBuffer ();
770
777
switch (state .pktState ) {
@@ -774,10 +781,10 @@ public int read (List<SocketBuffer> skbs)
774
781
case PKT_LOST_DATA_STATE :
775
782
/* do not purge in situ sequence */
776
783
if (isCommitEmpty ()) {
777
- System . out . println ("Removing lost trail from window" );
784
+ LOG . debug ("Removing lost trail from window" );
778
785
removeTrail ();
779
786
} else {
780
- System . out . println ("Locking trail at commit window" );
787
+ LOG . debug ("Locking trail at commit window" );
781
788
}
782
789
/* fall through */
783
790
case PKT_BACK_OFF_STATE :
@@ -804,9 +811,9 @@ public int read (List<SocketBuffer> skbs)
804
811
*/
805
812
private int removeTrail ()
806
813
{
807
- System . out . println ("removeTrail" );
814
+ LOG . debug ("removeTrail" );
808
815
SocketBuffer skb = peek (this .trail );
809
- System . out . println ("trail " + this . trail + " = " + skb );
816
+ LOG . debug ("trail {} = {}" , this . trail , skb );
810
817
clearPacketState (skb );
811
818
this .size -= skb .getLength ();
812
819
/* remove reference to skb */
@@ -817,7 +824,7 @@ private int removeTrail()
817
824
/* data-loss */
818
825
this .commitLead = this .commitLead .plus (1 );
819
826
this .cumulativeLosses ++;
820
- System . out . println ("Data loss due to pulled trailing edge, fragment count " + this .fragmentCount );
827
+ LOG . debug ("Data loss due to pulled trailing edge, fragment count {}" , this .fragmentCount );
821
828
return 1 ;
822
829
}
823
830
return 0 ;
@@ -833,7 +840,7 @@ private int removeTrail()
833
840
*/
834
841
private int incomingRead (List <SocketBuffer > skbs )
835
842
{
836
- System . out . println ("incomingRead" );
843
+ LOG . debug ("incomingRead" );
837
844
int bytes_read = 0 ;
838
845
int data_read = 0 ;
839
846
@@ -951,7 +958,7 @@ else if (apdu_size < contiguous_size) {
951
958
*/
952
959
private int incomingReadApdu (List <SocketBuffer > skbs )
953
960
{
954
- System . out . println ("incomingReadApdu" );
961
+ LOG . debug ("incomingReadApdu" );
955
962
int contiguous_length = 0 ;
956
963
int count = 0 ;
957
964
SocketBuffer skb = peek (this .commitLead );
@@ -1081,9 +1088,7 @@ private void clearPacketState (SocketBuffer skb)
1081
1088
public void markLost (SequenceNumber sequence )
1082
1089
{
1083
1090
checkNotNull (sequence );
1084
- System .out .println ("markLost ( " +
1085
- "\" sequence\" : " + sequence + "" +
1086
- " )" );
1091
+ LOG .debug ("markLost (\" sequence\" : {})" , sequence );
1087
1092
SocketBuffer skb = peek (sequence );
1088
1093
setPacketState (skb , PacketState .PKT_LOST_DATA_STATE );
1089
1094
}
0 commit comments