OpenCores
URL https://opencores.org/ocsvn/test_project/test_project/trunk

Subversion Repositories test_project

[/] [test_project/] [trunk/] [linux_sd_driver/] [include/] [linux/] [udp.h] - Blame information for rev 62

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 62 marcus.erl
/*
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
        __be16  source;
24
        __be16  dest;
25
        __be16  len;
26
        __sum16 check;
27
};
28
 
29
#ifdef __KERNEL__
30
#include <linux/skbuff.h>
31
 
32
static inline struct udphdr *udp_hdr(const struct sk_buff *skb)
33
{
34
        return (struct udphdr *)skb_transport_header(skb);
35
}
36
#endif
37
 
38
/* UDP socket options */
39
#define UDP_CORK        1       /* Never send partially complete segments */
40
#define UDP_ENCAP       100     /* Set the socket to accept encapsulated packets */
41
 
42
/* UDP encapsulation types */
43
#define UDP_ENCAP_ESPINUDP_NON_IKE      1 /* draft-ietf-ipsec-nat-t-ike-00/01 */
44
#define UDP_ENCAP_ESPINUDP      2 /* draft-ietf-ipsec-udp-encaps-06 */
45
#define UDP_ENCAP_L2TPINUDP     3 /* rfc2661 */
46
 
47
#ifdef __KERNEL__
48
#include <linux/types.h>
49
 
50
#include <net/inet_sock.h>
51
#define UDP_HTABLE_SIZE         128
52
 
53
struct udp_sock {
54
        /* inet_sock has to be the first member */
55
        struct inet_sock inet;
56
        int              pending;       /* Any pending frames ? */
57
        unsigned int     corkflag;      /* Cork is required */
58
        __u16            encap_type;    /* Is this an Encapsulation socket? */
59
        /*
60
         * Following member retains the information to create a UDP header
61
         * when the socket is uncorked.
62
         */
63
        __u16            len;           /* total length of pending frames */
64
        /*
65
         * Fields specific to UDP-Lite.
66
         */
67
        __u16            pcslen;
68
        __u16            pcrlen;
69
/* indicator bits used by pcflag: */
70
#define UDPLITE_BIT      0x1            /* set by udplite proto init function */
71
#define UDPLITE_SEND_CC  0x2            /* set via udplite setsockopt         */
72
#define UDPLITE_RECV_CC  0x4            /* set via udplite setsocktopt        */
73
        __u8             pcflag;        /* marks socket as UDP-Lite if > 0    */
74
        __u8             unused[3];
75
        /*
76
         * For encapsulation sockets.
77
         */
78
        int (*encap_rcv)(struct sock *sk, struct sk_buff *skb);
79
};
80
 
81
static inline struct udp_sock *udp_sk(const struct sock *sk)
82
{
83
        return (struct udp_sock *)sk;
84
}
85
#define IS_UDPLITE(__sk) (udp_sk(__sk)->pcflag)
86
 
87
#endif
88
 
89
#endif  /* _LINUX_UDP_H */

powered by: WebSVN 2.1.0

© copyright 1999-2025 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.