From 4a47d307c77d5a3d641e13580ca9e5e81b5d12ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Mon, 18 Apr 2016 22:16:54 +0200 Subject: [PATCH] LIBTCPIP:implementing IP offloading --- LIB/LIBTCPIP.S.FRM.txt | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/LIB/LIBTCPIP.S.FRM.txt b/LIB/LIBTCPIP.S.FRM.txt index 419a8152..c07df8a5 100644 --- a/LIB/LIBTCPIP.S.FRM.txt +++ b/LIB/LIBTCPIP.S.FRM.txt @@ -82,6 +82,10 @@ NEW.IP.FRAME >PUSHWI K.ETH.FRAME.LEN bcs .9 >STYA ZPFrameBase1 + lda DevFlags + and #S.DEVINFO.NET.FLAGS.IPOFFLOAD + bne .9 + ldy #S.ETH.ETHERTYPE lda /S.ETH.ETHERTYPE.IP sta (ZPFrameBase1),y @@ -111,7 +115,6 @@ NEW.IP.FRAME >PUSHWI K.ETH.FRAME.LEN lda #K.IP.TTL sta (ZPFrameBase1),y >LDYA ZPFrameBase1 - clc .9 rts *-------------------------------------- SEND.ICMP.FRAME >PULLW ZPFrameBase1 @@ -163,8 +166,9 @@ SEND.UDP.FRAME.I SEND.IP.FRAME >PULLW ZPFrameBase1 jsr FRM.GetLen1 stz hFrame1 -SEND.IP.FRAME.I ldx #3 - ldy #S.IP.SRC+3 + +SEND.IP.FRAME.I ldx #3 Copy SRC.IP even if IP offload + ldy #S.IP.SRC+3 for proper UDP/TCP CRC calculation .1 lda IPCFG+S.IPCFG.IP,x sta (ZPFrameBase1),y @@ -172,6 +176,10 @@ SEND.IP.FRAME.I ldx #3 dex bpl .1 + lda DevFlags + and #S.DEVINFO.NET.FLAGS.IPOFFLOAD + bne .21 + ldy #S.IP.TOTAL.LENGTH+1 lda ZPFrameLen1 sec @@ -219,7 +227,7 @@ SEND.IP.FRAME.I ldx #3 eor #$FF sta (ZPFrameBase1),y - ldy #S.IP.PROTOCOL +.21 ldy #S.IP.PROTOCOL lda (ZPFrameBase1),y cmp #S.IP.PROTOCOL.TCP bne .3