Deprecated fork of old network stack source from github. Please use official library instead: https://mbed.org/users/mbed_official/code/EthernetInterface/

Files at this revision

API Documentation at this revision

Comitter:
AdamGreen
Date:
Sat Oct 26 08:51:36 2013 +0000
Parent:
0:3b00827bb0b7
Commit message:
Fix TCP checksum bug and stranded large TCP segments.

Changed in this revision

lwip-eth/arch/lpc_emac_config.h Show annotated file Show diff for this revision Revisions of this file
lwip/core/tcp_out.c Show annotated file Show diff for this revision Revisions of this file
diff -r 3b00827bb0b7 -r eadc868c2acf lwip-eth/arch/lpc_emac_config.h
--- a/lwip-eth/arch/lpc_emac_config.h	Sat Sep 07 21:38:42 2013 +0000
+++ b/lwip-eth/arch/lpc_emac_config.h	Sat Oct 26 08:51:36 2013 +0000
@@ -86,7 +86,7 @@
 /** \brief  Defines the number of descriptors used for TX. Must
  *          be a minimum value of 2.
  */
-#define LPC_NUM_BUFF_TXDESCS 3
+#define LPC_NUM_BUFF_TXDESCS (TCP_SND_QUEUELEN + 1)
 
 /** \brief  Set this define to 1 to enable bounce buffers for transmit pbufs
  *          that cannot be sent via the zero-copy method. Some chained pbufs
diff -r 3b00827bb0b7 -r eadc868c2acf lwip/core/tcp_out.c
--- a/lwip/core/tcp_out.c	Sat Sep 07 21:38:42 2013 +0000
+++ b/lwip/core/tcp_out.c	Sat Oct 26 08:51:36 2013 +0000
@@ -646,6 +646,9 @@
     last_unsent->len += concat_p->tot_len;
 #if TCP_CHECKSUM_ON_COPY
     if (concat_chksummed) {
+      if (concat_chksum_swapped) {
+        concat_chksum = SWAP_BYTES_IN_WORD(concat_chksum);
+      }
       tcp_seg_add_chksum(concat_chksum, concat_chksummed, &last_unsent->chksum,
         &last_unsent->chksum_swapped);
       last_unsent->flags |= TF_SEG_DATA_CHECKSUMMED;