62 lines
1.2 KiB
C
62 lines
1.2 KiB
C
/*
|
|
* 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
|
|
|
|
|
|
/********************************************************************/
|
|
|
|
void
|
|
udp_init (void);
|
|
|
|
void
|
|
udp_prime_port (uint16_t);
|
|
|
|
uint16_t
|
|
udp_obtain_free_port (void);
|
|
|
|
void
|
|
udp_bind_port ( uint16_t, void (*)(NIF *,NBUF *));
|
|
|
|
void
|
|
udp_free_port (uint16_t);
|
|
|
|
int
|
|
udp_send (NIF *, uint8_t *, int, int, NBUF *);
|
|
|
|
void
|
|
udp_handler (NIF *, NBUF *);
|
|
|
|
/********************************************************************/
|
|
|
|
#endif /* _UDP_H */
|