+ //\r
+ // Check for Window Retraction in RFC7923 section 2.4.\r
+ // The lower n bits of the peer's actual receive window is wiped out if TCP\r
+ // window scale is enabled, it will look like the peer is shrinking the window.\r
+ // Check whether the SndNxt is out of the advertised receive window by more than\r
+ // 2^Rcv.Wind.Shift before moving the SndNxt to the left.\r
+ //\r
+ DEBUG (\r
+ (EFI_D_WARN,\r
+ "TcpInput: peer advise negative useable window for connected TCB %p\n",\r
+ Tcb)\r
+ );\r
+ Usable = TCP_SUB_SEQ (Tcb->SndNxt, Right);\r
+ if ((Usable >> Tcb->SndWndScale) > 0) {\r
+ DEBUG (\r
+ (EFI_D_WARN,\r
+ "TcpInput: SndNxt is out of window by more than window scale for TCB %p\n",\r
+ Tcb)\r
+ );\r
+ Tcb->SndNxt = Right;\r
+ }\r