Wireshark  4.3.0
The Wireshark network protocol analyzer
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 
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 
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 
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 
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 
78 public:
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 
84 public slots:
85  void setCaptureFile(capture_file *cf) { cap_file_ = cf; }
86 
87 private 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 
102 private:
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
Definition: sctp_graph_dialog.h:75
Definition: cfile.h:67
Definition: tap-sctp-analysis.h:192
Definition: sctp_graph_dialog.h:28
Definition: sctp_graph_dialog.h:34
Definition: sctp_graph_dialog.h:44
Definition: sctp_graph_dialog.h:60
Definition: sctp_graph_dialog.h:49