$darkmode
netatalk  4.5.1
Free and Open Source Apple Filing Protocol (AFP) Server
afp_tcp_analytics.h
Go to the documentation of this file.
1#ifndef AFP_TCP_ANALYTICS_H
2#define AFP_TCP_ANALYTICS_H
3
4#include <stdint.h>
5#include <sys/types.h> /* for off_t */
6#include "afpclient.h" /* for CONN */
7
8/* Output format enumeration */
9typedef enum {
13
14/* TCP metrics structure */
15typedef struct {
23 uint32_t tcp_rtt;
35
36/* Session handle for tracking metrics across multiple tests */
37typedef struct {
38 TcpMetrics initial; /* Captured at session start */
39 TcpMetrics before; /* Captured before current test */
40 TcpMetrics after; /* Captured after current test */
41 TcpMetrics final; /* Captured at session end */
42 off_t current_size; /* Current test file size */
43 TcpOutputFormat format; /* TEXT or CSV */
44 int enable_session_tracking; /* For size sweep mode */
46
47/* API Functions */
49 int enable_session);
50int tcp_analytics_capture(CONN *conn, TcpMetrics *metrics);
53 off_t file_size);
56
57#endif /* AFP_TCP_ANALYTICS_H */
void tcp_analytics_init(TcpAnalyticsSession *session, TcpOutputFormat format, int enable_session)
Initialize TCP analytics session.
Definition: afp_tcp_analytics.c:60
TcpOutputFormat
Definition: afp_tcp_analytics.h:9
@ TCP_OUTPUT_TEXT
Definition: afp_tcp_analytics.h:10
@ TCP_OUTPUT_CSV
Definition: afp_tcp_analytics.h:11
int tcp_analytics_test_start(TcpAnalyticsSession *session, CONN *conn, off_t file_size)
Mark test start - capture "before" metrics.
Definition: afp_tcp_analytics.c:271
int tcp_analytics_capture(CONN *conn, TcpMetrics *metrics)
Capture TCP metrics from connection socket via getsockopt()
Definition: afp_tcp_analytics.c:72
int tcp_analytics_session_end(TcpAnalyticsSession *session, CONN *conn)
Mark session end - capture "final" metrics and print session summary.
Definition: afp_tcp_analytics.c:755
int tcp_analytics_session_start(TcpAnalyticsSession *session, CONN *conn)
Mark session start - capture "initial" metrics for size sweep mode.
Definition: afp_tcp_analytics.c:263
int tcp_analytics_test_end(TcpAnalyticsSession *session, CONN *conn)
Mark test end - capture "after" metrics and print per-test comparison.
Definition: afp_tcp_analytics.c:451
int session(ATP atp, struct sockaddr_at *sat)
Definition: session.c:49
Definition: afpclient.h:176
Definition: afp_tcp_analytics.h:37
TcpMetrics initial
Definition: afp_tcp_analytics.h:38
TcpMetrics after
Definition: afp_tcp_analytics.h:40
TcpOutputFormat format
Definition: afp_tcp_analytics.h:43
TcpMetrics before
Definition: afp_tcp_analytics.h:39
int enable_session_tracking
Definition: afp_tcp_analytics.h:44
off_t current_size
Definition: afp_tcp_analytics.h:42
Definition: afp_tcp_analytics.h:15
int tcp_adv_mss
Definition: afp_tcp_analytics.h:31
int tcp_lost
Definition: afp_tcp_analytics.h:28
int tcp_total_retrans
Definition: afp_tcp_analytics.h:26
int tcp_send_buffer
Definition: afp_tcp_analytics.h:17
int tcp_mss
Definition: afp_tcp_analytics.h:20
int tcp_recv_buffer
Definition: afp_tcp_analytics.h:18
int tcp_congestion_window
Definition: afp_tcp_analytics.h:21
int tcp_retrans
Definition: afp_tcp_analytics.h:25
uint32_t tcp_rtt
Definition: afp_tcp_analytics.h:23
int tcp_slow_start_threshold
Definition: afp_tcp_analytics.h:22
uint32_t server_quantum
Definition: afp_tcp_analytics.h:16
int is_localhost
Definition: afp_tcp_analytics.h:33
int tcp_recv_space
Definition: afp_tcp_analytics.h:32
int tcp_reordering
Definition: afp_tcp_analytics.h:27
int tcp_send_mss
Definition: afp_tcp_analytics.h:29
int tcp_send_window
Definition: afp_tcp_analytics.h:19
uint32_t tcp_rtt_variance
Definition: afp_tcp_analytics.h:24
int tcp_recv_mss
Definition: afp_tcp_analytics.h:30