| 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 <epan/cfile.h>
16
17#include <QDialog>
18
19 namespace Ui {
20 class SCTPGraphDialog;
21}
22
23 class QCPAbstractPlottable;
24 class QCustomPlot;
25
26 struct _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 /* Another unnamed FAM of uint32_t for the TSN duplicates follows the first one */
59};
60
61 struct nr_sack_chunk_header {
62 uint8_t type;
63 uint8_t flags;
64 uint16_t length;
65 uint32_t cum_tsn_ack;
66 uint32_t a_rwnd;
67 uint16_t nr_of_gaps;
68 uint16_t nr_of_nr_gaps;
69 uint16_t nr_of_dups;
70 uint16_t reserved;
71 struct gaps gaps[1];
72};
73
74
75 class SCTPGraphDialog : public QDialog
76{
77 Q_OBJECT
78
79 public:
80 explicit SCTPGraphDialog(QWidget *parent = 0, const _sctp_assoc_info *assoc = NULL,
81 capture_file *cf = NULL, int dir = 0);
82 ~SCTPGraphDialog();
83 static void save_graph(QDialog *dlg, QCustomPlot *plot);
84
85 public slots:
86 void setCaptureFile(capture_file *cf) { cap_file_ = cf; }
87
88 private slots:
89 void on_pushButton_clicked();
90
91 void on_pushButton_2_clicked();
92
93 void on_pushButton_3_clicked();
94
95 void on_pushButton_4_clicked();
96
97 void graphClicked(QCPAbstractPlottable* plottable, int, QMouseEvent* event);
98
99 void on_saveButton_clicked();
100
101 void on_relativeTsn_stateChanged(int arg1);
102
103 private:
104 Ui::SCTPGraphDialog *ui;
105 uint16_t selected_assoc_id;
106 capture_file *cap_file_;
107 int frame_num;
108 int direction;
109 QVector<double> xt, yt, xs, ys, xg, yg, xd, yd, xn, yn;
110 QVector<uint32_t> ft, fs, fg, fd, fn;
111 QVector<QString> typeStrings;
112 bool relative;
113 int type;
114
115 void drawGraph(const _sctp_assoc_info* selected_assoc = NULL);
116 void drawTSNGraph(const _sctp_assoc_info* selected_assoc);
117 void drawSACKGraph(const _sctp_assoc_info* selected_assoc);
118 void drawNRSACKGraph(const _sctp_assoc_info* selected_assoc);
119};
120
121#endif // SCTP_GRAPH_DIALOG_H
cfile.h
SCTPGraphDialog
Definition sctp_graph_dialog.h:76
_capture_file
Definition cfile.h:71
_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:61
sack_chunk_header
Definition sctp_graph_dialog.h:49