linux/net/dccp/input.c

// SPDX-License-Identifier: GPL-2.0-or-later
/*
 *  net/dccp/input.c
 *
 *  An implementation of the DCCP protocol
 *  Arnaldo Carvalho de Melo <[email protected]>
 */

#include <linux/dccp.h>
#include <linux/skbuff.h>
#include <linux/slab.h>

#include <net/sock.h>

#include "ackvec.h"
#include "ccid.h"
#include "dccp.h"

/* rate-limit for syncs in reply to sequence-invalid packets; RFC 4340, 7.5.4 */
int sysctl_dccp_sync_ratelimit	__read_mostly =;

static void dccp_enqueue_skb(struct sock *sk, struct sk_buff *skb)
{}

static void dccp_fin(struct sock *sk, struct sk_buff *skb)
{}

static int dccp_rcv_close(struct sock *sk, struct sk_buff *skb)
{}

static int dccp_rcv_closereq(struct sock *sk, struct sk_buff *skb)
{}

static u16 dccp_reset_code_convert(const u8 code)
{}

static void dccp_rcv_reset(struct sock *sk, struct sk_buff *skb)
{}

static void dccp_handle_ackvec_processing(struct sock *sk, struct sk_buff *skb)
{}

static void dccp_deliver_input_to_ccids(struct sock *sk, struct sk_buff *skb)
{}

static int dccp_check_seqno(struct sock *sk, struct sk_buff *skb)
{}

static int __dccp_rcv_established(struct sock *sk, struct sk_buff *skb,
				  const struct dccp_hdr *dh, const unsigned int len)
{}

int dccp_rcv_established(struct sock *sk, struct sk_buff *skb,
			 const struct dccp_hdr *dh, const unsigned int len)
{}

EXPORT_SYMBOL_GPL();

static int dccp_rcv_request_sent_state_process(struct sock *sk,
					       struct sk_buff *skb,
					       const struct dccp_hdr *dh,
					       const unsigned int len)
{}

static int dccp_rcv_respond_partopen_state_process(struct sock *sk,
						   struct sk_buff *skb,
						   const struct dccp_hdr *dh,
						   const unsigned int len)
{}

int dccp_rcv_state_process(struct sock *sk, struct sk_buff *skb,
			   struct dccp_hdr *dh, unsigned int len)
{}

EXPORT_SYMBOL_GPL();

/**
 *  dccp_sample_rtt  -  Validate and finalise computation of RTT sample
 *  @sk:	socket structure
 *  @delta:	number of microseconds between packet and acknowledgment
 *
 *  The routine is kept generic to work in different contexts. It should be
 *  called immediately when the ACK used for the RTT sample arrives.
 */
u32 dccp_sample_rtt(struct sock *sk, long delta)
{}