Partial migration of UDP to data-xfer interface. (Will not link at
[people/pcmattman/gpxe.git] / src / include / gpxe / udp.h
1 #ifndef _GPXE_UDP_H
2 #define _GPXE_UDP_H
3
4 /** @file
5  *
6  * UDP protocol
7  *
8  * This file defines the gPXE UDP API.
9  *
10  */
11
12 #include <stddef.h>
13 #include <gpxe/iobuf.h>
14 #include <gpxe/tcpip.h>
15 #include <gpxe/if_ether.h>
16
17 struct xfer_interface;
18 struct sockaddr;
19
20 /**
21  * UDP constants
22  */
23
24 #define UDP_MAX_HLEN    72
25 #define UDP_MAX_TXIOB   ETH_MAX_MTU
26 #define UDP_MIN_TXIOB   ETH_ZLEN
27
28 /**
29  * A UDP header
30  */
31 struct udp_header {
32         /** Source port */
33         uint16_t src;
34         /** Destination port */
35         uint16_t dest;
36         /** Length */
37         uint16_t len;
38         /** Checksum */
39         uint16_t chksum;
40 };
41
42 extern int udp_open_promisc ( struct xfer_interface *xfer );
43 extern int udp_open ( struct xfer_interface *xfer, struct sockaddr *peer,
44                       struct sockaddr *local );
45
46 #endif /* _GPXE_UDP_H */
47