10 #ifndef __PACKET_TCP_H__
11 #define __PACKET_TCP_H__
13 #include "ws_symbol_export.h"
27 #define TH_PUSH 0x0008
34 #define TH_MASK 0x0FFF
36 #define IS_TH_FIN(x) (x & TH_FIN)
37 #define IS_TH_URG(x) (x & TH_URG)
40 #define GT_SEQ(x, y) ((gint32)((y) - (x)) < 0)
41 #define LT_SEQ(x, y) ((gint32)((x) - (y)) < 0)
42 #define GE_SEQ(x, y) ((gint32)((y) - (x)) <= 0)
43 #define LE_SEQ(x, y) ((gint32)((x) - (y)) <= 0)
44 #define EQ_SEQ(x, y) (x) == (y)
56 gboolean mh_fastclose;
59 guint8 mh_capable_flags;
62 guint64 mh_dss_rawdsn;
63 guint64 mh_dss_rawack;
64 guint16 mh_dss_length;
86 gboolean th_have_seglen;
99 #define MAX_TCP_SACK_RANGES 4
100 guint8 num_sack_ranges;
101 guint32 sack_left_edge[MAX_TCP_SACK_RANGES];
102 guint32 sack_right_edge[MAX_TCP_SACK_RANGES];
118 gboolean is_reassembled;
120 guint16 urgent_pointer;
144 gboolean proto_desegment, guint fixed_len,
146 dissector_t dissect_pdu,
void* dissector_data);
149 tcp_reassembly_table_functions;
152 pdu_store_sequencenumber_of_next_pdu(
packet_info *pinfo, guint32 seq, guint32 nxtpdu,
wmem_tree_t *multisegment_pdus);
171 guint32 dupack_frame;
172 guint32 bytes_in_flight;
173 guint32 push_bytes_sent;
175 guint32 new_data_seq;
188 guint32 first_frame_with_seq;
191 #define MSP_FLAGS_REASSEMBLE_ENTIRE_SEGMENT 0x00000001
193 #define MSP_FLAGS_GOT_ALL_SEGMENTS 0x00000002
195 #define MSP_FLAGS_MISSING_FIRST_SEGMENT 0x00000004
213 gboolean extended_dsn;
253 guint32 nextseqframe;
256 guint64 maxseqtobeacked;
290 MPTCP_HMAC_NOT_SET = 0,
294 } mptcp_hmac_algorithm_t;
297 #define MPTCP_CAPABLE_CRYPTO_MASK 0x3F
299 #define MPTCP_CHECKSUM_MASK 0x80
306 guint16 segment_count;
309 guint32 lastnondupack;
312 guint32 maxseqtobeacked;
315 guint32 nextseqframe;
329 guint8 num_sack_ranges;
330 guint32 sack_left_edge[MAX_TCP_SACK_RANGES];
331 guint32 sack_right_edge[MAX_TCP_SACK_RANGES];
347 #define TCP_MAX_UNACKED_SEGMENTS 10000
352 guint16 maxsizeacked;
354 guint32 push_bytes_sent;
355 gboolean push_set_last;
356 guint8 mp_operations;
357 gboolean is_first_ack;
358 gboolean closing_initiator;
365 #define TCP_FLOW_REASSEMBLE_UNTIL_FIN 0x0001
369 guint32 lastsegmentflags;
410 guint8 mp_operations;
482 guint8 tfo_syn_data : 1;
495 guint8 conversation_completeness;
498 gchar *conversation_completeness_str;
501 gboolean had_acc_ecn_setup_syn;
502 gboolean had_acc_ecn_setup_syn_ack;
503 gboolean had_acc_ecn_option;
512 guint8 tcp_snd_manual_analysis;
527 guint32 seq, guint32 nxtseq, guint32 sport,
549 extern void add_tcp_process_info(guint32 frame_num,
address *local_addr,
address *remote_addr, guint16 local_port, guint16 remote_port, guint32 uid, guint32 pid, gchar *username, gchar *command);
555 WS_DLL_PUBLIC guint32 get_tcp_stream_count(
void);
561 WS_DLL_PUBLIC guint32 get_mptcp_stream_count(
void);
565 extern gchar *tcp_follow_index_filter(guint
stream, guint sub_stream);
566 extern gchar *tcp_follow_address_filter(
address *src_addr,
address *dst_addr,
int src_port,
int dst_port);
Definition: packet-tcp.h:225
Definition: packet-tcp.h:203
Definition: packet_info.h:44
Definition: packet-tcp.h:344
Definition: packet-tcp.h:154
Definition: wmem_list.c:23
Definition: wmem_tree-int.h:48
Definition: conversation.h:202
Definition: epan_dissect.h:28
Definition: packet-tcp.h:392
Definition: packet-tcp.h:518
Definition: packet-tcp.h:268
Definition: reassemble.h:149
Definition: packet-tcp.h:162
Definition: packet-tcp.h:413
Definition: packet-tcp.h:304
Definition: packet-tcp.h:182
Definition: packet-tcp.h:510
Definition: packet-tcp.h:336
Definition: packet-tcp.h:114
Definition: tvbuff-int.h:35