From 7d61543721cfafb1b1ce0d4665b6bef28aa01457 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Mon, 27 Mar 2017 08:28:25 +0200 Subject: [PATCH] Kernel version 0.9 : TCP, bugfix in SEQ & ACK (#1) --- A2OSX.BOOT.po | Bin 143360 -> 143360 bytes A2OSX.DEV.po | Bin 143360 -> 143360 bytes A2OSX.SRC.po | Bin 819200 -> 819200 bytes INC/LIBTCPIP.I.txt | 8 ++++--- LIB/LIBTCPIP.S.SKT.txt | 39 +++++++++++++++++++++++++++------ LIB/LIBTCPIP.S.TCP.txt | 48 ++++++++++++++++++++--------------------- 6 files changed, 60 insertions(+), 35 deletions(-) diff --git a/A2OSX.BOOT.po b/A2OSX.BOOT.po index 3956df13b93160cc240a41fc9d3236887592b1bc..2f15e7278f490f80785ed8b7cf4a8930b4b5c856 100644 GIT binary patch delta 3952 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 delta 3776 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 ZzmqsHiPa<~2c2$v>N delta 1521 zcmZuxS!^3s6n)R&W}vAPAc^hq*s)_9sSS+A#*R!2NW*wStk&bnc#InO1M$NLpYQ{! zOC>-oqUcf~ArKWG`2q`lY=*hITF-@Z|R`P}fQN{QNVXTfB>;D4NQ(Vo{yd zO8JLGb#`}Rig=ftw5)9JrjrtJSI8DJTxHm!7B`t9T#an$TzWb2)iJM{Gvc%%=hYpm z_JBo@$XEjoEslDd4q7ynysX#LL8 zB^G-NC5;_om9`|-KA9oh+f388cOX#RO5cU+t6_Q=?x;@C_uz4i??bEV-TDF6=1`td zFbhgy$AdkIR}$gFeo)LQdFEGw1U>>!ji(>O=30QRf?A94pD;EW|46S(B1!z8Lb>LP z9L8Ip1_PIsDgG75ksxnhRAM7beB=|)iSkeqtR%UGQ3KBd9 zLv?|E376IVyT0lYl^IppUM%JBXJ_VgoLBhkE}F}#nwguo{W-9;R?pG)`0`wF-(FoDspn>ssSZ$2cKj2J5pnrn58K$Qp z(~QtFa0AA(a3^NY!IRB#`WLjCA=lpojx>4KKLk!UgYFLnUmH=JAOMBf;e%kTNN+*f1p_>+GjlGtW@r{YjfFyP} zi9`qBsn!JLV5Jqk>VkEmEHh%qEhQwz3|_d7nu>#NK-6v{Y=lTVKnLM!jGJJt9i<+) zs~w|5@HEC@IM|NUi{N-W9=h0RGn-WkC9OL(OKOS)F9B&;pd*mSI10Be2a99q#+aAY zIBr;6TzSsN?C|=#9qnb7?L9~kAK#bOiuNZgNdf^_UFLbA4=omCd;6vc9|TXwp9=NC zI3pXj9@=;xlHX~!O{57Qh8sJ6A<_rS+MHdOOs9!|0`_)%t|*1b{*eLvG!rgH7b5$Q PQW$pecdyK^(A)k6e8A7; diff --git a/A2OSX.SRC.po b/A2OSX.SRC.po index 86c4d9cf132877de6e418339743655471dba8c38..cf4b9eb9aac88d1d9f43f81469bc9f193acae401 100644 GIT binary patch delta 12580 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 GetMemPtrA @@ -707,7 +717,21 @@ SKT.AddDataToSktIn adc ZPDataInLen+1 sta SKT.TCBCache+S.TCB.INUSED+1 - jmp SKT.StoreTCB + clc + + lda SKT.TCBCache+S.TCB.LASTSEQ+3 + adc ZPDataInLen + sta SKT.TCBCache+S.TCB.LASTSEQ+3 + + lda SKT.TCBCache+S.TCB.LASTSEQ+2 + adc ZPDataInLen+1 + sta SKT.TCBCache+S.TCB.LASTSEQ+2 + bcc .80 + inc SKT.TCBCache+S.TCB.LASTSEQ+1 + bne .80 + inc SKT.TCBCache+S.TCB.NEXTSEQ + +.80 jmp SKT.StoreTCB *-------------------------------------- * From SKT.Read * In: @@ -872,8 +896,6 @@ SKT.GetDataFromSktIn *-------------------------------------- SKT.AddDataToSktOut jsr SKT.GetTCB - -* >DEBUG ldx SKT.TCBCache+S.TCB.OUTFREE cpx ZPDataInLen @@ -1031,16 +1053,16 @@ SKT.GetDataFromSktOut *-------------------------------------- SKT.AckDataToSktOut ldy #S.TCP.ACK.NUMBER+3 Get new ACK number from FrameIn... - ldx #3 Substract old SEQ from socket + ldx #3 Substract old ACK from socket sec .1 lda (ZPFrameInPtr),y pha - sbc SKT.TCBCache+S.TCB.SEQNUM,x + sbc SKT.TCBCache+S.TCB.ACKNUM,x sta TmpDWord,x - pla ....and Set SEQ = new ACK - sta SKT.TCBCache+S.TCB.SEQNUM,x + pla ....and Set ACK = new ACK + sta SKT.TCBCache+S.TCB.ACKNUM,x dey dex bpl .1 @@ -1098,9 +1120,12 @@ SKT.NewTCB >PUSHWI S.TCB sta SKT.TCBCache+S.TCB.OUTFREE+1 ldx #3 + sec .2 lda A2osX.TIMER16,x sta SKT.TCBCache+S.TCB.SEQNUM,x + adc #0 + sta SKT.TCBCache+S.TCB.NEXTSEQ,x dex bpl .2 diff --git a/LIB/LIBTCPIP.S.TCP.txt b/LIB/LIBTCPIP.S.TCP.txt index f9c8e3b0..09a91556 100644 --- a/LIB/LIBTCPIP.S.TCP.txt +++ b/LIB/LIBTCPIP.S.TCP.txt @@ -100,7 +100,7 @@ TCP.IN.JMP.LISTEN >PUSHW L.SKT.Template - jsr SKT.New.Listen + jsr SKT.New.Listen Assign SEQNUM bcs .99 sty .1+1 @@ -116,7 +116,7 @@ TCP.IN.JMP.LISTEN .2 lda #$ff sta ZPPtrSKT+1 - ldy #S.TCP.SEQ.NUMBER+3 + ldy #S.TCP.SEQ.NUMBER+3 Get Remote SEQ ldx #3 sec @@ -124,6 +124,7 @@ TCP.IN.JMP.LISTEN .3 lda (ZPFrameInPtr),y Set ACK=SEQ+1 for new socket... adc #0 sta SKT.TCBCache+S.TCB.ACKNUM,x + sta SKT.TCBCache+S.TCB.LASTSEQ,x dey dex bpl .3 @@ -133,7 +134,7 @@ TCP.IN.JMP.LISTEN jsr ARP.AddFromFrameInPtr lda #S.TCP.OPTIONS.SYN+S.TCP.OPTIONS.ACK - jsr TCP.OUT.SendOpt + jsr TCP.OUT.SendOpt Send SYN.ACK bcs .9 ldy #S.SOCKET.TCP.STATUS @@ -157,9 +158,9 @@ TCP.IN.JMP.SYNSENT jsr SKT.GetTCB ldx #3 - ldy #S.TCP.SEQ.NUMBER+3 + ldy #S.TCP.ACK.NUMBER+3 - sec + sec Check if ACK=my SEQ+1 .1 lda SKT.TCBCache+S.TCB.ACKNUM,x adc #0 @@ -192,11 +193,8 @@ TCP.IN.JMP.SYNRCVD ldx #3 ldy #S.TCP.ACK.NUMBER+3 - sec - -.1 lda SKT.TCBCache+S.TCB.SEQNUM,x - adc #0 - sta SKT.TCBCache+S.TCB.SEQNUM,x +.1 lda SKT.TCBCache+S.TCB.NEXTSEQ,x Check if ACK=my SEQ+1 + sta SKT.TCBCache+S.TCB.SEQNUM,x eor (ZPFrameInPtr),y bne .8 dey @@ -218,10 +216,11 @@ TCP.IN.JMP.ESTBLSH ldy #S.TCP.OPTIONS lda (ZPFrameInPtr),y - bit #S.TCP.OPTIONS.ACK Remote side ACKed data ? + and #S.TCP.OPTIONS.ACK Remote side ACKed data ? beq .1 - jsr SKT.AckDataToSktOut (will call SKT.GetTCB) Yes, Discard sent data + jsr SKT.AckDataToSktOut Yes, Discard sent data + jsr SKT.StoreTCB and update SKT .1 jsr TCP.IN.SetDataInPtrAndLen @@ -233,19 +232,22 @@ TCP.IN.JMP.ESTBLSH .2 ldy #S.TCP.OPTIONS lda (ZPFrameInPtr),y - bit #S.TCP.OPTIONS.FIN + and #S.TCP.OPTIONS.FIN beq .8 ldy #S.TCP.OPTIONS - lda (ZPFrameInPtr),y + lda (ZPPtrSKT),y ora #S.TCP.OPTIONS.ACK ACK the FIN.... - sta (ZPFrameInPtr),y + sta (ZPPtrSKT),y + + jsr TCP.OUT.I SKT.GetTCB called, try to ACK the FIN + bcs .9 ldy #S.SOCKET.TCP.STATUS lda #S.SOCKET.TCP.STATUS.CLWAIT sta (ZPPtrSKT),y -.8 jmp TCP.OUT.I SKT.GetTCB called try to ACK +.8 clc .9 rts *-------------------------------------- TCP.IN.JMP.CLWAIT @@ -388,7 +390,7 @@ TCP.OUT.I lda SKT.TCBCache+S.TCB.OUTUSED+1 bne .1 tax - bne .1 Y,A=0 : no data to send + beq .1 Y,A=0 : no data to send ldy #S.SOCKET.TCP.OPTIONS lda (ZPPtrSKT),y @@ -411,11 +413,8 @@ TCP.OUT.I lda SKT.TCBCache+S.TCB.OUTUSED+1 ldy #S.SOCKET.TCP.OPTIONS lda (ZPPtrSKT),y - ora #S.TCP.OPTIONS.ACK - ldy #S.TCP.OPTIONS - sta (ZPFrameOutPtr),y + jsr TCP.OUT.Send -.7 jsr TCP.OUT.Send bcs TCP.OUT.9 jmp SKT.StoreTCB TCP.OUT.9 rts @@ -425,12 +424,11 @@ TCP.OUT.SendOpt sta .1+1 jsr TCP.NewFrame bcs TCP.OUT.9 - ldy #S.TCP.OPTIONS - .1 lda #$ff - sta (ZPFrameOutPtr),y -TCP.OUT.Send ldx #7 +TCP.OUT.Send ldy #S.TCP.OPTIONS + sta (ZPFrameOutPtr),y + ldx #7 ldy #S.TCP.SEQ.NUMBER+7 .2 lda SKT.TCBCache+S.TCB.SEQNUM,x