Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
include
net
sctp
ulpqueue.h
Go to the documentation of this file.
1
/* SCTP kernel implementation
2
* (C) Copyright IBM Corp. 2001, 2004
3
* Copyright (c) 1999-2000 Cisco, Inc.
4
* Copyright (c) 1999-2001 Motorola, Inc.
5
* Copyright (c) 2001 Intel Corp.
6
* Copyright (c) 2001 Nokia, Inc.
7
* Copyright (c) 2001 La Monte H.P. Yarroll
8
*
9
* These are the definitions needed for the sctp_ulpq type. The
10
* sctp_ulpq is the interface between the Upper Layer Protocol, or ULP,
11
* and the core SCTP state machine. This is the component which handles
12
* reassembly and ordering.
13
*
14
* This SCTP implementation is free software;
15
* you can redistribute it and/or modify it under the terms of
16
* the GNU General Public License as published by
17
* the Free Software Foundation; either version 2, or (at your option)
18
* any later version.
19
*
20
* This SCTP implementation is distributed in the hope that it
21
* will be useful, but WITHOUT ANY WARRANTY; without even the implied
22
* ************************
23
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
24
* See the GNU General Public License for more details.
25
*
26
* You should have received a copy of the GNU General Public License
27
* along with GNU CC; see the file COPYING. If not, write to
28
* the Free Software Foundation, 59 Temple Place - Suite 330,
29
* Boston, MA 02111-1307, USA.
30
*
31
* Please send any bug reports or fixes you make to the
32
* email addresses:
33
* lksctp developers <
[email protected]
>
34
*
35
* Or submit a bug report through the following website:
36
* http://www.sf.net/projects/lksctp
37
*
38
* Written or modified by:
39
* Jon Grimm <
[email protected]
>
40
* La Monte H.P. Yarroll <
[email protected]
>
41
* Sridhar Samudrala <
[email protected]
>
42
*
43
* Any bugs reported given to us we will try to fix... any fixes shared will
44
* be incorporated into the next SCTP release.
45
*/
46
47
#ifndef __sctp_ulpqueue_h__
48
#define __sctp_ulpqueue_h__
49
50
/* A structure to carry information to the ULP (e.g. Sockets API) */
51
struct
sctp_ulpq
{
52
char
malloced
;
53
char
pd_mode
;
54
struct
sctp_association
*
asoc
;
55
struct
sk_buff_head
reasm
;
56
struct
sk_buff_head
lobby
;
57
};
58
59
/* Prototypes. */
60
struct
sctp_ulpq
*
sctp_ulpq_init
(
struct
sctp_ulpq
*,
61
struct
sctp_association
*);
62
void
sctp_ulpq_flush
(
struct
sctp_ulpq
*ulpq);
63
void
sctp_ulpq_free
(
struct
sctp_ulpq
*);
64
65
/* Add a new DATA chunk for processing. */
66
int
sctp_ulpq_tail_data
(
struct
sctp_ulpq
*,
struct
sctp_chunk
*,
gfp_t
);
67
68
/* Add a new event for propagation to the ULP. */
69
int
sctp_ulpq_tail_event
(
struct
sctp_ulpq
*,
struct
sctp_ulpevent
*ev);
70
71
/* Renege previously received chunks. */
72
void
sctp_ulpq_renege
(
struct
sctp_ulpq
*,
struct
sctp_chunk
*,
gfp_t
);
73
74
/* Perform partial delivery. */
75
void
sctp_ulpq_partial_delivery
(
struct
sctp_ulpq
*,
struct
sctp_chunk
*,
gfp_t
);
76
77
/* Abort the partial delivery. */
78
void
sctp_ulpq_abort_pd
(
struct
sctp_ulpq
*,
gfp_t
);
79
80
/* Clear the partial data delivery condition on this socket. */
81
int
sctp_clear_pd
(
struct
sock
*
sk
,
struct
sctp_association
*
asoc
);
82
83
/* Skip over an SSN. */
84
void
sctp_ulpq_skip
(
struct
sctp_ulpq
*ulpq,
__u16
sid
,
__u16
ssn
);
85
86
void
sctp_ulpq_reasm_flushtsn
(
struct
sctp_ulpq
*,
__u32
);
87
#endif
/* __sctp_ulpqueue_h__ */
88
89
90
91
92
93
94
Generated on Thu Jan 10 2013 14:53:17 for Linux Kernel by
1.8.2