| Wireshark 4.7.0 The Wireshark network protocol analyzer

Loading...
Searching...
No Matches
sctp_graph_dialog.h
Go to the documentation of this file.
1
10#ifndef SCTP_GRAPH_DIALOG_H
11#define SCTP_GRAPH_DIALOG_H
12
13#include <config.h>
14
15#include "cfile.h"
16
17#include <QDialog>
18
19namespace Ui {
20class SCTPGraphDialog;
21}
22
23class QCPAbstractPlottable;
24class QCustomPlot;
25
26struct _sctp_assoc_info;
27
28 struct chunk_header {
29 uint8_t type;
30 uint8_t flags;
31 uint16_t length;
32};
33
34 struct data_chunk_header {
35 uint8_t type;
36 uint8_t flags;
37 uint16_t length;
38 uint32_t tsn;
39 uint16_t sid;
40 uint16_t ssn;
41 uint32_t ppi;
42};
43
44 struct gaps {
45 uint16_t start;
46 uint16_t end;
47};
48
49 struct sack_chunk_header {
50 uint8_t type;
51 uint8_t flags;
52 uint16_t length;
53 uint32_t cum_tsn_ack;
54 uint32_t a_rwnd;
55 uint16_t nr_of_gaps;
56 uint16_t nr_of_dups;
57 struct gaps gaps[1];
58};
59
60 struct nr_sack_chunk_header {
61 uint8_t type;
62 uint8_t flags;
63 uint16_t length;
64 uint32_t cum_tsn_ack;
65 uint32_t a_rwnd;
66 uint16_t nr_of_gaps;
67 uint16_t nr_of_nr_gaps;
68 uint16_t nr_of_dups;
69 uint16_t reserved;
70 struct gaps gaps[1];
71};
72
73
74 class SCTPGraphDialog : public QDialog
75{
76 Q_OBJECT
77
78public:
79 explicit SCTPGraphDialog(QWidget *parent = 0, const _sctp_assoc_info *assoc = NULL,
80 capture_file *cf = NULL, int dir = 0);
81 ~SCTPGraphDialog();
82 static void save_graph(QDialog *dlg, QCustomPlot *plot);
83
84public slots:
85 void setCaptureFile(capture_file *cf) { cap_file_ = cf; }
86
87private slots:
88 void on_pushButton_clicked();
89
90 void on_pushButton_2_clicked();
91
92 void on_pushButton_3_clicked();
93
94 void on_pushButton_4_clicked();
95
96 void graphClicked(QCPAbstractPlottable* plottable, int, QMouseEvent* event);
97
98 void on_saveButton_clicked();
99
100 void on_relativeTsn_stateChanged(int arg1);
101
102private:
103 Ui::SCTPGraphDialog *ui;
104 uint16_t selected_assoc_id;
105 capture_file *cap_file_;
106 int frame_num;
107 int direction;
108 QVector<double> xt, yt, xs, ys, xg, yg, xd, yd, xn, yn;
109 QVector<uint32_t> ft, fs, fg, fd, fn;
110 QVector<QString> typeStrings;
111 bool relative;
112 int type;
113
114 void drawGraph(const _sctp_assoc_info* selected_assoc = NULL);
115 void drawTSNGraph(const _sctp_assoc_info* selected_assoc);
116 void drawSACKGraph(const _sctp_assoc_info* selected_assoc);
117 void drawNRSACKGraph(const _sctp_assoc_info* selected_assoc);
118};
119
120#endif // SCTP_GRAPH_DIALOG_H
cfile.h
SCTPGraphDialog
Definition sctp_graph_dialog.h:75
_capture_file
Definition cfile.h:67
_sctp_assoc_info
Definition tap-sctp-analysis.h:192
chunk_header
Definition sctp_graph_dialog.h:28
data_chunk_header
Definition sctp_graph_dialog.h:34
gaps
Definition sctp_graph_dialog.h:44
nr_sack_chunk_header
Definition sctp_graph_dialog.h:60
sack_chunk_header
Definition sctp_graph_dialog.h:49