From 5abba967869120549bcc6a6300f4d9a1e8bb71ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Thu, 16 Feb 2017 17:26:11 +0100 Subject: [PATCH] Kernel version 0.9 : TCP & Sockets, bugfix session #2 --- A2OSX.BOOT.po | Bin 143360 -> 143360 bytes A2OSX.SRC.po | Bin 819200 -> 819200 bytes LIB/LIBTCPIP.S.ICMP.txt | 10 +- LIB/LIBTCPIP.S.IP.txt | 6 +- LIB/LIBTCPIP.S.SKT.txt | 46 ++++----- LIB/LIBTCPIP.S.TCP.txt | 210 +++++++++++++++++++++++----------------- LIB/LIBTCPIP.S.UDP.txt | 14 +-- LIB/LIBTCPIP.S.txt | 28 +----- 8 files changed, 158 insertions(+), 156 deletions(-) diff --git a/A2OSX.BOOT.po b/A2OSX.BOOT.po index 98ee9fc4770fef79bf60f6caea96d1184ea70817..6e1bbc2b93575e5b5fece126fec341396a84c1a7 100644 GIT binary patch delta 4206 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 delta 4365 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 R#Nh~YPkY5p{gaH-{s+{O-}?Xn delta 18087 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 WfbCk+v2;~WEBP1+For9PbN&x?DTng_ diff --git a/LIB/LIBTCPIP.S.ICMP.txt b/LIB/LIBTCPIP.S.ICMP.txt index 4f7ff0ea..60ba2908 100644 --- a/LIB/LIBTCPIP.S.ICMP.txt +++ b/LIB/LIBTCPIP.S.ICMP.txt @@ -72,17 +72,17 @@ ICMP.IN.EXIT lda hFrameIn >SYSCALL FreeMemA rts *-------------------------------------- -ICMP.IN.ECHOREP jsr IP.FillTmpSocketSrcDst +ICMP.IN.ECHOREP jsr IP.FillSKT.TemplateSrcDst lda #S.IP.PROTOCOL.ICMP - sta TmpSocket+S.SOCKET.RAW.PROTO + sta SKT.Template+S.SOCKET.RAW.PROTO ldy #S.ICMP.IDENTIFIER lda (ZPFrameInPtr),y - sta TmpSocket+S.SOCKET.DST.PORT+1 + sta SKT.Template+S.SOCKET.DST.PORT+1 iny lda (ZPFrameInPtr),y - sta TmpSocket+S.SOCKET.DST.PORT + sta SKT.Template+S.SOCKET.DST.PORT lda hSocketTable >SYSCALL GetMemPtrA @@ -98,7 +98,7 @@ ICMP.IN.ECHOREP jsr IP.FillTmpSocketSrcDst ldy #S.SOCKET.SRC.ADDR .4 lda (ZPPtrSKT),y - cmp TmpSocket,y + cmp SKT.Template,y bne .7 iny cpy #S.SOCKET.SRC.PORT diff --git a/LIB/LIBTCPIP.S.IP.txt b/LIB/LIBTCPIP.S.IP.txt index e21157fe..b942a68a 100644 --- a/LIB/LIBTCPIP.S.IP.txt +++ b/LIB/LIBTCPIP.S.IP.txt @@ -93,11 +93,11 @@ IP.ComputeChecksum eor #$FF rts *-------------------------------------- -IP.FillTmpSocketSrcDst +IP.FillSKT.TemplateSrcDst ldy #S.IP.SRC+3 ldx #3 .1 lda (ZPFrameInPtr),y - sta TmpSocket+S.SOCKET.DST.ADDR,x + sta SKT.Template+S.SOCKET.DST.ADDR,x dey dex bpl .1 @@ -105,7 +105,7 @@ IP.FillTmpSocketSrcDst ldy #S.IP.DST+3 ldx #3 .2 lda (ZPFrameInPtr),y - sta TmpSocket+S.SOCKET.SRC.ADDR,x + sta SKT.Template+S.SOCKET.SRC.ADDR,x dey dex bpl .2 diff --git a/LIB/LIBTCPIP.S.SKT.txt b/LIB/LIBTCPIP.S.SKT.txt index bf8eacb1..26f10126 100644 --- a/LIB/LIBTCPIP.S.SKT.txt +++ b/LIB/LIBTCPIP.S.SKT.txt @@ -327,7 +327,27 @@ SKT.Write.UDP ldx #S.IP.PROTOCOL.UDP jsr SKT.SetFrameOutDstIP - jsr SKT.SetFrameOutPorts + ldy #S.SOCKET.SRC.PORT + lda (ZPPtrSKT),y + tax + iny + lda (ZPPtrSKT),y + ldy #S.UDP.SRCPORT + sta (ZPFrameOutPtr),y + iny + txa + sta (ZPFrameOutPtr),y + + ldy #S.SOCKET.DST.PORT + lda (ZPPtrSKT),y + tax + iny + lda (ZPPtrSKT),y + ldy #S.UDP.DSTPORT + sta (ZPFrameOutPtr),y + iny + txa + sta (ZPFrameOutPtr),y jsr SKT.CopyDataInToOut @@ -960,30 +980,6 @@ SKT.SetFrameOutDstIP bne .2 rts *-------------------------------------- -SKT.SetFrameOutPorts - ldy #S.SOCKET.SRC.PORT - lda (ZPPtrSKT),y - tax - iny - lda (ZPPtrSKT),y - ldy #S.UDP.SRCPORT - sta (ZPFrameOutPtr),y - iny - txa - sta (ZPFrameOutPtr),y - - ldy #S.SOCKET.DST.PORT - lda (ZPPtrSKT),y - tax - iny - lda (ZPPtrSKT),y - ldy #S.UDP.DSTPORT - sta (ZPFrameOutPtr),y - iny - txa - sta (ZPFrameOutPtr),y - rts -*-------------------------------------- SKT.CopyDataInToOut lda ZPDataInPtr+1 pha diff --git a/LIB/LIBTCPIP.S.TCP.txt b/LIB/LIBTCPIP.S.TCP.txt index a1abe269..cc314303 100644 --- a/LIB/LIBTCPIP.S.TCP.txt +++ b/LIB/LIBTCPIP.S.TCP.txt @@ -5,21 +5,21 @@ INC 1 AUTO 6 .LIST OFF *-------------------------------------- -TCP.IN jsr IP.FillTmpSocketSrcDst +TCP.IN jsr IP.FillSKT.TemplateSrcDst ldy #S.TCP.SRCPORT lda (ZPFrameInPtr),y - sta TmpSocket+S.SOCKET.DST.PORT+1 + sta SKT.Template+S.SOCKET.DST.PORT+1 iny lda (ZPFrameInPtr),y - sta TmpSocket+S.SOCKET.DST.PORT + sta SKT.Template+S.SOCKET.DST.PORT ldy #S.TCP.DSTPORT lda (ZPFrameInPtr),y - sta TmpSocket+S.SOCKET.SRC.PORT+1 + sta SKT.Template+S.SOCKET.SRC.PORT+1 iny lda (ZPFrameInPtr),y - sta TmpSocket+S.SOCKET.SRC.PORT + sta SKT.Template+S.SOCKET.SRC.PORT lda hSocketTable >SYSCALL GetMemPtrA @@ -34,7 +34,7 @@ TCP.IN jsr IP.FillTmpSocketSrcDst ldy #S.SOCKET.SRC.ADDR -.4 lda TmpSocket,y +.4 lda SKT.Template,y cmp (ZPPtrSKT),y bne .7 Not for this socket... @@ -45,25 +45,31 @@ TCP.IN jsr IP.FillTmpSocketSrcDst ldy #S.SOCKET.SO lda (ZPPtrSKT),y and #S.SOCKET.SO.ACCEPTCONN Listening socket? - beq .5 + beq .5 no, go check if Dst Match - ldy #S.TCP.OPTIONS yes, only accept SYN packet + ldy #S.TCP.OPTIONS yes, only accept SYN packet lda (ZPFrameInPtr),y - cmp #S.TCP.OPTIONS.SYN - bne .7 not for this listening socket - jmp TCP.IN.LISTEN.NEW + and #S.TCP.OPTIONS.SYN + beq .7 maybe a regular frame for a regular socket + + jmp TCP.IN.JMP.LISTEN .5 ldy #S.SOCKET.DST.ADDR -.6 lda TmpSocket,y regular socket, check remote ADDR/PORT +.6 lda SKT.Template,y regular socket, check remote ADDR/PORT cmp (ZPPtrSKT),y bne .7 iny cpy #S.SOCKET.DST.PORT+2 bne .6 - jmp TCP.IN.REGULAR + stx hSocket + ldy #S.SOCKET.TCP.STATUS + lda (ZPPtrSKT),y + asl + tax + jmp (L.TCP.IN.JMP,x) .7 lda ZPPtrSKT clc @@ -76,28 +82,32 @@ TCP.IN jsr IP.FillTmpSocketSrcDst cpx #K.SKTTABLE.SIZE bne .3 - clc Discard frame +.9 clc Discard frame rts *-------------------------------------- -TCP.IN.LISTEN.NEW +TCP.IN.JMP.CLOSED + clc + rts +*-------------------------------------- +TCP.IN.JMP.LISTEN lda #S.SOCKET.SOCK.STREAM - sta TmpSocket + sta SKT.Template+S.SOCKET.SOCK - stz TmpSocket+S.SOCKET.SO + stz SKT.Template+S.SOCKET.SO ldy #S.TCP.SEQ.NUMBER+3 ldx #3 sec -.1 lda (ZPFrameInPtr),y +.1 lda (ZPFrameInPtr),y Save ACK +1 for new socket... adc #0 - sta TmpSocket+S.SOCKET.SQ.ACKNUM,x + sta TmpDWord,x dey dex bpl .1 - >PUSHW L.TmpSocket + >PUSHW L.SKT.Template jsr SKT.New bcs .9 @@ -120,24 +130,34 @@ TCP.IN.LISTEN.NEW lda #ERR.SKT.OOS .9 rts -.3 ldy #S.SOCKET.TCP.STATUS +.3 ldx #3 + ldy #S.SOCKET.SQ.ACKNUM+3 + +.4 lda TmpDWord,x Update new socket with ACK number + sta (ZPPtrSKT),y + dey + dex + bpl .4 + + ldy #S.SOCKET.TCP.STATUS lda #S.SOCKET.TCP.STATUS.SYNRCVD sta (ZPPtrSKT),y ldy #S.SOCKET.TCP.OPTIONS lda #S.TCP.OPTIONS.SYN+S.TCP.OPTIONS.ACK sta (ZPPtrSKT),y - jmp TCP.Out -*-------------------------------------- -TCP.IN.REGULAR stx hSocket + + jsr TCP.Out + bcs .9 + ldy #S.SOCKET.TCP.STATUS - lda (ZPPtrSKT),y - asl - tax - jmp (L.TCP.IN.JMP,x) + lda #S.SOCKET.TCP.STATUS.SYNSENT + sta (ZPPtrSKT),y + + + clc + rts *-------------------------------------- -TCP.IN.JMP.CLOSED -TCP.IN.JMP.LISTEN TCP.IN.JMP.SYNSENT clc rts @@ -186,8 +206,8 @@ TCP.IN.JMP.SYNRCVD TCP.IN.JMP.ESTBLSH ldy #S.TCP.OPTIONS lda (ZPFrameInPtr),y - cmp #S.TCP.OPTIONS.ACK - bne .1 + bit #S.TCP.OPTIONS.ACK + beq .1 jsr TCP.UpdateSktAckNum @@ -207,7 +227,35 @@ TCP.IN.JMP.TIMEWT clc rts *-------------------------------------- -TCP.OUT ldy #S.SOCKET.SQ.OUTUSED +TCP.OUT ldy #S.SOCKET.TCP.OPTIONS + lda (ZPPtrSKT),y + bit #S.TCP.OPTIONS.SYN + beq TCP.OUT.ESTBLSH + + >LDYAI 0 + jsr TCP.NewFrame + bcs .9 + + ldy #S.TCP.OPTIONS + lda (ZPFrameOutPtr),y + ora #S.TCP.OPTIONS.SYN+S.TCP.OPTIONS.ACK + sta (ZPFrameOutPtr),y + + jsr FRM.SendIP + bcs .9 + + ldy #S.TCP.OPTIONS + lda #0 + sta (ZPFrameOutPtr),y + + ldy #S.SOCKET.TCP.STATUS + lda #S.SOCKET.TCP.STATUS.SYNSENT + sta (ZPFrameOutPtr),y + + clc +.9 rts +*-------------------------------------- +TCP.OUT.ESTBLSH ldy #S.SOCKET.SQ.OUTUSED lda (ZPPtrSKT),y pha @@ -230,8 +278,7 @@ TCP.OUT ldy #S.SOCKET.SQ.OUTUSED .2 >STYA TmpOffset - ldx #S.IP.PROTOCOL.TCP - jsr FRM.NewIP + jsr TCP.NewFrame bcs .9 jsr SKT.GetDataFromSktOut @@ -296,6 +343,26 @@ TCP.OUT ldy #S.SOCKET.SQ.OUTUSED .8 clc .9 rts *-------------------------------------- +TCP.GetSktAckNum + ldy #S.TCP.ACK.NUMBER + ldx #4 + +.1 lda (ZPFrameInPtr),y + pha + iny + dex + bne .1 + + ldy #S.SOCKET.SQ.ACKNUM+3 + ldx #4 + +.2 pla + sta (ZPPtrSKT),y + dey + dex + bne .2 + rts +*-------------------------------------- TCP.UpdateSktAckNum ldy #S.SOCKET.SQ.ACKNUM+3 lda (ZPPtrSKT),y @@ -315,25 +382,6 @@ TCP.UpdateSktAckNum adc #0 sta (ZPPtrSKT),y rts -*-------------------------------------- - ldy #S.TCP.ACK.NUMBER - ldx #4 - -.1 lda (ZPFrameInPtr),y - pha - iny - dex - bne .1 - - ldy #S.SOCKET.SQ.ACKNUM+3 - ldx #4 - -.2 pla - sta (ZPPtrSKT),y - dey - dex - bne .2 - rts *-------------------------------------- TCP.SetDataInPtrAndLen ldy #S.TCP.DATAOFFSET @@ -368,53 +416,35 @@ TCP.SetDataInPtrAndLen sta ZPDataInLen+1 rts *-------------------------------------- -TCP.SendSYNACK lda #S.TCP.OPTIONS.SYN+S.TCP.OPTIONS.ACK +TCP.NewFrame ldx #S.IP.PROTOCOL.TCP + jsr FRM.NewIP + bcs .9 - sta TCP.MSG+S.TCP.OPTIONS - - ldy #S.SOCKET.SRC.ADDR+3 - ldx #3 -.1 lda (ZPPtrSKT),y - sta TCP.MSG+S.IP.SRC,x - dey - dex - bpl .1 - + jsr SKT.SetFrameOutDstIP + ldy #S.SOCKET.SRC.PORT lda (ZPPtrSKT),y - sta TCP.MSG+S.TCP.SRCPORT+1 + tax iny lda (ZPPtrSKT),y - sta TCP.MSG+S.TCP.SRCPORT + ldy #S.TCP.SRCPORT + sta (ZPFrameOutPtr),y + iny + txa + sta (ZPFrameOutPtr),y - ldy #S.SOCKET.DST.ADDR+3 - ldx #3 -.2 lda (ZPPtrSKT),y - sta TCP.MSG+S.IP.DST,x - dey - dex - bpl .2 - ldy #S.SOCKET.DST.PORT lda (ZPPtrSKT),y - sta TCP.MSG+S.TCP.DSTPORT+1 + tax iny lda (ZPPtrSKT),y - sta TCP.MSG+S.TCP.DSTPORT - - ldy #S.SOCKET.SQ.SEQNUM+7 - ldx #7 -.3 lda (ZPPtrSKT),y - sta TCP.MSG+S.TCP.SEQ.NUMBER,x - dey - dex - bpl .3 - - >PUSHW L.TCP.MSG -* jsr FRM.SendTCP - + ldy #S.TCP.DSTPORT + sta (ZPFrameOutPtr),y + iny + txa + sta (ZPFrameOutPtr),y clc - rts +.9 rts *-------------------------------------- TCP.ComputeChecksum lda #0 RESET.TCP.CHECKSUM diff --git a/LIB/LIBTCPIP.S.UDP.txt b/LIB/LIBTCPIP.S.UDP.txt index cf0367bb..82a4484e 100644 --- a/LIB/LIBTCPIP.S.UDP.txt +++ b/LIB/LIBTCPIP.S.UDP.txt @@ -5,21 +5,21 @@ INC 1 AUTO 6 .LIST OFF *-------------------------------------- -UDP.IN jsr IP.FillTmpSocketSrcDst +UDP.IN jsr IP.FillSKT.TemplateSrcDst ldy #S.UDP.SRCPORT lda (ZPFrameInPtr),y - sta TmpSocket+S.SOCKET.DST.PORT+1 + sta SKT.Template+S.SOCKET.DST.PORT+1 iny lda (ZPFrameInPtr),y - sta TmpSocket+S.SOCKET.DST.PORT + sta SKT.Template+S.SOCKET.DST.PORT ldy #S.UDP.DSTPORT lda (ZPFrameInPtr),y - sta TmpSocket+S.SOCKET.SRC.PORT+1 + sta SKT.Template+S.SOCKET.SRC.PORT+1 iny lda (ZPFrameInPtr),y - sta TmpSocket+S.SOCKET.SRC.PORT + sta SKT.Template+S.SOCKET.SRC.PORT lda hSocketTable >SYSCALL GetMemPtrA @@ -38,7 +38,7 @@ UDP.IN jsr IP.FillTmpSocketSrcDst ldy #S.SOCKET.SRC.PORT yes, do not check if IP match .4 lda (ZPPtrSKT),y -.41 cmp TmpSocket,y +.41 cmp SKT.Template,y bne .7 iny cpy #S.SOCKET.DST.ADDR @@ -50,7 +50,7 @@ UDP.IN jsr IP.FillTmpSocketSrcDst ldy #S.SOCKET.DST.PORT yes, do not check if IP match .5 lda (ZPPtrSKT),y -.51 cmp TmpSocket,y +.51 cmp SKT.Template,y bne .7 iny cpy #S.SOCKET.DST.PORT+2 diff --git a/LIB/LIBTCPIP.S.txt b/LIB/LIBTCPIP.S.txt index b0d3daed..419e20fa 100644 --- a/LIB/LIBTCPIP.S.txt +++ b/LIB/LIBTCPIP.S.txt @@ -94,8 +94,7 @@ L.DNS.SOCKET .DA DNS.SOCKET L.DNS.MSG .DA DNS.MSG L.ARP.CACHE .DA ARP.CACHE L.DNS.CACHE .DA DNS.CACHE -L.TmpSocket .DA TmpSocket -L.TCP.MSG .DA TCP.MSG +L.SKT.Template .DA SKT.Template L.TCP.IN.JMP .DA TCP.IN.JMP.CLOSED .DA TCP.IN.JMP.LISTEN .DA TCP.IN.JMP.SYNSENT @@ -258,29 +257,6 @@ ARP.REP.SPA .BS 4 ARP.REP.THA .BS 6 ARP.REP.TPA .BS 4 *-------------------------------------- -TCP.MSG .DA S.TCP-2+4 +4 bytes for MSS option - .BS 12 ETH:MAC+MAC - .DA /S.ETH.ETHERTYPE.IP - .DA #S.ETH.ETHERTYPE.IP - - .DA $0045 IP: - .BS 6 LEN+ID+Frag - .DA #K.IP.TTL - .DA #S.IP.PROTOCOL.TCP - .BS 2 Checksum - .BS 8 IP:DST,SRC - - .BS 4 TCP:Ports - .BS 8 SEQ,ACK - .DA #$60 6 DWORD - .BS 1 Options - .DA /K.TCP.WSIZE - .DA #K.TCP.WSIZE - .BS 4 CHK,URG - .HS 0204 MSS option - .DA /K.TCP.MSS - .DA #K.TCP.MSS -*-------------------------------------- DNS.SOCKET .DA #S.SOCKET.SOCK.DGRAM .BS 3 DNS.SOCKET.SA .BS 4 @@ -316,9 +292,9 @@ DNS.HostNameLen .BS 1 DNS.HostName .BS K.DNS.MAXLEN+1 DNS.TmpCache .BS S.DNSCACHE ARP.TmpCache .BS S.ARP +SKT.Template .BS S.SOCKET.TEMPLATE SKT.TmpCache .BS S.SOCKET TmpDWord .BS 4 -TmpSocket .BS S.SOCKET hFrameIn .BS 1 hFrameOut .BS 1 hSocket .BS 1