From patchwork Tue Nov 28 12:04:02 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mao Zhongyi X-Patchwork-Id: 842094 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3ymMs20fxbz9t2Z for ; Tue, 28 Nov 2017 23:08:54 +1100 (AEDT) Received: from localhost ([::1]:37367 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eJeh2-0004Je-4S for incoming@patchwork.ozlabs.org; Tue, 28 Nov 2017 07:08:52 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:36354) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eJegY-0004JY-PQ for qemu-devel@nongnu.org; Tue, 28 Nov 2017 07:08:23 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eJegX-0002dL-LR for qemu-devel@nongnu.org; Tue, 28 Nov 2017 07:08:22 -0500 Received: from mail.cn.fujitsu.com ([183.91.158.132]:7894 helo=heian.cn.fujitsu.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eJegW-0002X2-WA for qemu-devel@nongnu.org; Tue, 28 Nov 2017 07:08:21 -0500 X-IronPort-AV: E=Sophos;i="5.43,368,1503331200"; d="scan'208";a="30517436" Received: from localhost (HELO cn.fujitsu.com) ([10.167.33.5]) by heian.cn.fujitsu.com with ESMTP; 28 Nov 2017 20:08:14 +0800 Received: from G08CNEXCHPEKD02.g08.fujitsu.local (unknown [10.167.33.83]) by cn.fujitsu.com (Postfix) with ESMTP id 93303489C477; Tue, 28 Nov 2017 20:08:11 +0800 (CST) Received: from localhost.localdomain (10.167.226.123) by G08CNEXCHPEKD02.g08.fujitsu.local (10.167.33.89) with Microsoft SMTP Server (TLS) id 14.3.361.1; Tue, 28 Nov 2017 20:08:10 +0800 From: Mao Zhongyi To: Date: Tue, 28 Nov 2017 20:04:02 +0800 Message-ID: <20171128120402.22295-3-maozy.fnst@cn.fujitsu.com> X-Mailer: git-send-email 2.9.4 In-Reply-To: <20171128120402.22295-1-maozy.fnst@cn.fujitsu.com> References: <20171128120402.22295-1-maozy.fnst@cn.fujitsu.com> MIME-Version: 1.0 X-Originating-IP: [10.167.226.123] X-yoursite-MailScanner-ID: 93303489C477.AE3ED X-yoursite-MailScanner: Found to be clean X-yoursite-MailScanner-From: maozy.fnst@cn.fujitsu.com X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 183.91.158.132 Subject: [Qemu-devel] [PATCH 2/2] colo: add trace for the tcp packet comparison X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Jason Wang , Li Zhijian , Zhang Chen Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Cc: Zhang Chen Cc: Li Zhijian Cc: Jason Wang Signed-off-by: Mao Zhongyi --- net/colo-compare.c | 16 ++++++++++++++++ net/colo.c | 1 + net/colo.h | 1 + net/trace-events | 2 +- 4 files changed, 19 insertions(+), 1 deletion(-) diff --git a/net/colo-compare.c b/net/colo-compare.c index 0752e9f..4c0a1d8 100644 --- a/net/colo-compare.c +++ b/net/colo-compare.c @@ -129,6 +129,7 @@ static void fill_pkt_seq(void *data, uint32_t *max_ack) + (tcphd->th_off << 2) - pkt->vnet_hdr_len; pkt->pdsize = pkt->size - pkt->hdsize; pkt->seq_end = pkt->tcp_seq + pkt->pdsize; + pkt->flags = tcphd->th_flags; } /* @@ -337,6 +338,16 @@ sec: } if (colo_mark_tcp_pkt(ppkt, spkt, &mark, max_ack)) { + trace_colo_compare_tcp_info("pri", + ppkt->tcp_seq, ppkt->tcp_ack, + ppkt->hdsize, ppkt->pdsize, + ppkt->offset, ppkt->flags); + + trace_colo_compare_tcp_info("sec", + spkt->tcp_seq, spkt->tcp_ack, + spkt->hdsize, spkt->pdsize, + spkt->offset, spkt->flags); + if (mark == COLO_COMPARE_FREE_PRIMARY) { conn->compare_seq = ppkt->seq_end; colo_release_primary_pkt(s, ppkt); @@ -355,6 +366,11 @@ sec: goto pri; } } else { + qemu_hexdump((char *)ppkt->data, stderr, + "colo-compare ppkt", ppkt->size); + qemu_hexdump((char *)spkt->data, stderr, + "colo-compare spkt", spkt->size); + g_queue_push_head(&conn->primary_list, ppkt); g_queue_push_head(&conn->secondary_list, spkt); diff --git a/net/colo.c b/net/colo.c index 1743522..0b469f2 100644 --- a/net/colo.c +++ b/net/colo.c @@ -171,6 +171,7 @@ Packet *packet_new(const void *data, int size, int vnet_hdr_len) pkt->hdsize = 0; pkt->pdsize = 0; pkt->offset = 0; + pkt->flags = 0; return pkt; } diff --git a/net/colo.h b/net/colo.h index 97bc41e..0530dd0 100644 --- a/net/colo.h +++ b/net/colo.h @@ -53,6 +53,7 @@ typedef struct Packet { uint16_t pdsize; /* the payload length */ /* record the payload offset(the length that has been compared) */ uint16_t offset; + uint8_t flags; /* Flags(aka Control bits) */ } Packet; typedef struct ConnectionKey { diff --git a/net/trace-events b/net/trace-events index 938263d..7b594cf 100644 --- a/net/trace-events +++ b/net/trace-events @@ -13,7 +13,7 @@ colo_compare_icmp_miscompare(const char *sta, int size) ": %s = %d" colo_compare_ip_info(int psize, const char *sta, const char *stb, int ssize, const char *stc, const char *std) "ppkt size = %d, ip_src = %s, ip_dst = %s, spkt size = %d, ip_src = %s, ip_dst = %s" colo_old_packet_check_found(int64_t old_time) "%" PRId64 colo_compare_miscompare(void) "" -colo_compare_tcp_info(const char *pkt, uint32_t seq, uint32_t ack, int res, uint32_t flag, int size) "side: %s seq/ack= %u/%u res= %d flags= 0x%x pkt_size: %d\n" +colo_compare_tcp_info(const char *pkt, uint32_t seq, uint32_t ack, int hdlen, int pdlen, int offset, int flags) "%s: seq/ack= %u/%u hdlen= %d pdlen= %d offset= %d flags=%d\n" # net/filter-rewriter.c colo_filter_rewriter_debug(void) ""