Loading...
Searching...
No Matches
gnrc_tcp_pkt.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2015-2017 Simon Brummer
3 * SPDX-License-Identifier: LGPL-2.1-only
4 */
5
6#pragma once
7
18
19#include <stdint.h>
20#include "net/gnrc.h"
21#include "net/gnrc/tcp/tcb.h"
22
23#ifdef __cplusplus
24extern "C" {
25#endif
26
40 gnrc_pktsnip_t *in_pkt);
41
58 uint16_t *seq_con, const uint16_t ctl,
59 const uint32_t seq_num, const uint32_t ack_num,
60 void *payload, const size_t payload_len);
61
74 const uint16_t seq_con, const bool retransmit);
75
86int _gnrc_tcp_pkt_chk_seq_num(const gnrc_tcp_tcb_t *tcb, const uint32_t seq_num,
87 const uint32_t seg_len);
88
97
106
119 const bool retransmit);
120
130int _gnrc_tcp_pkt_acknowledge(gnrc_tcp_tcb_t *tcb, const uint32_t ack);
131
143 const gnrc_pktsnip_t *pseudo_hdr,
144 const gnrc_pktsnip_t *payload);
145
146#ifdef __cplusplus
147}
148#endif
149
Includes all essential GNRC network stack base modules.
int _gnrc_tcp_pkt_send(gnrc_tcp_tcb_t *tcb, gnrc_pktsnip_t *out_pkt, const uint16_t seq_con, const bool retransmit)
Sends packet to peer.
uint32_t _gnrc_tcp_pkt_get_pay_len(gnrc_pktsnip_t *pkt)
Calculates a packets payload length.
int _gnrc_tcp_pkt_build_reset_from_pkt(gnrc_pktsnip_t **out_pkt, gnrc_pktsnip_t *in_pkt)
Build a reset packet from an incoming packet.
int _gnrc_tcp_pkt_acknowledge(gnrc_tcp_tcb_t *tcb, const uint32_t ack)
Acknowledges and removes packet from the retransmission mechanism.
uint32_t _gnrc_tcp_pkt_get_seg_len(gnrc_pktsnip_t *pkt)
Extracts the length of a segment.
uint16_t _gnrc_tcp_pkt_calc_csum(const gnrc_pktsnip_t *hdr, const gnrc_pktsnip_t *pseudo_hdr, const gnrc_pktsnip_t *payload)
Calculates checksum over payload, TCP header and network layer header.
int _gnrc_tcp_pkt_setup_retransmit(gnrc_tcp_tcb_t *tcb, gnrc_pktsnip_t *pkt, const bool retransmit)
Adds a packet to the retransmission mechanism.
int _gnrc_tcp_pkt_build(gnrc_tcp_tcb_t *tcb, gnrc_pktsnip_t **out_pkt, uint16_t *seq_con, const uint16_t ctl, const uint32_t seq_num, const uint32_t ack_num, void *payload, const size_t payload_len)
Build and allocate a TCB packet, TCB stores pointer to new packet.
int _gnrc_tcp_pkt_chk_seq_num(const gnrc_tcp_tcb_t *tcb, const uint32_t seq_num, const uint32_t seg_len)
Verify sequence number.
struct gnrc_pktsnip gnrc_pktsnip_t
Type to represent parts (either headers or payload) of a packet, called snips.
GNRC TCP transmission control block (TCB)
struct sock_tcp gnrc_tcp_tcb_t
Transmission control block of GNRC TCP.