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

Fork of PicoTCP by Daniele Lacamera

Committer:
daniele
Date:
Sat Aug 03 08:50:27 2013 +0000
Revision:
51:18637a3d071f
Parent:
3:b4047e8a0123
Branch for CDC-ECM: Work in progress

Who changed what in which revision?

UserRevisionLine numberNew contents of line
daniele 3:b4047e8a0123 1 /*********************************************************************
daniele 3:b4047e8a0123 2 PicoTCP. Copyright (c) 2012 TASS Belgium NV. Some rights reserved.
daniele 3:b4047e8a0123 3 See LICENSE and COPYING for usage.
daniele 3:b4047e8a0123 4
daniele 3:b4047e8a0123 5 .
daniele 3:b4047e8a0123 6
daniele 3:b4047e8a0123 7 *********************************************************************/
daniele 3:b4047e8a0123 8 #ifndef _INCLUDE_PICO_UDP
daniele 3:b4047e8a0123 9 #define _INCLUDE_PICO_UDP
daniele 3:b4047e8a0123 10 #include "pico_addressing.h"
daniele 3:b4047e8a0123 11 #include "pico_protocol.h"
daniele 3:b4047e8a0123 12
daniele 3:b4047e8a0123 13 extern struct pico_protocol pico_proto_udp;
daniele 3:b4047e8a0123 14
daniele 3:b4047e8a0123 15 struct __attribute__((packed)) pico_udp_hdr {
daniele 3:b4047e8a0123 16 struct pico_trans trans;
daniele 3:b4047e8a0123 17 uint16_t len;
daniele 3:b4047e8a0123 18 uint16_t crc;
daniele 3:b4047e8a0123 19 };
daniele 3:b4047e8a0123 20 #define PICO_UDPHDR_SIZE 8
daniele 3:b4047e8a0123 21
daniele 3:b4047e8a0123 22 struct pico_socket *pico_udp_open(void);
daniele 3:b4047e8a0123 23 int pico_udp_recv(struct pico_socket *s, void *buf, int len, void *src, uint16_t *port);
daniele 3:b4047e8a0123 24 uint16_t pico_udp_checksum_ipv4(struct pico_frame *f);
daniele 3:b4047e8a0123 25
daniele 3:b4047e8a0123 26 #ifdef PICO_SUPPORT_MCAST
daniele 3:b4047e8a0123 27 int pico_udp_set_mc_ttl(struct pico_socket *s, uint8_t ttl);
daniele 3:b4047e8a0123 28 int pico_udp_get_mc_ttl(struct pico_socket *s, uint8_t *ttl);
daniele 3:b4047e8a0123 29 #else
daniele 3:b4047e8a0123 30 static inline int pico_udp_set_mc_ttl(struct pico_socket *s, uint8_t ttl)
daniele 3:b4047e8a0123 31 {
daniele 3:b4047e8a0123 32 pico_err = PICO_ERR_EPROTONOSUPPORT;
daniele 3:b4047e8a0123 33 return -1;
daniele 3:b4047e8a0123 34 }
daniele 3:b4047e8a0123 35 static inline int pico_udp_get_mc_ttl(struct pico_socket *s, uint8_t *ttl)
daniele 3:b4047e8a0123 36 {
daniele 3:b4047e8a0123 37 pico_err = PICO_ERR_EPROTONOSUPPORT;
daniele 3:b4047e8a0123 38 return -1;
daniele 3:b4047e8a0123 39 }
daniele 3:b4047e8a0123 40 #endif /* PICO_SUPPORT_MCAST */
daniele 3:b4047e8a0123 41
daniele 3:b4047e8a0123 42 #endif