Deleted Added
full compact
sctp_structs.h (206137) sctp_structs.h (208160)
1/*-
2 * Copyright (c) 2001-2008, by Cisco Systems, Inc. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are met:
6 *
7 * a) Redistributions of source code must retain the above copyright notice,
8 * this list of conditions and the following disclaimer.

--- 17 unchanged lines hidden (view full) ---

26 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
28 * THE POSSIBILITY OF SUCH DAMAGE.
29 */
30
31/* $KAME: sctp_structs.h,v 1.13 2005/03/06 16:04:18 itojun Exp $ */
32
33#include <sys/cdefs.h>
1/*-
2 * Copyright (c) 2001-2008, by Cisco Systems, Inc. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are met:
6 *
7 * a) Redistributions of source code must retain the above copyright notice,
8 * this list of conditions and the following disclaimer.

--- 17 unchanged lines hidden (view full) ---

26 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
28 * THE POSSIBILITY OF SUCH DAMAGE.
29 */
30
31/* $KAME: sctp_structs.h,v 1.13 2005/03/06 16:04:18 itojun Exp $ */
32
33#include <sys/cdefs.h>
34__FBSDID("$FreeBSD: head/sys/netinet/sctp_structs.h 206137 2010-04-03 15:40:14Z tuexen $");
34__FBSDID("$FreeBSD: head/sys/netinet/sctp_structs.h 208160 2010-05-16 17:03:56Z rrs $");
35
36#ifndef __sctp_structs_h__
37#define __sctp_structs_h__
38
39#include <netinet/sctp_os.h>
40#include <netinet/sctp_header.h>
41#include <netinet/sctp_auth.h>
42

--- 60 unchanged lines hidden (view full) ---

103
104typedef void (*asoc_func) (struct sctp_inpcb *, struct sctp_tcb *, void *ptr,
105 uint32_t val);
106typedef int (*inp_func) (struct sctp_inpcb *, void *ptr, uint32_t val);
107typedef void (*end_func) (void *ptr, uint32_t val);
108
109struct sctp_iterator {
110 TAILQ_ENTRY(sctp_iterator) sctp_nxt_itr;
35
36#ifndef __sctp_structs_h__
37#define __sctp_structs_h__
38
39#include <netinet/sctp_os.h>
40#include <netinet/sctp_header.h>
41#include <netinet/sctp_auth.h>
42

--- 60 unchanged lines hidden (view full) ---

103
104typedef void (*asoc_func) (struct sctp_inpcb *, struct sctp_tcb *, void *ptr,
105 uint32_t val);
106typedef int (*inp_func) (struct sctp_inpcb *, void *ptr, uint32_t val);
107typedef void (*end_func) (void *ptr, uint32_t val);
108
109struct sctp_iterator {
110 TAILQ_ENTRY(sctp_iterator) sctp_nxt_itr;
111 struct vnet *vn;
111 struct sctp_timer tmr;
112 struct sctp_inpcb *inp; /* current endpoint */
113 struct sctp_tcb *stcb; /* current* assoc */
112 struct sctp_timer tmr;
113 struct sctp_inpcb *inp; /* current endpoint */
114 struct sctp_tcb *stcb; /* current* assoc */
115 struct sctp_inpcb *next_inp; /* special hook to skip to */
114 asoc_func function_assoc; /* per assoc function */
115 inp_func function_inp; /* per endpoint function */
116 inp_func function_inp_end; /* end INP function */
117 end_func function_atend;/* iterator completion function */
118 void *pointer; /* pointer for apply func to use */
119 uint32_t val; /* value for apply func to use */
120 uint32_t pcb_flags; /* endpoint flags being checked */
121 uint32_t pcb_features; /* endpoint features being checked */
122 uint32_t asoc_state; /* assoc state being checked */
123 uint32_t iterator_flags;
124 uint8_t no_chunk_output;
125 uint8_t done_current_ep;
126};
127
128/* iterator_flags values */
129#define SCTP_ITERATOR_DO_ALL_INP 0x00000001
130#define SCTP_ITERATOR_DO_SINGLE_INP 0x00000002
131
116 asoc_func function_assoc; /* per assoc function */
117 inp_func function_inp; /* per endpoint function */
118 inp_func function_inp_end; /* end INP function */
119 end_func function_atend;/* iterator completion function */
120 void *pointer; /* pointer for apply func to use */
121 uint32_t val; /* value for apply func to use */
122 uint32_t pcb_flags; /* endpoint flags being checked */
123 uint32_t pcb_features; /* endpoint features being checked */
124 uint32_t asoc_state; /* assoc state being checked */
125 uint32_t iterator_flags;
126 uint8_t no_chunk_output;
127 uint8_t done_current_ep;
128};
129
130/* iterator_flags values */
131#define SCTP_ITERATOR_DO_ALL_INP 0x00000001
132#define SCTP_ITERATOR_DO_SINGLE_INP 0x00000002
133
134
132TAILQ_HEAD(sctpiterators, sctp_iterator);
133
134struct sctp_copy_all {
135 struct sctp_inpcb *inp; /* ep */
136 struct mbuf *m;
137 struct sctp_sndrcvinfo sndrcv;
138 int sndlen;
139 int cnt_sent;
140 int cnt_failed;
141};
142
143struct sctp_asconf_iterator {
144 struct sctpladdr list_of_work;
145 int cnt;
146};
147
135TAILQ_HEAD(sctpiterators, sctp_iterator);
136
137struct sctp_copy_all {
138 struct sctp_inpcb *inp; /* ep */
139 struct mbuf *m;
140 struct sctp_sndrcvinfo sndrcv;
141 int sndlen;
142 int cnt_sent;
143 int cnt_failed;
144};
145
146struct sctp_asconf_iterator {
147 struct sctpladdr list_of_work;
148 int cnt;
149};
150
151struct iterator_control {
152 struct mtx ipi_iterator_wq_mtx;
153 struct mtx it_mtx;
154 SCTP_PROCESS_STRUCT thread_proc;
155 struct sctpiterators iteratorhead;
156 struct sctp_iterator *cur_it;
157 uint32_t iterator_running;
158 uint32_t iterator_flags;
159};
160
161#define SCTP_ITERATOR_MUST_EXIT 0x00000001
162#define SCTP_ITERATOR_STOP_CUR_IT 0x00000002
163#define SCTP_ITERATOR_STOP_CUR_INP 0x00000004
164
148struct sctp_net_route {
149 sctp_rtentry_t *ro_rt;
150 void *ro_lle;
151 union sctp_sockstore _l_addr; /* remote peer addr */
152 struct sctp_ifa *_s_addr; /* our selected src addr */
153};
154
155struct htcp {

--- 920 unchanged lines hidden ---
165struct sctp_net_route {
166 sctp_rtentry_t *ro_rt;
167 void *ro_lle;
168 union sctp_sockstore _l_addr; /* remote peer addr */
169 struct sctp_ifa *_s_addr; /* our selected src addr */
170};
171
172struct htcp {

--- 920 unchanged lines hidden ---