/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License (the "License").
* You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
*/
#include <inet/ipclassifier.h>
#include "sctp_impl.h"
/* ARGSUSED */
static void
{
int error;
/* XXX trouble: don't want to drop events. should queue it. */
return;
}
tudi->OPT_length = 0;
tudi->OPT_offset = 0;
/*
* Fill in primary remote address.
*/
} else {
}
/*
* Notifications are queued regardless of socket rx space. So
* we do not decrement sctp_rwnd here as this will confuse the
* other side.
*/
#ifdef DEBUG
}
#endif
/*
* Override b_flag for SCTP sockfs internal use
*/
}
}
void
{
if (!sctp->sctp_recvassocevnt) {
return;
}
return;
}
sacp->sac_assoc_id = 0;
}
/*
* Send failure event. Message is expected to have message header still
* in place, data follows in subsequent mblk's.
*/
static void
{
/* Allocate a mblk for the notification header */
/* give up */
return;
}
sfp->ssf_assoc_id = 0;
}
/*
* Send failure when the message has been fully chunkified.
*/
static void
{
if (!sctp->sctp_recvsendfailevnt) {
return;
}
/*
* We need to remove all data_hdr's.
*/
do {
/*
* If one of the chunks hasn't been sent yet, say that
* the message hasn't been sent.
*/
if (!SCTP_CHUNK_ISSENT(nmp)) {
}
} else {
}
}
}
/*
* Send failure when the message hasn't been fully chunkified.
*/
void
{
return;
if (!sctp->sctp_recvsendfailevnt) {
return;
}
/* If the message is fully chunkified */
if (chunkified) {
return;
}
/*
* Message might be partially chunkified, we need to remove
* all data_hdr's.
*/
} else {
}
}
}
}
void
{
if (!sctp->sctp_recvsendfailevnt) {
return;
}
}
}
}
void
{
if (!sctp->sctp_recvpathevnt) {
return;
}
return;
}
if (IN6_IS_ADDR_V4MAPPED(&addr)) {
} else {
}
spc->spc_assoc_id = 0;
}
void
{
if (!sctp->sctp_recvpeererr) {
return;
}
/*
* ASCONF PARM error chunks :
* PARM_ERROR_IND parm type is always followed by correlation id.
* See sctp_asconf_adderr() and sctp_asconf_prepend_errwrap() as to
* how these error chunks are build.
* error cause wrapper (PARM_ERROR_IND) + correlation id +
* error cause + error cause details.
*
* Regular error chunks :
* See sctp_make_err() as to how these error chunks are build.
* error chunk header (CHUNK_ERROR) + error cause + error cause details.
*/
if (is_asconf) {
sizeof (uint32_t) + sizeof (sctp_parm_hdr_t));
}
} else {
}
}
if (dlen > 0) {
}
}
return;
}
sre->sre_assoc_id = 0;
}
}
void
{
if (!sctp->sctp_recvshutdownevnt) {
return;
}
return;
}
sse->sse_assoc_id = 0;
}
void
{
return;
}
return;
}
sai->sai_assoc_id = 0;
/*
* Adaptation code delivered in network byte order.
*/
}
/* Send partial deliver event */
void
{
if (!sctp->sctp_recvpdevnt)
return;
return;
pdapi->pdapi_flags = 0;
pdapi->pdapi_assoc_id = 0;
}