• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * INET		An implementation of the TCP/IP protocol suite for the LINUX
3  *		operating system.  INET is implemented using the  BSD Socket
4  *		interface as the means of communication with the user level.
5  *
6  *		Definitions for the UDP protocol.
7  *
8  * Version:	@(#)udp.h	1.0.2	04/28/93
9  *
10  * Author:	Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
11  *
12  *		This program is free software; you can redistribute it and/or
13  *		modify it under the terms of the GNU General Public License
14  *		as published by the Free Software Foundation; either version
15  *		2 of the License, or (at your option) any later version.
16  */
17 #ifndef _LINUX_UDP_H
18 #define _LINUX_UDP_H
19 
20 #include <linux/types.h>
21 
22 struct udphdr {
23 	__u16	source;
24 	__u16	dest;
25 	__u16	len;
26 	__u16	check;
27 };
28 
29 /* UDP socket options */
30 #define UDP_CORK	1	/* Never send partially complete segments */
31 #define UDP_ENCAP	100	/* Set the socket to accept encapsulated packets */
32 
33 /* UDP encapsulation types */
34 #define UDP_ENCAP_ESPINUDP_NON_IKE	1 /* draft-ietf-ipsec-nat-t-ike-00/01 */
35 #define UDP_ENCAP_ESPINUDP	2 /* draft-ietf-ipsec-udp-encaps-06 */
36 
37 #ifdef __KERNEL__
38 #include <linux/types.h>
39 
40 #include <net/inet_sock.h>
41 
42 struct udp_sock {
43 	/* inet_sock has to be the first member */
44 	struct inet_sock inet;
45 	int		 pending;	/* Any pending frames ? */
46 	unsigned int	 corkflag;	/* Cork is required */
47   	__u16		 encap_type;	/* Is this an Encapsulation socket? */
48 	/*
49 	 * Following member retains the information to create a UDP header
50 	 * when the socket is uncorked.
51 	 */
52 	__u16		 len;		/* total length of pending frames */
53 };
54 
udp_sk(const struct sock * sk)55 static inline struct udp_sock *udp_sk(const struct sock *sk)
56 {
57 	return (struct udp_sock *)sk;
58 }
59 
60 #endif
61 
62 #endif	/* _LINUX_UDP_H */
63