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:
152:a3d286bf94e5
Adding TCP flag for FIN.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
daniele 29:1a47b7151851 1 /*********************************************************************
TASS Belgium NV 131:4758606c9316 2 PicoTCP. Copyright (c) 2012 TASS Belgium NV. Some rights reserved.
TASS Belgium NV 131:4758606c9316 3 See LICENSE and COPYING for usage.
daniele 29:1a47b7151851 4
TASS Belgium NV 131:4758606c9316 5 .
TASS Belgium NV 131:4758606c9316 6
TASS Belgium NV 131:4758606c9316 7 Authors: Kristof Roelants
TASS Belgium NV 131:4758606c9316 8 *********************************************************************/
daniele 29:1a47b7151851 9
tass picotcp@tass.be 149:5f4cb161cec3 10 #ifndef INCLUDE_PICO_DNS_CLIENT
tass picotcp@tass.be 149:5f4cb161cec3 11 #define INCLUDE_PICO_DNS_CLIENT
daniele 29:1a47b7151851 12
daniele 29:1a47b7151851 13 #define PICO_DNS_NS_DEL 0
daniele 29:1a47b7151851 14 #define PICO_DNS_NS_ADD 1
tass 152:a3d286bf94e5 15 #include "pico_config.h"
tass 152:a3d286bf94e5 16
tass 152:a3d286bf94e5 17 /* Compression values */
tass 152:a3d286bf94e5 18 #define PICO_DNS_LABEL 0
tass 152:a3d286bf94e5 19 #define PICO_DNS_POINTER 3
tass 152:a3d286bf94e5 20
tass 152:a3d286bf94e5 21 /* Label len */
tass 152:a3d286bf94e5 22 #define PICO_DNS_LABEL_INITIAL 1u
tass 152:a3d286bf94e5 23 #define PICO_DNS_LABEL_ROOT 1
tass 152:a3d286bf94e5 24
tass 152:a3d286bf94e5 25 /* TTL values */
tass 152:a3d286bf94e5 26 #define PICO_DNS_MAX_TTL 604800 /* one week */
tass 152:a3d286bf94e5 27
tass 152:a3d286bf94e5 28 /* Len of an IPv4 address string */
tass 152:a3d286bf94e5 29 #define PICO_DNS_IPV4_ADDR_LEN 16
tass 152:a3d286bf94e5 30 #define PICO_DNS_IPV6_ADDR_LEN 54
tass 152:a3d286bf94e5 31
tass 152:a3d286bf94e5 32 /* Default nameservers + port */
tass 152:a3d286bf94e5 33 #define PICO_DNS_NS_DEFAULT "208.67.222.222"
tass 152:a3d286bf94e5 34 #define PICO_DNS_NS_PORT 53
daniele 29:1a47b7151851 35
tass picotcp@tass.be 134:cc4e6d2654d9 36 int pico_dns_client_init(void);
daniele 29:1a47b7151851 37 /* flag is PICO_DNS_NS_DEL or PICO_DNS_NS_ADD */
daniele 29:1a47b7151851 38 int pico_dns_client_nameserver(struct pico_ip4 *ns, uint8_t flag);
daniele 29:1a47b7151851 39 int pico_dns_client_getaddr(const char *url, void (*callback)(char *ip, void *arg), void *arg);
daniele 29:1a47b7151851 40 int pico_dns_client_getname(const char *ip, void (*callback)(char *url, void *arg), void *arg);
tass picotcp@tass.be 149:5f4cb161cec3 41 #ifdef PICO_SUPPORT_IPV6
tass picotcp@tass.be 149:5f4cb161cec3 42 int pico_dns_client_getaddr6(const char *url, void (*callback)(char *, void *), void *arg);
tass picotcp@tass.be 149:5f4cb161cec3 43 int pico_dns_client_getname6(const char *url, void (*callback)(char *, void *), void *arg);
tass picotcp@tass.be 149:5f4cb161cec3 44 #endif
daniele 29:1a47b7151851 45
daniele 29:1a47b7151851 46 #endif /* _INCLUDE_PICO_DNS_CLIENT */