Rev 422 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
422 | giacomo | 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 2 /* draft-ietf-ipsec-udp-encaps-06 */ |
||
35 | |||
36 | #ifdef __KERNEL__ |
||
37 | |||
38 | #include <linux/config.h> |
||
39 | #include <net/sock.h> |
||
40 | #include <linux/ip.h> |
||
41 | |||
42 | struct udp_opt { |
||
43 | int pending; /* Any pending frames ? */ |
||
44 | unsigned int corkflag; /* Cork is required */ |
||
45 | __u16 encap_type; /* Is this an Encapsulation socket? */ |
||
46 | /* |
||
47 | * Following member retains the infomation to create a UDP header |
||
48 | * when the socket is uncorked. |
||
49 | */ |
||
50 | __u16 len; /* total length of pending frames */ |
||
51 | }; |
||
52 | |||
53 | /* WARNING: don't change the layout of the members in udp_sock! */ |
||
54 | struct udp_sock { |
||
55 | struct sock sk; |
||
56 | #if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) |
||
57 | struct ipv6_pinfo *pinet6; |
||
58 | #endif |
||
59 | struct inet_opt inet; |
||
60 | struct udp_opt udp; |
||
61 | }; |
||
62 | |||
63 | #define udp_sk(__sk) (&((struct udp_sock *)__sk)->udp) |
||
64 | |||
65 | #endif |
||
66 | |||
67 | #endif /* _LINUX_UDP_H */ |