| 1 |
|
| 2 | |
| 3 | * (C) Copyright IBM Corp. 2001, 2004
|
| 4 | * Copyright (c) 1999-2000 Cisco, Inc.
|
| 5 | * Copyright (c) 1999-2001 Motorola, Inc.
|
| 6 | * Copyright (c) 2001 Intel Corp.
|
| 7 | * Copyright (c) 2001 Nokia, Inc.
|
| 8 | * Copyright (c) 2001 La Monte H.P. Yarroll
|
| 9 | *
|
| 10 | * These are the definitions needed for the sctp_ulpq type. The
|
| 11 | * sctp_ulpq is the interface between the Upper Layer Protocol, or ULP,
|
| 12 | * and the core SCTP state machine. This is the component which handles
|
| 13 | * reassembly and ordering.
|
| 14 | *
|
| 15 | * Please send any bug reports or fixes you make to the
|
| 16 | * email addresses:
|
| 17 | * lksctp developers <[email protected]>
|
| 18 | *
|
| 19 | * Written or modified by:
|
| 20 | * Jon Grimm <[email protected]>
|
| 21 | * La Monte H.P. Yarroll <[email protected]>
|
| 22 | * Sridhar Samudrala <[email protected]>
|
| 23 |
|
| 24 |
|
| 25 | #ifndef __sctp_ulpqueue_h__
|
| 26 | #define __sctp_ulpqueue_h__
|
| 27 |
|
| 28 |
|
| 29 | struct sctp_ulpq {
|
| 30 | char pd_mode;
|
| 31 | struct sctp_association *asoc;
|
| 32 | struct sk_buff_head reasm;
|
| 33 | struct sk_buff_head reasm_uo;
|
| 34 | struct sk_buff_head lobby;
|
| 35 | };
|
| 36 |
|
| 37 |
|
| 38 | void sctp_ulpq_init(struct sctp_ulpq *ulpq, struct sctp_association *asoc);
|
| 39 | void sctp_ulpq_flush(struct sctp_ulpq *ulpq);
|
| 40 | void sctp_ulpq_free(struct sctp_ulpq *);
|
| 41 |
|
| 42 |
|
| 43 | int sctp_ulpq_tail_data(struct sctp_ulpq *, struct sctp_chunk *, gfp_t);
|
| 44 |
|
| 45 |
|
| 46 | int sctp_ulpq_tail_event(struct sctp_ulpq *, struct sk_buff_head *skb_list);
|
| 47 |
|
| 48 |
|
| 49 | void sctp_ulpq_renege(struct sctp_ulpq *, struct sctp_chunk *, gfp_t);
|
| 50 |
|
| 51 |
|
| 52 | void sctp_ulpq_partial_delivery(struct sctp_ulpq *, gfp_t);
|
| 53 |
|
| 54 |
|
| 55 | void sctp_ulpq_abort_pd(struct sctp_ulpq *, gfp_t);
|
| 56 |
|
| 57 |
|
| 58 | int sctp_clear_pd(struct sock *sk, struct sctp_association *asoc);
|
| 59 |
|
| 60 |
|
| 61 | void sctp_ulpq_skip(struct sctp_ulpq *ulpq, __u16 sid, __u16 ssn);
|
| 62 |
|
| 63 | void sctp_ulpq_reasm_flushtsn(struct sctp_ulpq *, __u32);
|
| 64 |
|
| 65 | __u16 sctp_ulpq_renege_list(struct sctp_ulpq *ulpq,
|
| 66 | struct sk_buff_head *list, __u16 needed);
|
| 67 |
|
| 68 | #endif
|