38#ifndef _NETINET_SCTP_INDATA_H_
39#define _NETINET_SCTP_INDATA_H_
41#if defined(_KERNEL) || defined(__Userspace__)
51#define sctp_build_readq_entry_mac(_ctl, in_it, context, net, tsn, ppid, sid, flags, dm, tfsn, mid) do { \
53 atomic_add_int(&((net)->ref_count), 1); \
54 memset(_ctl, 0, sizeof(struct sctp_queued_to_read)); \
55 (_ctl)->sinfo_stream = sid; \
56 TAILQ_INIT(&_ctl->reasm); \
57 (_ctl)->top_fsn = tfsn; \
59 (_ctl)->sinfo_flags = (flags << 8); \
60 (_ctl)->sinfo_ppid = ppid; \
61 (_ctl)->sinfo_context = context; \
62 (_ctl)->fsn_included = 0xffffffff; \
63 (_ctl)->sinfo_tsn = tsn; \
64 (_ctl)->sinfo_cumtsn = tsn; \
65 (_ctl)->sinfo_assoc_id = sctp_get_associd((in_it)); \
66 (_ctl)->whoFrom = net; \
68 (_ctl)->stcb = (in_it); \
69 (_ctl)->port_from = (in_it)->rport; \
70 if ((in_it)->asoc.state & SCTP_STATE_ABOUT_TO_BE_FREED) { \
71 (_ctl)->do_not_ref_stcb = 1; \
87 uint32_t rwnd,
int *abort_now,
int ecne_seen);
void sctp_sack_check(struct sctp_tcb *, int)
uint32_t sctp_calc_rwnd(struct sctp_tcb *stcb, struct sctp_association *asoc)
int sctp_process_data(struct mbuf **, int, int *, int, struct sctp_inpcb *, struct sctp_tcb *, struct sctp_nets *, uint32_t *)
void sctp_set_rwnd(struct sctp_tcb *, struct sctp_association *)
struct mbuf * sctp_build_ctl_nchunk(struct sctp_inpcb *inp, struct sctp_sndrcvinfo *sinfo)
void sctp_handle_sack(struct mbuf *m, int offset_seg, int offset_dup, struct sctp_tcb *stcb, uint16_t num_seg, uint16_t num_nr_seg, uint16_t num_dup, int *abort_now, uint8_t flags, uint32_t cum_ack, uint32_t rwnd, int ecne_seen)
void sctp_express_handle_sack(struct sctp_tcb *stcb, uint32_t cumack, uint32_t rwnd, int *abort_now, int ecne_seen)
void sctp_service_queues(struct sctp_tcb *, struct sctp_association *)
void sctp_handle_forward_tsn(struct sctp_tcb *, struct sctp_forward_tsn_chunk *, int *, struct mbuf *, int)
void sctp_slide_mapping_arrays(struct sctp_tcb *stcb)
struct sctp_queued_to_read * sctp_build_readq_entry(struct sctp_tcb *stcb, struct sctp_nets *net, uint32_t tsn, uint32_t ppid, uint32_t context, uint16_t sid, uint32_t mid, uint8_t flags, struct mbuf *dm)
struct sctp_tmit_chunk * sctp_try_advance_peer_ack_point(struct sctp_tcb *, struct sctp_association *)
void sctp_update_acked(struct sctp_tcb *, struct sctp_shutdown_chunk *, int *)