diff options
Diffstat (limited to 'include/private/duplicate_pkt_distinguish.h')
| -rw-r--r-- | include/private/duplicate_pkt_distinguish.h | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/include/private/duplicate_pkt_distinguish.h b/include/private/duplicate_pkt_distinguish.h index d76e23a..1d0f1ee 100644 --- a/include/private/duplicate_pkt_distinguish.h +++ b/include/private/duplicate_pkt_distinguish.h @@ -4,6 +4,7 @@ #include "mesa_net.h" #include "stream_internal.h" +#define SAPP_DUP_FIRST_PKT_NUM (3) /* 通过前N个包识别是否有重复流量 */ /* 网络序, network order */ @@ -26,7 +27,7 @@ struct __sapp_dup_pkt_key_v4{ unsigned int tcp_ack; unsigned short sport; unsigned short dport; - unsigned short ip_id; /* TCP层SYN重传时, ipid是不一样的, 其实不能算为重复包 */ + unsigned short ip_id; /* TCP层SYN重传时, 或者应用层重传数据, ipid是不一样的, 其实不能算为重复包, 所以ipid也作为Key */ unsigned short checksum; /* tcp or udp */ }__attribute__((packed, aligned(1))); @@ -46,7 +47,10 @@ typedef struct __sapp_dup_pkt_key_v6 sapp_dup_pkt_key_v6_t; int sapp_dup_pkt_init(void); -void sapp_dup_pkt_mark_tcp(int tid, const struct streaminfo *pstream, const void *ip_hdr, const struct mesa_tcp_hdr *tcp_h); +void sapp_dup_pkt_mark_tcp(int tid, unsigned char addr_type, const void *ip_hdr, const struct mesa_tcp_hdr *tcp_h); +void sapp_dup_pkt_mark_udp(int tid, unsigned char addrtype, const void *ip_hdr, const struct mesa_udp_hdr *udp_h); +void sendpkt_dup_pkt_mark_stream(const struct streaminfo *top_stream, const char *ip_hdr); + int sapp_dup_pkt_identify_tcp(int tid, struct streaminfo_private *pstream_pr, int tot_pkt, const void *ip_hdr, const struct mesa_tcp_hdr *tcp_h); |
