Lines Matching defs:packet
211 * C) Rules for packet carrying SHUTDOWN COMPLETE:
213 * - The receiver of a SHUTDOWN COMPLETE shall accept the packet
214 * if the Verification Tag field of the packet matches its own tag and
219 * Otherwise, the receiver MUST silently discard the packet
326 struct sctp_packet *packet;
335 * enforce these rules by silently discarding an arriving packet
344 * just discard the packet.
349 /* If the packet is an OOTB packet which is temporarily on the
357 /* 3.1 A packet containing an INIT chunk MUST have a zero Verification
381 packet = sctp_abort_pkt_new(net, ep, asoc, arg,
389 if (packet) {
391 SCTP_PACKET(packet));
499 * DATA chunks, but it MUST be the first chunk in the packet and
526 struct sctp_packet *packet;
559 packet = sctp_abort_pkt_new(net, ep, asoc, arg,
567 if (packet) {
569 SCTP_PACKET(packet));
583 * can't destroy this association just because the packet
676 * chunk MUST be the first chunk in the packet.
683 * D) Rules for packet carrying a COOKIE ECHO
717 /* If the packet is an OOTB packet which is temporarily on the
1011 /* Generate and sendout a heartbeat packet. */
1037 /* Generate a HEARTBEAT packet on the given transport. */
1148 * When receiving an SCTP packet, the endpoint MUST ensure that the
1149 * value in the Verification Tag field of the received SCTP packet
1152 * discard the packet and shall not process it any further except for
1362 /* Discard the rest of the inbound packet. */
1367 * the packet will get dropped.
1503 /* No match to any of the special cases; discard this packet. */
1522 struct sctp_packet *packet;
1531 * enforce these rules by silently discarding an arriving packet
1541 /* 3.1 A packet containing an INIT chunk MUST have a zero Verification
1565 packet = sctp_abort_pkt_new(net, ep, asoc, arg,
1571 if (packet) {
1573 SCTP_PACKET(packet));
1755 * the Peer's-Tie-Tag and the Local-Tie-Tag. The outbound SCTP packet
2297 default: /* Discard packet for all others. */
2344 * packet.
2390 * packet.
2485 * we are discarding the packet, there should be no adverse
2617 * B) Rules for packet carrying ABORT:
2620 * outbound packet with the destination endpoint's tag value if it
2623 * - If the ABORT is sent in response to an OOTB packet, the endpoint
2626 * - The receiver MUST accept the packet if the Verification Tag
2628 * receiver MUST silently discard the packet and take no further
2660 * packet.
2734 * packet.
3143 /* If this is a newer ECNE than the last CWR packet we sent out */
3158 * acknowledgement SHOULD be generated for at least every second packet
3167 * incoming packet, other than to update the offered window as the
3231 /* If this is the last chunk in a packet, we need to count it
3233 * OTHER packet containing data chunks, EVEN IF WE DISCARD
3245 * least every second packet (not every second DATA chunk)
3261 * When a packet arrives with duplicate DATA chunk(s) and with
3263 * SACK with no delay. If a packet arrives with duplicate
3344 * respond to each received packet containing one or more DATA chunk(s)
3451 * Generate an ABORT in response to a packet.
3455 * 8) The receiver should respond to the sender of the OOTB packet with
3456 * an ABORT. When sending the ABORT, the receiver of the OOTB packet
3457 * MUST fill in the Verification Tag field of the outbound packet
3459 * packet and set the T-bit in the Chunk Flags to indicate that the
3461 * receiver of the OOTB packet shall discard the OOTB packet and take
3476 struct sctp_packet *packet = NULL;
3480 packet = sctp_ootb_pkt_new(net, asoc, chunk);
3481 if (!packet)
3489 sctp_ootb_pkt_free(packet);
3495 packet->vtag = ntohl(chunk->sctp_hdr->vtag);
3500 sctp_packet_append_chunk(packet, abort);
3502 sctp_add_cmd_sf(commands, SCTP_CMD_SEND_PKT, SCTP_PACKET(packet));
3523 struct sctp_packet *packet = NULL;
3527 packet = sctp_ootb_pkt_new(net, asoc, chunk);
3528 if (!packet)
3533 sctp_ootb_pkt_free(packet);
3539 sctp_packet_append_chunk(packet, abort);
3542 SCTP_PACKET(packet));
3662 * 5) If the packet contains a SHUTDOWN ACK chunk, the receiver should
3663 * respond to the sender of the OOTB packet with a SHUTDOWN COMPLETE.
3665 * packet must fill in the Verification Tag field of the outbound
3666 * packet with the Verification Tag received in the SHUTDOWN ACK and
3670 * 8) The receiver should respond to the sender of the OOTB packet with
3671 * an ABORT. When sending the ABORT, the receiver of the OOTB packet
3672 * MUST fill in the Verification Tag field of the outbound packet
3674 * packet and set the T-bit in the Chunk Flags to indicate that the
3676 * receiver of the OOTB packet shall discard the OOTB packet and take
3725 /* RFC 8.4, 7) If the packet contains a "Stale cookie" ERROR
3758 * 5) If the packet contains a SHUTDOWN ACK chunk, the receiver should
3759 * respond to the sender of the OOTB packet with a SHUTDOWN COMPLETE.
3761 * packet must fill in the Verification Tag field of the outbound
3762 * packet with the Verification Tag received in the SHUTDOWN ACK and
3782 struct sctp_packet *packet = NULL;
3786 packet = sctp_ootb_pkt_new(net, asoc, chunk);
3787 if (!packet)
3795 sctp_ootb_pkt_free(packet);
3801 packet->vtag = ntohl(chunk->sctp_hdr->vtag);
3806 sctp_packet_append_chunk(packet, shut);
3809 SCTP_PACKET(packet));
3813 /* We need to discard the rest of the packet to prevent
3823 * Verification Tag: 8.5.1 E) Rules for packet carrying a SHUTDOWN ACK
3826 * should be treated as an Out Of The Blue packet.
3849 * to a restarted association. So the packet is treated as an OOTB
3850 * packet and the state function that handles OOTB SHUTDOWN_ACK is
3906 /* If this is the first instance of ASCONF in the packet,
3915 * the response packet and cache a copy of it (in the event it
3928 * ASCONF, and include in the outbound response packet
3948 * it must be either a stale packet or from an attacker.
3953 /* ADDIP 5.2 E6) The destination address of the SCTP packet
3955 * the SCTP packet that held the ASCONF Chunks.
3960 * created until we process the entire packet, thus this workaround.
4067 * processing the rest of the chunks in the packet.
4099 * processing the rest of the chunks in the packet.
4313 * respond to each received packet containing one or more DATA chunk(s)
4407 /* Discard the packet if the digests do not match */
4452 * of the packet
4503 * 00 - Stop processing this SCTP packet and discard it, do not process
4506 * 01 - Stop processing this SCTP packet and discard it, do not process
4543 /* Discard the packet. */
4557 /* Discard the packet. */
4623 * Discard the whole packet.
4627 * 2) If the OOTB packet contains an ABORT chunk, the receiver MUST
4628 * silently discard the OOTB packet and take no further action.
4699 struct sctp_packet *packet = NULL;
4711 * can't destroy this association just because the packet
4758 packet = sctp_ootb_pkt_new(net, asoc, chunk);
4760 if (!packet)
4764 packet->vtag = ntohl(chunk->sctp_hdr->vtag);
4768 sctp_packet_append_chunk(packet, abort);
4771 SCTP_PACKET(packet));
4942 * sending a packet to a specific transport address. [All of this
5055 * transport addresses of the peer endpoint to which this packet
5828 * T3-rtx has expired will fit into a single packet, subject
5834 * single packet to the destination endpoint.
5858 * acknowledgement SHOULD be generated for at least every second packet
6008 * packet from its peer (i.e. as the peer sends all of its queued DATA
6315 /* Create an ABORT packet to be sent as a response, with the specified
6325 struct sctp_packet *packet;
6328 packet = sctp_ootb_pkt_new(net, asoc, chunk);
6330 if (packet) {
6336 sctp_ootb_pkt_free(packet);
6342 packet->vtag = ntohl(chunk->sctp_hdr->vtag);
6352 sctp_packet_append_chunk(packet, abort);
6356 return packet;
6359 /* Allocate a packet for responding in the OOTB conditions. */
6366 struct sctp_packet *packet;
6370 /* Get the source and destination port from the inbound packet. */
6374 /* The V-tag is going to be the same as the inbound packet if no
6427 packet = &transport->packet;
6428 sctp_packet_init(packet, transport, sport, dport);
6429 sctp_packet_config(packet, vtag, 0);
6431 return packet;
6437 /* Free the packet allocated earlier for responding in the OOTB condition. */
6438 void sctp_ootb_pkt_free(struct sctp_packet *packet)
6440 sctp_transport_free(packet->transport);
6451 struct sctp_packet *packet;
6454 packet = sctp_ootb_pkt_new(net, asoc, chunk);
6455 if (packet) {
6460 packet->vtag = cookie->c.peer_vtag;
6464 sctp_packet_append_chunk(packet, err_chunk);
6466 SCTP_PACKET(packet));
6501 * a packet, we use ecn_ce_done to track if we've already
6502 * done CE processing for this packet.
6609 * processing the rest of the chunks in the packet.