/* * File: udp.h * Purpose: User Datagram Protocol, UDP, data definitions * * Notes: */ #ifndef _UDP_H #define _UDP_H /********************************************************************/ typedef struct { uint16_t src_port; uint16_t dest_port; uint16_t length; uint16_t chksum; } udp_frame_hdr; #define UDP_SOURCE(a) (a->src_port) #define UDP_DEST(a) (a->dest_port) #define UDP_LENGTH(a) (a->length) #define UDP_CHKSUM(a) (a->chksum) #define DEFAULT_UDP_PORT (0x4321) #define UDP_PORT_TELNET (23) #define UDP_PORT_FTP (21) #define UDP_PORT_TFTP (69) /* Protocol Header information */ #define UDP_HDR_OFFSET (ETH_HDR_LEN + IP_HDR_SIZE) #define UDP_HDR_SIZE 8 /********************************************************************/ extern void udp_init(void); extern void udp_prime_port(uint16_t); extern uint16_t udp_obtain_free_port(void); extern void udp_bind_port( uint16_t, void (*)(NIF *,NBUF *)); extern void udp_free_port(uint16_t); extern int udp_send(NIF *, uint8_t *, int, int, NBUF *); extern void udp_handler(NIF *, NBUF *); /********************************************************************/ #endif /* _UDP_H */