Free (GPLv2) TCP/IP stack developed by TASS Belgium

Dependents:   lpc1768-picotcp-demo ZeroMQ_PicoTCP_Publisher_demo TCPSocket_HelloWorld_PicoTCP Pico_TCP_UDP_Test ... more

PicoTCP. Copyright (c) 2013 TASS Belgium NV.

Released under the GNU General Public License, version 2.

Different licensing models may exist, at the sole discretion of the Copyright holders.

Official homepage: http://www.picotcp.com

Bug tracker: https://github.com/tass-belgium/picotcp/issues

Development steps:

  • initial integration with mbed RTOS
  • generic mbed Ethernet driver
  • high performance NXP LPC1768 specific Ethernet driver
  • Multi-threading support for mbed RTOS
  • Berkeley sockets and integration with the New Socket API
  • Fork of the apps running on top of the New Socket API
  • Scheduling optimizations
  • Debugging/benchmarking/testing

Demo application (measuring TCP sender performance):

Import programlpc1768-picotcp-demo

A PicoTCP demo app testing the ethernet throughput on the lpc1768 mbed board.

Committer:
tass
Date:
Thu Jan 28 15:12:00 2016 +0100
Revision:
155:a70f34550c34
Parent:
149:5f4cb161cec3
Adding TCP flag for FIN.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
tass picotcp@tass.be 149:5f4cb161cec3 1 #ifndef PICO_SOCKET_TCP_H
tass picotcp@tass.be 149:5f4cb161cec3 2 #define PICO_SOCKET_TCP_H
tass picotcp@tass.be 149:5f4cb161cec3 3 #include "pico_socket.h"
tass picotcp@tass.be 149:5f4cb161cec3 4
tass picotcp@tass.be 149:5f4cb161cec3 5 #ifdef PICO_SUPPORT_TCP
tass picotcp@tass.be 149:5f4cb161cec3 6
tass picotcp@tass.be 149:5f4cb161cec3 7 /* Functions/macros: conditional! */
tass picotcp@tass.be 149:5f4cb161cec3 8
tass picotcp@tass.be 149:5f4cb161cec3 9 # define IS_NAGLE_ENABLED(s) (!(!(!(s->opt_flags & (1 << PICO_SOCKET_OPT_TCPNODELAY)))))
tass picotcp@tass.be 149:5f4cb161cec3 10 int pico_setsockopt_tcp(struct pico_socket *s, int option, void *value);
tass picotcp@tass.be 149:5f4cb161cec3 11 int pico_getsockopt_tcp(struct pico_socket *s, int option, void *value);
tass picotcp@tass.be 149:5f4cb161cec3 12 int pico_socket_tcp_deliver(struct pico_sockport *sp, struct pico_frame *f);
tass picotcp@tass.be 149:5f4cb161cec3 13 void pico_socket_tcp_delete(struct pico_socket *s);
tass picotcp@tass.be 149:5f4cb161cec3 14 void pico_socket_tcp_cleanup(struct pico_socket *sock);
tass picotcp@tass.be 149:5f4cb161cec3 15 struct pico_socket *pico_socket_tcp_open(uint16_t family);
tass picotcp@tass.be 149:5f4cb161cec3 16 int pico_socket_tcp_read(struct pico_socket *s, void *buf, uint32_t len);
tass picotcp@tass.be 149:5f4cb161cec3 17 void transport_flags_update(struct pico_frame *, struct pico_socket *);
tass picotcp@tass.be 149:5f4cb161cec3 18
tass picotcp@tass.be 149:5f4cb161cec3 19 #else
tass picotcp@tass.be 149:5f4cb161cec3 20 # define pico_getsockopt_tcp(...) (-1)
tass picotcp@tass.be 149:5f4cb161cec3 21 # define pico_setsockopt_tcp(...) (-1)
tass picotcp@tass.be 149:5f4cb161cec3 22 # define pico_socket_tcp_deliver(...) (-1)
tass picotcp@tass.be 149:5f4cb161cec3 23 # define IS_NAGLE_ENABLED(s) (0)
tass picotcp@tass.be 149:5f4cb161cec3 24 # define pico_socket_tcp_delete(...) do {} while(0)
tass picotcp@tass.be 149:5f4cb161cec3 25 # define pico_socket_tcp_cleanup(...) do {} while(0)
tass picotcp@tass.be 149:5f4cb161cec3 26 # define pico_socket_tcp_open(f) (NULL)
tass picotcp@tass.be 149:5f4cb161cec3 27 # define pico_socket_tcp_read(...) (-1)
tass picotcp@tass.be 149:5f4cb161cec3 28 # define transport_flags_update(...) do {} while(0)
tass picotcp@tass.be 149:5f4cb161cec3 29
tass picotcp@tass.be 149:5f4cb161cec3 30 #endif
tass picotcp@tass.be 149:5f4cb161cec3 31
tass picotcp@tass.be 149:5f4cb161cec3 32
tass picotcp@tass.be 149:5f4cb161cec3 33 #endif