OpenVPN
|
#include "syshead.h"
#include "buffer.h"
#include "error.h"
#include "common.h"
#include "reliable.h"
#include "memdbg.h"
Go to the source code of this file.
Functions | |
static packet_id_type | subtract_pid (const packet_id_type test, const packet_id_type base) |
static bool | reliable_pid_in_range1 (const packet_id_type test, const packet_id_type base, const unsigned int extent) |
static bool | reliable_pid_in_range2 (const packet_id_type test, const packet_id_type base, const unsigned int extent) |
static bool | reliable_pid_min (const packet_id_type p1, const packet_id_type p2) |
static bool | reliable_ack_packet_id_present (struct reliable_ack *ack, packet_id_type pid) |
bool | reliable_ack_read_packet_id (struct buffer *buf, packet_id_type *pid) |
Read the packet ID of a received packet. More... | |
bool | reliable_ack_acknowledge_packet_id (struct reliable_ack *ack, packet_id_type pid) |
Record a packet ID for later acknowledgment. More... | |
bool | reliable_ack_read (struct reliable_ack *ack, struct buffer *buf, const struct session_id *sid) |
Read an acknowledgment record from a received packet. More... | |
bool | reliable_ack_parse (struct buffer *buf, struct reliable_ack *ack, struct session_id *session_id_remote) |
Parse an acknowledgment record from a received packet. More... | |
void | copy_acks_to_mru (struct reliable_ack *ack, struct reliable_ack *ack_mru, int n) |
Copies the first n acks from ack to ack_mru . More... | |
bool | reliable_ack_write (struct reliable_ack *ack, struct reliable_ack *ack_mru, struct buffer *buf, const struct session_id *sid, int max, bool prepend) |
Write a packet ID acknowledgment record to a buffer. More... | |
const char * | reliable_ack_print (struct buffer *buf, bool verbose, struct gc_arena *gc) |
void | reliable_init (struct reliable *rel, int buf_size, int offset, int array_size, bool hold) |
Initialize a reliable structure. More... | |
void | reliable_free (struct reliable *rel) |
Free allocated memory associated with a reliable structure and the pointer itself. More... | |
bool | reliable_empty (const struct reliable *rel) |
Check whether a reliable structure is empty. More... | |
void | reliable_send_purge (struct reliable *rel, const struct reliable_ack *ack) |
Remove acknowledged packets from a reliable structure. More... | |
bool | reliable_can_get (const struct reliable *rel) |
Check whether a reliable structure has any free buffers available for use. More... | |
bool | reliable_not_replay (const struct reliable *rel, packet_id_type id) |
Check that a received packet's ID is not a replay. More... | |
bool | reliable_wont_break_sequentiality (const struct reliable *rel, packet_id_type id) |
Check that a received packet's ID can safely be stored in the reliable structure's processing window. More... | |
struct buffer * | reliable_get_buf (struct reliable *rel) |
Get the buffer of a free reliable entry in which to store a packet. More... | |
int | reliable_get_num_output_sequenced_available (struct reliable *rel) |
Counts the number of free buffers in output that can be potentially used for sending. More... | |
struct buffer * | reliable_get_buf_output_sequenced (struct reliable *rel) |
Get the buffer of free reliable entry and check whether the outgoing acknowledgment sequence is still okay. More... | |
struct reliable_entry * | reliable_get_entry_sequenced (struct reliable *rel) |
Get the buffer of the next sequential and active entry. More... | |
bool | reliable_can_send (const struct reliable *rel) |
Check whether a reliable structure has any active entries ready to be (re)sent. More... | |
struct buffer * | reliable_send (struct reliable *rel, int *opcode) |
Get the next packet to send to the remote peer. More... | |
void | reliable_schedule_now (struct reliable *rel) |
Reschedule all entries of a reliable structure to be ready for (re)sending immediately. More... | |
interval_t | reliable_send_timeout (const struct reliable *rel) |
Determined how many seconds until the earliest resend should be attempted. More... | |
void | reliable_mark_active_incoming (struct reliable *rel, struct buffer *buf, packet_id_type pid, int opcode) |
Mark the reliable entry associated with the given buffer as active incoming. More... | |
void | reliable_mark_active_outgoing (struct reliable *rel, struct buffer *buf, int opcode) |
Mark the reliable entry associated with the given buffer as active outgoing. More... | |
void | reliable_mark_deleted (struct reliable *rel, struct buffer *buf) |
Remove an entry from a reliable structure. More... | |
|
inlinestatic |
Definition at line 99 of file reliable.c.
References reliable_ack::len, and reliable_ack::packet_id.
Referenced by reliable_ack_acknowledge_packet_id().
|
inlinestatic |
Definition at line 54 of file reliable.c.
References subtract_pid().
Referenced by reliable_get_buf_output_sequenced(), and reliable_pid_min().
|
inlinestatic |
Definition at line 65 of file reliable.c.
Referenced by reliable_wont_break_sequentiality().
|
inlinestatic |
Definition at line 91 of file reliable.c.
References reliable_pid_in_range1().
Referenced by reliable_get_buf_output_sequenced(), reliable_get_num_output_sequenced_available(), reliable_mark_active_incoming(), reliable_not_replay(), and reliable_send().
|
inlinestatic |
Definition at line 45 of file reliable.c.
Referenced by reliable_get_num_output_sequenced_available(), and reliable_pid_in_range1().