Do not reject frames with a length exactly equal to the uIP bufer size.

This commit is contained in:
Oliver Schmidt 2013-01-30 23:39:01 +01:00
parent e88997b71c
commit 74dfff972f
2 changed files with 39 additions and 39 deletions

View file

@ -243,16 +243,16 @@ fixup29:lda rxtxreg
bne :+ bne :+
inc cnt+1 inc cnt+1
; Is cnt > bufsize ? ; Is bufsize < cnt ?
: sec : sec
lda cnt lda bufsize
sbc bufsize sbc cnt
lda cnt+1 lda bufsize+1
sbc bufsize+1 sbc cnt+1
bcc :+ bcs :+
; Yes, skip frame ; Yes, skip frame
; PACKETPP = $0102, PPDATA = PPDATA | $0040 ; PACKETPP = $0102, PPDATA = PPDATA | $0040
lda #$02 lda #$02
ldx #$01 ldx #$01
fixup30:sta packetpp fixup30:sta packetpp
@ -272,7 +272,7 @@ fixup33:sta ppdata
sta ptr sta ptr
stx ptr+1 stx ptr+1
ldx cnt+1 ldx cnt+1
ldy #$00 ldy #$00
read: read:
fixup34:lda rxtxreg fixup34:lda rxtxreg
sta (ptr),y sta (ptr),y
@ -330,7 +330,7 @@ fixup42:lda ppdata+1
bne :+ bne :+
; No space avaliable, skip a received frame ; No space avaliable, skip a received frame
; PACKETPP = $0102, PPDATA = PPDATA | $0040 ; PACKETPP = $0102, PPDATA = PPDATA | $0040
lda #$02 lda #$02
ldx #$01 ldx #$01
fixup43:sta packetpp fixup43:sta packetpp

View file

@ -262,13 +262,13 @@ fixup24:lda ethdata
sbc #$00 sbc #$00
sta len+1 sta len+1
; Is len > bufsize ? ; Is bufsize < len ?
sec sec
lda len lda bufsize
sbc bufsize sbc len
lda len+1 lda bufsize+1
sbc bufsize+1 sbc len+1
bcc :+ bcs :+
; Yes, skip packet ; Yes, skip packet
; Remove and release RX packet from the FIFO ; Remove and release RX packet from the FIFO
@ -285,8 +285,8 @@ fixup25:sta ethmmucr
ldx bufaddr+1 ldx bufaddr+1
sta ptr sta ptr
stx ptr+1 stx ptr+1
ldx len+1 ldx len+1
ldy #$00 ldy #$00
read: read:
fixup26:lda ethdata fixup26:lda ethdata
sta (ptr),y sta (ptr),y
@ -395,8 +395,8 @@ fixup39:sta ethdata
bcc :+ bcc :+
; Yes ; Yes
lda #%00100000 ; ODD lda #%00100000 ; ODD
bne :++ ; Always bne :++ ; Always
; No ; No
: lda #$00 : lda #$00