Subversion Repositories shark

Rev

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 */