1 /*
2 * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
3 * Use is subject to license terms.
4 * Copyright 2015 Joyent, Inc.
5 */
6
7 /*
8 * Copyright (c) 1982, 1986 Regents of the University of California.
9 * All rights reserved. The Berkeley software License Agreement
10 * specifies the terms and conditions for redistribution.
11 */
12
13 /*
14 * Udp protocol header.
15 * Per RFC 768, September, 1981.
16 */
17
18 #ifndef _NETINET_UDP_H
19 #define _NETINET_UDP_H
20
21 #ifdef __cplusplus
22 extern "C" {
23 #endif
24
25 struct udphdr {
26 in_port_t uh_sport; /* source port */
27 in_port_t uh_dport; /* destination port */
28 int16_t uh_ulen; /* udp length */
29 uint16_t uh_sum; /* udp checksum */
30 };
31
32 /* Option definitions. */
33 #define UDP_ANONPRIVBIND 0x0100 /* for internal use only */
34 #define UDP_EXCLBIND 0x0101 /* for internal use only */
35 #define UDP_RCVHDR 0x0102 /* for internal use only */
36 #define UDP_NAT_T_ENDPOINT 0x0103 /* for internal use only */
37 #define UDP_SRCPORT_HASH 0x0104 /* for internal use only */
38 #define UDP_SND_TO_CONNECTED 0x0105 /* for internal use only */
39
40 /*
41 * Hash definitions for UDP_SRCPORT_HASH that effectively tell UDP how to go
42 * handle UDP_SRCPORT_HASH.
43 */
44 #define UDP_HASH_DISABLE 0x0000 /* for internal use only */
45 #define UDP_HASH_VXLAN 0x0001 /* for internal use only */
46
47 /*
48 * Following option in UDP_ namespace required to be exposed through
49 * <xti.h> (It also requires exposing options not implemented). The options
50 * with potential for conflicts use #ifndef guards.
51 *
52 */
53 #ifndef UDP_CHECKSUM
54 #define UDP_CHECKSUM 0x0600
55 #endif
56
57 #ifdef __cplusplus
58 }
59 #endif
60
61 #endif /* _NETINET_UDP_H */